33,136 bid protests, mapped.
Every decision coded against 33 protest grounds and eight case facets, in a 3D constellation you can filter, a decision table, and per-ground sustain rates. As of v2.1 it opens straight in your browser, with an analysis of each decision written in advance and the full license in the page. A downloadable version with full-text search is in the works.
Run it in your browser
The whole dashboard is one self-contained page. No download, no Python, no server, no account. It is the largest corpus the project has covered.
What is in it. 33,136 GAO bid protest decisions across 33 protest grounds and eight facets — ground, outcome, procurement authority, protest posture, decade, PDF source, text source and digest. Seven tabs: the 3D map, the decision table, Dynamic Search, Ground detail with per-ground sustain rates, Analysis, Setup, and the full license and credits.
The two model-backed tabs. Dynamic Search runs against a vector index of the full decision text. That index is far too large to ship inside a web page and needs a small server behind it, so the tab is present but says plainly that it is not part of this hosted copy; it will come with the downloadable version, which is in the works. Analysis here shows an analysis written in advance by an automated batch run over each decision’s text: press Analyze on a decision and it appears at once, with no model to connect. Nearly every decision has one. Analyzing or comparing several decisions at once, or asking your own question across a set, will come with the downloadable version too, against any model you like.
What it cannot tell you yet. The coding is AI-derived and has not been reviewed decision by decision. 82% of ground assignments are model-assigned rather than checked, and are marked with a dagger in the table and popups. Half the corpus has no recorded outcome, so sustain rates cover a subset rather than the whole. 27,239 decisions link to a gao.gov landing page rather than straight to the PDF. The dashboard states all of this on its own face as you use it, and links to a fuller explanation.
Where it is going. Accuracy and every feature here are under active work, release over release: more reviewed ground assignments, more recorded outcomes, more direct PDF links, and faster filtering over a corpus this size. Treat any single coded value as a lead to verify against the original decision, never as a finding.
Two new tabs
Analysis has always been able to run in the browser, but it needed a model endpoint and nothing on the page told you how to give it one. And the licensing sat on this site rather than in the file you were actually using. Both are now tabs in the dashboard itself. Since then, Analysis on this site has moved to analyses written in advance, so Setup now says what each tab needs here and what the downloadable version, in the works, will add.
Setup says what each tab needs. On this site, Map, Table, Ground detail and License need nothing, and Analysis shows the analysis written in advance for each decision. A downloadable version is in the works: it will add live Analysis against any model that speaks the OpenAI /v1/chat/completions shape, several decisions analyzed or compared at once, and Dynamic Search over the full text.
License puts the terms in the file. The dashboard is one self-contained page that people download and pass around, and a copy that has left this site should still be able to say what it is: Apache 2.0 for the code, CC BY 4.0 for the taxonomy and the coding, MIT and CC BY for the two upstream corpora, public domain for the decisions themselves. The citation that satisfies the attribution requirement is there to copy, and so is the same limitations accounting the map carries.
What it looks like
These come from the full version, where Dynamic Search and live Analysis work; a downloadable version of it is in the works. On this site Dynamic Search is not available and Analysis shows analyses written in advance. They also predate v2.1: they were taken against the earlier 5,986-decision corpus, so the counts are smaller than what you will see, and they show the layout from before Setup and License were added. The live dashboard is the current interface.
Credits
The Nexus is built on someone else's work, and the corpus it reads came first.
The decision corpus came from Kevin Misener, in two collections. The 33,136 decisions behind the dashboard come from his GAO-Bid-Protest dataset on Hugging Face, released under the MIT license. The roughly 5,700 decisions behind the project's earlier releases come from his GAO-Bid-Protest-Dataset on GitHub, which is released under a Creative Commons Attribution license. Both were used the same way: the URLs to the decision PDFs, the 33-ground taxonomy and the per-decision coding were derived from his data using AI, and the dashboard and the search index are built on top of that. If you reuse either corpus, credit that source too.
The decisions themselves are works of the U.S. federal government and are not protected by U.S. copyright (17 U.S.C. § 105), so they are in the public domain. Cite GAO as the source.
Everything added here carries two licenses. The dashboard code, the search backend and the scripts are Apache 2.0. The 33-ground taxonomy, the per-decision coding, the decision metadata and the vector index are CC BY 4.0. Use it, change it, build on it, at work or commercially — just keep the credit. Releases before v1.0 were published under CC BY 4.0 in full and stay available under that license.