Files
hermes-agent/optional-skills/research/osint-investigation/references/sources/usaspending.md
T
2026-06-14 14:30:48 -04:00

3.8 KiB

USAspending — Federal Government Contracts and Grants

1. Summary

USAspending.gov is the official source of federal spending data. Coverage: contracts, grants, loans, direct payments, sub-awards. Required by the DATA Act of 2014 — all federal agencies must report to a single schema.

2. Access Methods

  • API v2: https://api.usaspending.gov/api/v2/ (no auth, no key)
  • Bulk: https://files.usaspending.gov/ (CSV / Parquet by award type)
  • Auth: None
  • Rate limit: Not strictly enforced, but be polite — keep to <10 req/s

3. Data Schema

Key fields emitted by fetch_usaspending.py (prime awards):

Column Type Description
award_id str Federal award ID (PIID for contracts, FAIN for grants)
recipient_name str Awardee legal name
recipient_uei str Unique Entity Identifier (replaced DUNS in 2022)
recipient_duns str Legacy DUNS number (historical only)
recipient_parent_name str Ultimate parent organization
recipient_state str Recipient state
awarding_agency str Department / agency name
awarding_sub_agency str Sub-tier (e.g. DoD → Army)
award_type str Contract / Grant / Loan / Direct Payment
award_amount float Current total obligation in USD
award_date str Action / signed date YYYY-MM-DD
period_of_performance_start str YYYY-MM-DD
period_of_performance_end str YYYY-MM-DD
naics_code str Industry classification
psc_code str Product / Service Code
competition_extent str Full / limited / sole-source
description str Award description (free-text)

4. Coverage

  • US federal awards only (state/local not included)
  • FY 2008 → present (full coverage from FY 2017)
  • Updated bi-weekly from agency reporting
  • ~100M+ transaction records cumulative

5. Cross-Reference Potential

  • SEC EDGARrecipient_name (public companies as contractors)
  • Senate LDrecipient_name (lobbying clients winning contracts)
  • OFAC SDNrecipient_name (sanctions screening of contractors — must be filtered out by SAM.gov but verify)
  • ICIJ Offshorerecipient_name (offshore-linked contractors)

Join key: normalized recipient name. UEI is canonical when present.

6. Data Quality

  • DUNS → UEI transition (April 2022) — old records have DUNS, new records have UEI
  • Some sub-awards aren't reported (FFATA threshold is $30k)
  • Award amount changes over time (mod actions) — fetch script reports current total
  • competition_extent field is free-text in older records — fetch_usaspending.py normalizes to canonical values
  • Recipient name variations are extensive — "ACME LLC", "Acme L.L.C.", "ACME, INC" all appear. Use entity_resolution.py.

7. Acquisition Script

Path: scripts/fetch_usaspending.py

# By recipient name
python3 SKILL_DIR/scripts/fetch_usaspending.py --recipient "EXAMPLE CORP" \
    --fy 2024 --out data/contracts.csv

# By awarding agency
python3 SKILL_DIR/scripts/fetch_usaspending.py --agency "Department of Defense" \
    --fy 2024 --out data/contracts.csv

# Filter to sole-source only
python3 SKILL_DIR/scripts/fetch_usaspending.py --recipient "EXAMPLE CORP" \
    --fy 2024 --sole-source-only --out data/contracts.csv
  • Public record under the Federal Funding Accountability and Transparency Act (FFATA, 2006) and DATA Act (2014)
  • No commercial use restrictions on the data
  • Personal information of award recipients (e.g. small business owners' addresses in some grants) should be handled per the source agency's privacy notice

9. References