US federal contract-award momentum by state, monthly
Monthly federal-obligation momentum for the 50 US states + DC, from the official keyless USAspending.gov API (U.S. Department of the Treasury; place_of_performance scope, all award types). One POST per calendar month (2019-01 through the last complete month) to /api/v2/search/spending_by_geography/; the 57 API shape codes are filtered to the closed 50-state + DC vocabulary (territories and the blank international bucket dropped). Deterministic scoring per state: obligated_usd, national_total_usd, state_share_pct, mom_pct and yoy_pct (null unless the comparison month is positive), baseline_12m (median of [m-12, m-1], needs >= 6 months) with baseline_std_12m, z_12m = (x - baseline) / std (0.0 when std is zero), momentum_tier (surging z >= 2, elevated >= 1, cooling <= -2, soft <= -1, else steady), and award_heat = 100 * min-max-normalized z_12m within the month, ranked as heat_rank (1 = hottest; ties: obligated_usd desc, state_code asc). Who joins this: a B2B sales team joins monthly award momentum on (month, state_code) to its territory table to prioritize states where federal dollars are accelerating; a subscription business selling to government contractors reads national_total_usd as a demand-cycle feature. Primary key: (month, state_code); join keys: month, state_code, country_code ('USA'). Caveats: amounts are nominal USD obligations as reported (deobligations can print negative state-months; kept as-is); USAspending revises history, so a re-run can mint a new snapshot; award_heat is within-month relative, not comparable across months. September prints run hot (fiscal year-end obligation surge).
- Rows
- 4,743
- Columns
- 16
- Source cadence
- Monthly
- Last refreshed
- Oct 1, 2026
- Theme
- government
| Column | Type | Description |
|---|---|---|
| month | string | Calendar month (YYYY-MM) of the obligations. Part of the primary key; the time join key. (unit: month) |
| state_code | string | USPS 2-letter state code (50 states + DC; closed vocabulary). Part of the primary key; the geography join key. (unit: text) |
| state_name | string | Full state name for the state_code. (unit: text) |
| country_code | string | ISO alpha-3 country code; always 'USA'. (unit: text) |
| obligated_usd | float | Federal obligations with place of performance in the state during the month, USD. Can be negative in deobligation-heavy months; kept as-is. (unit: USD) |
| national_total_usd | float | Sum of obligated_usd over the 51 states for the month — the national demand-cycle series. (unit: USD) |
| state_share_pct | float | 100 * obligated_usd / national_total_usd; 0.0 when the national total is not positive. (unit: percent) |
| mom_pct | float | Month-over-month change: 100 * (x - prev) / prev; null unless the previous month is positive. (unit: percent) |
| yoy_pct | float | Year-over-year change: 100 * (x - prev12) / prev12; null unless the same month a year earlier is positive. (unit: percent) |
| baseline_12m | float | Median of obligated_usd over the 12 months in [m-12, m-1]; null with fewer than 6 observed months. (unit: USD) |
| baseline_std_12m | float | Sample standard deviation over the same 12-month baseline window; null with fewer than 6 observed months. (unit: USD) |
| z_12m | float | Award surprise: (obligated_usd - baseline_12m) / baseline_std_12m; 0.0 when the std is zero or non-finite; null when the baseline is missing. (unit: z-score) |
| momentum_tier | string | 'surging' (z_12m >= 2), 'elevated' (>= 1), 'cooling' (<= -2), 'soft' (<= -1), else 'steady'; null when z_12m is null. (unit: category) |
| award_heat | float | 0-100 composite = 100 * min-max-normalized z_12m within the month across states with a non-null z. Within-month relative — not comparable across months; null when z_12m is null. (unit: score) |
| heat_rank | integer | Rank by award_heat desc (1 = hottest); ties broken by obligated_usd desc, then state_code asc; null when z_12m is null. (unit: rank) |
| row_hash | string | Deterministic 16-hex-char content hash over (month, state_code, obligated_usd, z_12m) — identical input yields an identical snapshot. (unit: hash) |
First 10 sample rows — a preview, not the complete dataset.
| month | state_code | state_name | country_code | obligated_usd | national_total_usd | state_share_pct | mom_pct | yoy_pct | baseline_12m | baseline_std_12m | z_12m | momentum_tier | award_heat | heat_rank | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2019-01 | IL | Illinois | USA | 9,135,062,049.86 | 308,091,101,683.63 | 2.965 | — | — | — | — | — | — | — | — | 6d526837fd71f467 |
| 2019-01 | PA | Pennsylvania | USA | 11,120,177,040.24 | 308,091,101,683.63 | 3.609 | — | — | — | — | — | — | — | — | bbcab5063ef66a43 |
| 2019-01 | CA | California | USA | 36,239,889,543.53 | 308,091,101,683.63 | 11.763 | — | — | — | — | — | — | — | — | 74a5efe1fef3dae5 |
| 2019-01 | VA | Virginia | USA | 14,155,656,710.98 | 308,091,101,683.63 | 4.595 | — | — | — | — | — | — | — | — | 3dd55f28971cb8d6 |
| 2019-01 | TX | Texas | USA | 20,704,789,974.82 | 308,091,101,683.63 | 6.72 | — | — | — | — | — | — | — | — | 546786ebc40571a5 |
| 2019-01 | NJ | New Jersey | USA | 6,649,547,565.45 | 308,091,101,683.63 | 2.158 | — | — | — | — | — | — | — | — | a7f39ca381bfdc04 |
| 2019-01 | NC | North Carolina | USA | 7,564,144,513.84 | 308,091,101,683.63 | 2.455 | — | — | — | — | — | — | — | — | 05dfd537af0bed7f |
| 2019-01 | FL | Florida | USA | 15,197,209,258.34 | 308,091,101,683.63 | 4.933 | — | — | — | — | — | — | — | — | 7ac899539a39244b |
| 2019-01 | MI | Michigan | USA | 8,524,362,141.4 | 308,091,101,683.63 | 2.767 | — | — | — | — | — | — | — | — | ad1af74dcb760362 |
| 2019-01 | NY | New York | USA | 21,756,341,153.03 | 308,091,101,683.63 | 7.062 | — | — | — | — | — | — | — | — | 2dd5550937f507fa |
Profiled Oct 1, 2026 from snapshot 20261001T165805Z-4a82a030e96b
Measured- Completeness
- 96.7%
- Rows
- 4,743
- Columns
- 16
- Columns with gaps
- 8
| Column | Missing | Distinct | Range | Distribution |
|---|---|---|---|---|
| monthvarchar | 0% | 105 | — |
|
| state_codevarchar | 0% | 55 | — |
|
| state_namevarchar | 0% | 59 | — |
|
| country_codevarchar | 0% | 1 | — |
|
| obligated_usddouble | 0% | 5,463 | -69,611,755 → 117,291,909,898median 4,872,325,915 | 96 outside 1st–99th percentile |
| national_total_usddouble | 0% | 96 | 108,877,685,997 → 1,128,895,559,011median 378,331,979,493 | |
| state_share_pctdouble | 0% | 3,616 | -0.0209 → 16.96median 1.38 | 96 outside 1st–99th percentile |
| mom_pctdouble | 1.1% | 3,754 | -102.08 → 3,987median 4.14 | 94 outside 1st–99th percentile |
| yoy_pctdouble | 12.9% | 2,875 | -104.45 → 3,857median 5.95 | 84 outside 1st–99th percentile |
| baseline_12mdouble | 6.5% | 1,650 | 340,673,532 → 46,920,416,848median 4,956,403,753 | 81 outside 1st–99th percentile |
| baseline_std_12mdouble | 6.5% | 6,140 | 68,694,015 → 27,980,083,307median 1,819,299,933 | 90 outside 1st–99th percentile |
| z_12mdouble | 6.5% | 2,195 | -13.23 → 29.53median 0.096 | 89 outside 1st–99th percentile |
| momentum_tiervarchar | 6.5% | 5 | — |
|
| award_heatdouble | 6.5% | 2,936 | 0 → 100median 39.94 | |
| heat_rankbigint | 6.5% | 45 | 1 → 51median 26 | |
| row_hashvarchar | 0% | 4,605 | — |
|
- Current
20261001T165805Z-4a82a030e96b · sha256 4a82a030e96b…
4,743 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/usaspending_award_intel/federal_award_momentum_monthly" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/usaspending_award_intel/federal_award_momentum_monthly").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/usaspending_award_intel/federal_award_momentum_monthly
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20261001T165805Z-4a82a030e96b and its content hash, so readers get exactly the data you used.
USAspending federal award momentum (keyless API). (2026). US federal contract-award momentum by state, monthly [Data set, snapshot 20261001T165805Z-4a82a030e96b, sha256 4a82a030e96b]. Datazimuts. Retrieved 2026-10-02, from https://datazimuts.com/en/datasets/usaspending_award_intel/federal_award_momentum_monthly?snapshot=20261001T165805Z-4a82a030e96b
@misc{dz_usaspending_award_intel_federal_award_mo_4a82a030,
title = {{US federal contract-award momentum by state, monthly}},
author = {{USAspending federal award momentum (keyless API)}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/usaspending_award_intel/federal_award_momentum_monthly?snapshot=20261001T165805Z-4a82a030e96b}},
note = {Snapshot 20261001T165805Z-4a82a030e96b, sha256 4a82a030e96bdad7a005b042c2f55a3e2aa0cec865c0338c8df39fad76f32588; accessed 2026-10-02}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=usaspending_award_intel%2Ffederal_award_momentum_monthly&lang=en&theme=auto&snapshot=20261001T165805Z-4a82a030e96b&x=month&y=obligated_usd&agg=avg" title="US federal contract-award momentum by state, monthly" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.