This is experimental — please do not rely on this.

Source

All records come from USASpending's Award Data Archive — the official bulk-download center where USASpending publishes per-agency, per-fiscal-year contract ZIPs covering every prime award transaction.

Concretely, the pipeline downloads one file per toptier agency per fiscal year from:

https://files.usaspending.gov/award_data_archive/FY{YEAR}_{AGENCY}_Contracts_Full_{DATESTAMP}.zip

{AGENCY} is the three-digit CGAC toptier agency code (e.g. 097 for DoD, 075 for HHS, 036 for VA — pulled from USASpending's agency_codes.csv), and {DATESTAMP} is the most recent monthly snapshot date USASpending has published (auto-detected by scraping the archive listing). Each ZIP contains one or more CSV files with every prime award transaction for that agency/FY.

Fiscal years pulled: --. Source code and the exact fetch script are on GitHub.

What is a termination?

Every modification to a federal contract carries an action_type_code. Three of those codes indicate the contract was terminated:

CodeReasonMeaning
F Terminate for Convenience The government ended the contract because it was in the government's interest. No contractor fault implied.
E Terminate for Default The contractor failed to perform. Used for commercial-items and simplified-acquisition contracts.
X Terminate for Cause The contractor failed to perform on a non-commercial contract. Similar to Default but in different FAR parts.

The pipeline scans every contract modification in the source data and keeps only rows with one of these three codes. Non-termination modifications (option exercises, funding changes, administrative corrections, etc.) are dropped at ingestion.

One row per termination modification

A single contract can have more than one termination modification — partial terminations, rescissions, and re-filings all show up as separate mods. The dashboard preserves every one of them as its own row, so a contract with multiple terminations appears multiple times.

Mod $ Change is the raw federal_action_obligation on the termination modification, using the source data's sign convention:

The dashboard's Net $ Change stat is the signed sum across all visible rows. A negative total means money was net pulled back (the expected direction); the stat updates as you filter the table.

State

The State column is primary_place_of_performance_state_code from USASpending — the 2-letter US code for where the work was performed. No fallback fields are used. Rows with no value are labeled Unknown in the table and filter (selectable/excludable like any other state).

About 9.3% of termination rows have no state populated in the source data. These are typically foreign place-of-performance, undisclosed recipients (e.g., cases recorded as "DOMESTIC AWARDEES (UNDISCLOSED)"), services spanning multiple states, or simply missing data. Those rows are included in every table/chart count and the Net $ Change stat, but don't appear on the map.

Caveats