Where the data comes from and how it is classified.
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.
Every modification to a federal contract carries an action_type_code. Three of
those codes indicate the contract was terminated:
| Code | Reason | Meaning |
|---|---|---|
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.
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.
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.
total_obligated reflects the latest cumulative value on the contract at
the moment of the termination modification. It may have been subsequently adjusted.
action_type_code. A subaward
being canceled produces no direct signal in any public feed; at best you could infer
it by diffing consecutive snapshots for disappearances. When a prime is terminated
its downstream subs effectively end too, but that cascade is not reported as its own
event.
GSA Multiple Award Schedule (MAS) contracts are Indefinite Delivery Vehicles (IDVs) — umbrella vehicles under which agencies place individual task and delivery orders. When a vendor is removed from a MAS schedule or a schedule order is administratively closed, the relevant contract modification does not carry one of the three standard termination codes (E, F, or X). It typically appears as an ordinary modification with a different action code and a descriptive field indicating closure. This dashboard's filter never sees it.
This gap is most significant in the GSA products world, where MAS schedule activity is dense and closures are common. The net effect is that this dashboard undercounts terminations for vendors whose work flows primarily through MAS vehicles.
usa_spending_grabber is a related tool that fetches full transaction histories for specific award IDs from the USASpending API, allowing manual inspection of modification descriptions to identify MAS closures.