How the evidence works
Methodology
Built .
1. What this is
Fiscal Receipts connects four things that live in separate government silos: what agencies said money was for (budget documents), what was actually obligated and to whom (federal and state spending records), who ultimately received it (contractors, grantees, and their corporate parents), and what auditors said about it (GAO findings, improper-payment estimates). Every number on this site carries a citation to the exact source document, page, or API endpoint it came from. If we cannot cite it, we do not publish it.
2. Where every number comes from
Federal awards — USAspending.gov
The official federal award database (contracts, grants, loans, and subawards), mandated by the DATA Act. We download bulk ZIP files from files.usaspending.gov, convert them to compressed Parquet, and record the exact file name, URL, and SHA-256 hash of every file. Current scope: Department of Defense agencies, FY2017 onward. Source cadence: monthly — its least recently refreshed dataset (subawards) was last fetched 2026-06-11.
DoD budget justification books (“J-books”)
The detailed budget submissions the Pentagon sends to Congress each spring, published at comptroller.defense.gov. These cover every R&D program (R-2 exhibits) and procurement budget line (P-40 exhibits) with program narratives, project-level cost tables, and congressional justifications.
The Pentagon's budget system embeds its own database inside these PDFs: the full structured XML is attached inside the PDF itself. We extract that XML directly. For the rare document that lacks an XML attachment, we use a deterministic PDF parser as a fallback, with an accuracy gate requiring ≥98% numeric-field agreement against XML-backed ground truth. We also download the official R-1 and P-1 Excel rollups, which serve as independent control totals for total obligational authority (TOA). Source cadence: annual.
The P-1 flags each row Add or Non-Add, and we load the Add rows only: Non-Add rows are memo lines the exhibit excludes from its own totals, so summing the workbook without that filter double-counts.
Improper-payment estimates — paymentaccuracy.gov
Agencies are legally required to estimate and report payment-error rates. The dollar exposure figure we show per agency is derived by multiplying the published rate by the published outlay figure. The federal government reported approximately $186 billion in improper payments in FY2025. This is a derived estimate and is labeled as such. Source cadence: annual.
GAO high-risk list — gao.gov/high-risk-list
The GAO's biennial list of federal programs at high risk for fraud, waste, or mismanagement. This list is a department-level designation, and program pages label it as one. Source cadence: biennial.
GAO Weapon Systems Annual Assessment — the program tier
GAO's annual assessment of DOD's costliest weapon programs is ingested for 3 editions, 199 per-program assessments and the current edition's bibliography of 68 program-specific reports, read from the PDFs. Quoted assessment text is GAO's own paragraph, unedited. Source cadence: annual.
Which budget line each item belongs to, done badly, puts a real audit finding against the wrong weapons program. So it is not an algorithm the site trusts: a strict matcher proposes candidates (the GAO name must appear as a contiguous run of words in the line's title, or the reverse, and the services must agree) and a person adjudicates every one against that line's own justification-book narrative. Verdicts and reasons live in data-seeds/gao_program_xwalk.csv. An earlier edition renders only under a ratified newer assessment of the same program, and 23 programs GAO assessed only earlier reach no page.
This build: 63 candidates, 62 accepted, 1 rejected — matcher precision 98.4%. The rejection is instructive: GAO assessed Small Diameter Bomb Increment II, and the proposed line's own narrative opens “GBU-39/B: Small Diameter Bomb Increment I”. Neither rule reaches the Increment II line, so that program ships no crosswalk rather than a wrong one. 48 pages carry 132 GAO items — 62 ratified attributions and 70 earlier editions inherited from them; every other program page says no program-specific GAO finding for that line is ingested.
Senate lobbying disclosures — lda.senate.gov
The Senate Lobbying Disclosure Act database (lda.senate.gov/api/v1) contains filings, each with a permanent UUID, registrant, client company, dollar amounts, agencies lobbied, and issue text. We have linked LDA client names to our company-family database and match each filing’s issue text against our program titles for keyword co-occurrence — never a claim that the filing names the program. 12,571 program mentions connect filings to budget lines this way: one row per filing × matched program element, qualifying only when the program’s PE/BLI code appears (an all-digit one only beside a budget-line label; none of the 1,631 bare-number matches counted before this rule had one), a curated alias appears, or at least two distinct, non-generic words of one program’s title co-occur in the same filing — a single common word is never treated as evidence (see the dataset inventory, which states the qualifying tier per row as evidence_kind). Lobbying income and expenditure by year are shown alongside federal obligations received — influence is presented side by side with outcomes, never as a causal claim. In those yearly figures an amendment replaces its original instead of adding to it (a correction decided 2026-09-26); where a quarter’s amendments disagree, the smallest counts (our copy keeps no posting date). Program mentions still count superseded reports.
State checkbooks — California and Connecticut (pilot)
California's Open Fi$Cal and Connecticut's OpenCheckbook publish transaction-level government spending. We aggregate by department, spending category, and fiscal year, and use Census Bureau population estimates (NST-EST series) for per-capita comparisons. The category mappings that bridge both states' classification systems are published alongside the data.
California data covers FY2025 only — CA Open Fi$Cal updates on a lag; prior years not yet ingested. why FY2025 only? →
3. How we verify
Reconciliation
We apply two arithmetic checks to J-book figures. Check A: project-level amounts within an exhibit must sum to the program-element total in that same exhibit (tolerance: ±$0.001M). Check B: that program-element total must match the corresponding row in the official R-1 or P-1 Excel rollup. A failure does not suppress the figure — it marks the row unreconciled, files a review-queue record against the specific failed check, and the program page carries a Partial Reconciliation badge instead of a Reconciled one. A build gate then refuses any unreconciled row that has no queue record, so a figure can fail these checks in the open but never in silence. Both checks cover prior-year actuals, current-year enacted, and the budget-year request and its base; the J-book’s cumulative All Prior Years element has no R-1 or P-1 column to compare against, so it is never checked and never held against a line.
Zero-absent rule
When a program has no funding for a given fiscal year, the official rollup workbook simply omits the row. Our reconciliation code recognizes this so zero-funded programs are not incorrectly flagged as failures.
Coverage gate
At least 99% of R-1 program elements must have either extracted detail or an explicit gap record. Silent holes are a build failure.
Provenance spot-check
Each build randomly samples 50 served facts and mechanically verifies that the cited source document exists on disk, its SHA-256 matches the download manifest, and the XML element path resolves to a real node. A number whose citation chain breaks does not render.
Per-build automated checks
The automated check inventory includes Python and browser tests, alongside 27 site verification gates and 163 dbt data-model assertions. The analyst-agent evaluation set (48 question-answer pairs) requires at least 44 correct answers and 100% citation resolution.
4. How confident to be
Citation tiers
Every rendered figure is in one of three states. Cited (underlined, clickable): a fact_id resolves to a source document in our citation index — J-book PDF page-and-bbox, a specific workbook cell, an LDA filing, a USAspending query, or a derived formula whose inputs chain back to those sources. XML-path chip: a zero-dollar budget line that exists in the structured XML but has no corresponding citation row — the XML element path is displayed. Citation tier pending (⁂): figure is from a dataset for which row-level citation linkage is not yet complete. As of this build every published dataset carries a citation tier (the pending ledger is empty); the state remains defined — and gate-enforced — for future datasets that ship before their citations do.
Company families — registry fact vs. name inference
High confidence (registry fact): the recipients are grouped under one reported parent name, or one parent UEI where no name is reported, and never span two different parent UEIs; that does not prove ownership. Medium confidence (name inference): legal-name variants normalize to the same string. Where a whole table is uniform, the per-row chip is suppressed and the method stated once.
The tier grades the grouping, never the name. A family’s label is the registered parent name of its largest member, chosen by an argmax over obligations. Among the 200 families we publish, a label that won its argmax by under 15% fails the build without a reviewed one from a curated seed; 17 carry one, each company page still showing its registered name. 2 of the published families also carry a cited SAM.gov registration on the company page — the registration of the parent UEI that the family’s largest member by obligations reports on its awards (the parent on the most of its dollars; the member’s own UEI where that parent has none; on a member tie, the highest such UEI), not always the one the label came from.
Renames and acquisitions — hand-curated, not inferred
Name inference cannot know that Raytheon Company and RTX Corp are one company: federal award records carry the recipient name that was on the contract, and a rename produces two names. We close that gap with a small hand-curated table of corporate renames and acquisitions, each row sourced to an SEC filing or an official company press release. Those sources are external references, not warehouse citations — they leave this site and carry no fact ID, because we read them rather than extracted them. The combined figure a merged family renders IS a warehouse citation: a derived fact whose inputs are the member figures it replaced, recomputed by the citation verifier so a merge can never double count. Names that do not resolve to a recipient family are marked unresolved rather than guessed at.
Budget-to-contract links
Connecting a budget program element to the contracts that funded it is an inference. As of 2026-09-27, 9,588 of the 12,866 links the crosswalk grades high or medium carry a per-award hand adjudication — the most recent made on 2026-09-01 — recording which program elements, if any, the award's own contract record supports. 8,475 of those found work that could not be pinned to any one program element; 56 of them still publish, at medium, and the rest no longer publish. The fpds-ap and subaward+lexicon paths carry no per-link adjudication — their precision is sampled instead (below). High: affirmative program-level evidence — the contract names a program the budget line's own J-book pages also name. 60 of the 1,106 links published at high carry a per-award hand adjudication, all 60 challenged by two independent adversarial reviewers; the other 1,046 rest on the announcement+lexicon path. All 1,106 carry a recorded review, counted once under the strongest: 60 a two-lens hand adjudication, 417 a per-proposal verdict pair and 629 only a survivor-list entry, which records survival of the adversarial pass, not its verdict. Medium: weaker evidence, of more than one kind. An account-based link, where the award drew from the same appropriation account as the program, is an association, not evidence that this specific program paid for the contract. A held-out sample of account / sub-agency links, judged on program attribution, confirmed 0 of 58 (2026-09-11). On that figure the tier was withdrawn (decided 2026-09-25): its 8,865 links that no two-lens hand adjudication pinned no longer publish. Where the evidence is instead an FPDS acquisition-program tag or a subaward description (both below), the program is established but which of its budget lines paid is not. 91 more were demoted from high: 63 unadjudicated keyword matches, 5 refuted in review, 12 rejected by a reviewer and 11 refuted by the precision study. Low: only the account matches — never published. Our earlier automated high tier (account match plus keyword overlap) measured 9.1% precise under this adjudication (37 of 408 links confirmed) and was corrected on 2026-09-01; superseded links are retained in the correction record.
A second evidence path covers major acquisition programs: some DoD contract records carry an FPDS “Program, System, or Equipment” tag naming the acquisition program (F-35, Virginia class, Sentinel). We hand-mapped every such program to its J-book budget lines — each mapping challenged by a two-reviewer adversarial process — then linked a tagged award to a specific line only when the award's own funding accounts match that line's appropriation. FPDS-tagged awards publish at medium — the tag plus a verified program mapping establish the program, and the award's funding accounts confirm the money color, but which of a program's several lines (production vs. modification vs. research) paid is not provable from account data alone. A held-out study measured the earlier “unique line” high tier at 34 of 60 and it was withdrawn on 2026-09-04. Tagged awards whose funding is entirely outside the program's J-book accounts (for example O&M sustainment money) are not linked. The FPDS tag is DoD-entered and sparse — it appears on well under 1% of awards, concentrated in the largest programs — so absence of a link never means absence of spending.
A third evidence path reads the Department of Defense's own daily contract announcements (defense.gov, archived with snapshot timestamps and file hashes): each announcement names the contract number and describes the work, often by program. Where an announcement's program name is one that a program element's J-book narrative itself owns, the pair is a candidate; every candidate is judged by an agent reviewer and challenged by an independent adversarial reviewer, and only links surviving both publish. One stays at high only while a recorded review upholds it and no recorded rejection or refutation applies; otherwise medium, with the reason recorded. At high, the announcement establishes the contract, and the program is identified by its name as written, by a normalized designator, by an alias an adversarial reviewer checked, or, rarely, by the announcement's own description of the work. Where the adjudication packet recorded which of those applied, the link's citation card states it; where it did not, the card says the basis was not recorded rather than asserting one; an unrecorded basis is not evidence the announcement named the program outright. Announcement links additionally require the award's funding accounts to match the line's appropriation; awards funded only from operations and maintenance money are not linked to research or procurement lines. Names that merely describe a platform the contract supports, generic services, or weak generic names are rejected by design. Each link cites the announcement it came from.
Scope of the announcement path: deterministic name matching covered all 32,852 archived announcement records that join the award lake; 4,508 named a program a J-book narrative owns. Of the 28,344 that did not, 15,604 have been through an LLM-assisted alias pass — 89.1% of the residue by announced value; the remaining 12,740 records (10.9% of that value) were not attempted. Its most recent round carries its own measurement: two independent reviewers judged a random draw of 60 of its links, recorded 2026-09-19, and confirmed 48 of the 55 that publish — the others no longer publish and count in neither direction; those links only, not the path as a whole.
Where the only evidence is a subaward: FSRS subaward reports describe the work a subcontractor performs under a prime contract, and when that description names a program the PE's own narrative owns, the prime is linked at medium — the evidence is one hop removed, so it never publishes as high and its rationale names the subaward it rests on.
Measured precision of the published tiers, from a held-out hand-adjudicated sample re-run through a two-reviewer process and recorded 2026-09-04. Every figure answers one question — program attribution: does this award execute this program element? — not whether the linking rule fired. Each sampled link is counted under the tier it publishes under today, not the tier it carried when it was drawn; one the corpus no longer publishes is counted in neither direction: announcement+lexicon 57/61; fpds-ap 89/114; subaward+lexicon 52/59. The announcement tier's figure comes from the 2026-09-04 draw, which predates 367 of the links now publishing under that tier: the LLM-alias pass's most recent round added them, and the round's own held-out sample above measures its links instead. No precision figure is published for the remaining tiers a reader can meet — account, account+subagency, account+tokens. Those rest on an appropriation-account match, narrowed by a hand adjudication of the award, by sub-agency and a pinning two-lens adjudication, or by keyword overlap; how often that association names the right program has not been independently measured for these tiers.
Derived figures are labeled derived
Any figure computed from published rates or published subtotals — rather than directly reported in a source document — is labeled as derived wherever it appears.
Contractor concentration is computed on two bases and published on one
Both bases (high-confidence links alone, and every published link) share one crosswalk and ship in the downloadable warehouse with derived citations; a program page shows only the high-confidence figures, which it and the warehouse carry only over at least three such awards across two or more contractor families holding positive obligations with positive net linked dollars; below that floor it states the absence rather than substituting the wider figure. In the warehouse a shared code is one row, labelled scope = 'code'; /downloads/ says of each whether it is one program's figure.
5. Known limitations
- FY attribution is approximate. Contracts execute across multiple fiscal years; our current method assigns links based on which fiscal years' award transactions share the same federal account code.
- Losing bidders are not in federal data. FPDS records offer counts and competition type; it does not name unsuccessful bidders.
- Company family grouping by name inference can err. Acquired, divested, or renamed subsidiaries may be grouped incorrectly. Corrections create superseding records; the original is retained.
- Improper-payment dollar figures are derived from OMB-published rates and carry the same uncertainty as the underlying rate estimates.
- State comparables depend on category mappings. Treat cross-state comparisons as directional.
- Classified programs are absent. DoD classified budget lines are not in public J-books or USAspending.
- Data-as-of dates vary by source. USAspending updates monthly; GAO high-risk is biennial; J-books are annual. Numbers on the same page may reflect different time periods.
- Lobbying-obligations correlation is not causation. Lobbying expenditure appearing alongside federal obligations is presented for transparency, not to imply that lobbying caused any particular award.
Coverage & limits
Several surfaces on this site are deliberately partial: we show a link only when we can defend it, and we say so where the data renders instead of burying the caveat here. Each block below is the destination for one of those inline “why …? →” links. Two program universes appear in these counts. The flows, dossiers, and years-matrix blocks below count against the detail-grade universe — those features require full R-2/P-40 J-book data, so that is their denominator.
These blocks say what each surface covers and why. For the same coverage in one table, giving the specific blocker beside each figure, where the work on it stands and which gap is a methodology limit rather than a queue, see Coverage.
Corpus: 2,562 browsable program pages; 1,936 of them carry detail-grade R-2/P-40 J-book data — excludes personnel, O&M, and R-1/P-1 lines that lack R-2/P-40 project detail. what separates the two tiers? →
Follow the dollar — 312 of 1,938 programs
The follow-the-dollar view draws a budget line's path to specific awards, recipient families, and districts. That link is an inference: we render the flow only for the high-confidence crosswalk tier, whose evidence §4 grades. That covers 312 of 1,938 programs, spread across the service books. Pages outside it say why in place of the flow; a missing flow never means no money moved.
Research dossiers — 50 of 1,938 programs
Dossiers exist for 50 of 1,938 programs, selected by ranking FY2026 requested dollars among programs with full J-book (R-2/P-40) detail — the 50 largest by money at stake, not by editorial judgment. Program pages that exist only through budget-trajectory data (no J-book detail book) are outside the ranking pool. Every dossier sentence must carry a resolvable citation or the build fails (“cited-or-absent”), so programs without a dossier show a one-line note instead of unsourced prose. Coverage grows as the research pipeline is run against more programs.
Company award linkage — 32 of 200 profiled companies
Company profiles cover the top 200 contractor families by DoD obligations, and 32 of 200 show linked awards. A profile lists a budget→award crosswalk link only when the award’s recipient name is exactly the family’s registered name in the award data. A profile shows none when no member’s award is linked to a budget line, or when the links carry a member’s own, different name.
District lens — 191 of 435 districts
191 of 435 congressional districts appear in the district lens. A district gets a page only when at least one high-confidence budget→award link records an obligation there — a consequence of the crosswalk's current scope, not evidence that other districts receive no defense money. District totals therefore understate true defense spending everywhere they appear.
California — FY2025 only
California figures come from CA Open Fi$Cal and cover FY2025 only — the state publishes on a lag and prior years have not been ingested yet. Connecticut (OpenCheckbook) is the only other state in the pilot. Cross-state comparisons rely on our published category mappings and should be treated as directional, not exact.
FY2026 is a partial year
FY2026 award data here runs through 2026-09-04, and USAspending reports awards on a rolling basis — any FY2026 award total shown is a partial-year figure that will grow. FY2026 budget figures are the requested amounts from the FY2026 J-books, not enacted appropriations. Comparing partial FY2026 award totals against complete prior years will always understate FY2026.
Years matrix — edition-honest columns
The budget-over-time grid spans ten President's Budget editions (PB2017–PB2026). Its default columns follow the edition rule — actuals for FY N come from the PB(N+2) book, and every column states its edition (see the editions block below). The PB2026-detail columns (FY2024 Actuals, FY2025 Enacted/Total, the FY2026 request) remain that one edition's own restatements, selectable from the column picker. A program missing a value in a column renders “–”, never 0, and the grid computes no derived metrics of its own — the Δ and %Δ columns come from the recompute-verified trajectory mart.
“–” and a zero tagged XML mean different things. “–” is absent: the trajectory workbook simply has no row for that program and column (most DARPA program elements, for example, carry no FY2026 Total there). An amber XML-tagged zero on a project sub-row is a source statement: the J-book XML explicitly records a zero-dollar amount for that project, cited to its XML path. A parent showing “–” above zero-valued project rows is therefore honest reporting of two different documents — the grid never derives a parent total from its children.
Detail-grade (R-2/P-40) data is ingested for 1,936 program elements; the full site carries 2,562 browsable program pages — see the service J-books block below for what separates the two tiers.
Budget editions — how ten books become one decade
Each President's Budget edition reports three fiscal years: its own request (FY N in the PB(N) book), the prior year's enacted total (FY N−1), and the year before that as actuals (FY N−2). The decade columns follow that rule — actuals for FY N come from the PB(N+2) book, enacted for FY N from PB(N+1) — and every column, cell citation, and diff states its edition. Editions are parallel publications, not corrections: PB2026's FY2024 actuals and PB2025's FY2024 enacted may disagree, both are kept, and the site never averages or reconciles across books. All ten defense-wide editions (PB2017–PB2026) are loaded; the nine backfilled editions each passed a per-edition probe, with every per-book exclusion (duplicate consolidated volumes, niche-fund books) recorded in the edition coverage manifest — an honest record, never a silent skip.
Two honest gaps remain. First, cross-edition procurement comparisons stop at the PB2024 boundary: PB2017–PB2023 procurement lines are keyed within their own edition (the underlying account/line identity is unstable across those years), so book diffs for the era editions cover RDT&E only — a wrong lineage would be worse than a gap. Second, program elements absent from an edition render as gaps (“–”, or a break in the decade sparkline) with a “not in the PB20XX edition” note; the site never interpolates across missing books and never fuzzy-matches renamed programs across editions.
Service J-books — 1,936 of 2,562 program pages with full detail
2,562 program pages in total: the elements the FY2026 workbooks name, plus 553 whose cited record stops in an earlier President's Budget edition. Full J-book detail (mission prose, project tables, accomplishments) is ingested for 1,936 of them. As of Phase 5G the FY2026 justification books for all three military departments are ingested: the Navy's RDT&E and procurement books, the Army's, and the Air Force and Space Force books — over 1,400 service program elements now carry full R-2/P-40 detail with working PDF citations, where before they showed only cited workbook figures. The books were pulled from the official service comptroller sites where reachable and from the Internet Archive's WAF-free public mirror where the comptroller sites sat behind CAC or Akamai access walls; the embedded XML that anchors every figure to its page survives the mirror intact. What remains figures-only is a small residual: lines with no extractable R-2/P-40 narrative — classified, SBIR, or spectrum program elements, plus R-1/P-1 workbook remainders with no matching book entry. Some of it belongs to organizations with no usable FY2026 justification book in this corpus — DHA (14), DEFW (4), IG (1) — and those pages name which case applies. Which organizations appear here is read from the loaded books at build time, not maintained by hand. We never substitute generated prose for a missing source document, and coverage grows as any residual book lands.
The flowdown chart — two rivers, bridged for 461 of 536 crosswalked PEs
/flow/ draws two separate systems and refuses to blur them. The budget river is the FY2026 President's Budget request (R-1 + P-1, USD thousands) — money Congress is being asked to approve. The spend river is DoD prime-contract obligations from USAspending (USD, per selected fiscal year, FY2017–FY2026) — money that actually went on contract. Budget years are not obligation years, and request dollars are not obligation dollars, so the two rivers carry separate unit statements and never share an axis.
The bridge between them exists only where the award crosswalk (§4) links a program element to contractor families: 461 of 536 crosswalked PEs carry FY2026 request dollars (349 at high confidence). Everything else terminates in an explicit “not yet crosswalked” band — 59.1% of the request. That band is an honest statement about our crosswalk, not a claim that those programs have no contractors. The G9 gate verifies the remainder arithmetic exactly and recomputes every node from the parquet lake.
Spend-river edges are colored by FPDS extent_competed (full & open / set-aside / other than full / not competed), with the distribution of offers received on hover. FPDS records how many offers came in — never who the losing bidders were — so the chart states offer counts and implies nothing more. Negative flows (net de-obligations, where an office clawed back more than it obligated to a family in that year) render as zero-width hairlines per the exporter's layout rule; their tooltips carry the honest negative value. Every node and edge opens a citation panel with its derived formula and inputs.
Anomaly Feed — signal types and thresholds
The /feed page surfaces automated signals computed from the defense budget and award data. Each signal type has a defined threshold; all figures carry citations.
Subscribing. The feed is published as files, not just a page: 1,730 current items are available at /rss.xml (RSS 2.0, with /feed.xml as an alias) and /atom.xml (Atom 1.0). The 4 signal types that currently have events each have their own feed as well — a type with no events gets no feed rather than an empty one, which is why the withdrawn zeroed_fy2026 section below has none. There are 386 per-program and 48 per-company watch feeds — one for every program or contractor family that actually has events, so no advertised feed is permanently empty. Every item carries the dollar magnitudes the event is about, not only a percentage, plus a /fact/ permalink to the receipt behind the figure. Feeds are rewritten from scratch on each build and stale ones are deleted, so a program whose events disappear loses its feed rather than continuing to serve last month's claims. Readers autodiscover them through the <link rel="alternate"> tags on the relevant pages.
Year-over-Year Swings (yoy_swing)
Programs where FY2025 total is ≥ $50M and the absolute percentage change to FY2026 is ≥ 50%. Budget figures come from the fct_budget_trajectory mart (trajectory pivot of FY2025 enacted and FY2026 requested budget workbook lines). The figure shown is the percentage change; the delta in dollar terms is the cited trajectory figure.
Zeroed in FY2026 (zeroed_fy2026) — withdrawn, currently empty
Programs the budget workbooks record as literally zero in FY2026 after carrying positive FY2025 money. The figure shown is the last known FY2025 amount. No FY2025 floor — any positive amount qualifies. This section currently shows nothing, and that is the correct result.
What we got wrong. Until August 2026 this section published 87 cards reading “<program> zeroed out in FY2026 (had $0 in FY25)”. Both halves of that sentence were false. The underlying query treated a program’s absence from our FY2026 extract as a zero, and none of the 87 was a genuine zero. Separately, a formatting bug printed the FY2025 amount as “$0” on every card, hiding $7.07B of real FY2025 money.
Why absence is not zero. In DoD’s published R-1/P-1 workbooks a blank FY2026 cell and a 0 cell mean different things, and both appear in the same file. Our loader preserves that distinction. A blank usually means the line is not carried in the FY2026 columns — most often because the program element was renumbered, not cancelled. DARPA is the clearest case: the FY2026 request retired 14 of its old program elements and introduced 8 new ones, while DARPA’s total request rose to $4.92B from $4.15B. Calling Defense Research Sciences “zeroed out” described a renumbering as a cancellation.
The query now requires positive evidence: the corpus must hold a FY2026 figure for the program and that figure must be zero. On the current corpus nothing meets that bar, so the section is empty rather than populated with inference. A gate (24h) fails the build if any feed card claims a program was zeroed in a year for which we hold no figure, or a non-zero one.
Award Concentration Shifts (concentration_shift)
Each program-year with at least $5M in positive obligations on high-confidence links, and its Herfindahl-Hirschman Index (HHI) over them; no HHI floor applies. On a budget line more than one program uses, only a program carrying every crosswalk link (high or medium) gets a card, linked to its page. HHI = sum(share² × 10,000) where share = family_obligation / total_obligation; only positive obligations are included. Bands follow the 2023 Merger Guidelines of the Justice Department and the FTC: an HHI from 1,000 to 1,800 is moderately concentrated and one above 1,800 is highly concentrated. Below 1,000 this site says unconcentrated, its own label for a range those bands leave unnamed.
This figure is a single fiscal year’s HHI, not a program’s overall concentration. A program’s own page renders a pooled HHI computed across every award year, on the basis and above the floor section 4 states. The two are legitimately different measures: a concentrated year can sit next to an unconcentrated pooled figure. Every card states which fiscal year its HHI covers and that the pooled figure can differ.
Largest Request-vs-Actuals Gaps (request_vs_actuals_gap)
The largest gaps between what a President's Budget asked for a fiscal year and what a later book reported actually spent: the PB(N) request for FY N compared against the PB(N+2) book's FY N actuals, ranked by absolute dollar gap across all loaded editions (PB2017–PB2026). The claim is scoped exactly to this request-vs-actuals comparison — the feed makes no claim about request-vs-request changes between adjacent asks. Each figure cites its book-diff derived fact; the citation panel shows the two input figures (each cited to its own edition's workbook) and the show-your-work breakdown.
New Defense Contractors (new_entrant)
Entity families whose first award year in the DoD transaction data is FY2024 or later and whose cumulative positive obligations exceed $1M. “First award year” is determined from the USAspending award archive (FY2017 onward). Entities that received their first award before FY2017 may appear as new entrants due to archive coverage limits — treat as a weak signal. The figure shown is total cumulative obligations (USD).
6. Corrections
If you find a number that appears wrong, send us the citation that contradicts it and we will investigate. We follow a supersede-not-delete policy: a corrected record is marked superseded and a new record takes its place. The old record is retained and accessible. Permalinks continue to resolve permanently; they show the current best value alongside the correction history if one exists.
Corrections issued 2026-08-08 onward
An independent review found six published figures that were correctly cited but wrongly labelled — each number matched its source, while the sentence around it claimed something the source did not support. Four of the corrections make a published figure smaller. We publish the smaller true number rather than the larger false one. Corrections issued since are appended to the same table, newest last, or stated where the figure is described.
| Figure | Was | Now | Why |
|---|---|---|---|
| District linkable obligations | $8.01B | $5.58B | One award matched to N program elements was counted N times. Alaska's $1.05B was a single $209.3M award counted five times. Totals now count each award once. |
| Lobbying program mentions | 34,538 | 10,560 | A mention required one shared word of five or more letters, so “Based”, “Services” and “Chemical” counted as namings. A mention now requires a program-element code, two distinctive words, or a curated alias, and each row shows which. |
| Program index coverage | 1,741 of 1,741 | $228.5B of $385.3B | The row counter denominated the index by itself. It is now denominated in dollars against the FY2026 request, and the largest excluded lines are named. |
| Program lineage (stated edges) | 31 | 29 | Two edges were extracted from sentences that retract themselves — one described a transfer made “erroneously” and reversed in the next sentence. |
| FY2026 request figures | unlabelled | split disclosed | $89.01B of the $385.27B request is one-time reconciliation money. Program pages now show the discretionary and reconciliation parts, and the discretionary change rate, beside the combined figure. |
| Basis chip on RDT&E lines | P-1 TOA | R-1 TOA | P-1 is the procurement exhibit; most of the index is RDT&E and is reported on R-1. The chip now reads from each row's own exhibit. |
| Programs sharing a budget-line key | fused | separated | Six pages summed two unrelated programs that share a numeric key. Shipboard Tactical Communications published $2.62B; it is a $20.9M line, and the rest belonged to LPD Flight II. The keys are now account-aware. The displaced programs are named in the coverage note on Programs, not silently dropped. |
| Programs sharing a key, split apart | absent | own page | Separating the fused keys in August left the smaller half on the page and the larger half nowhere — $5.35B of real programs named only in an excluded list. Each appropriation account now has its own page: LPD Flight II ($2.60B) and Medium Landing Ship ($1.96B) among them. The index covers 59.4% of the FY2026 request, up from 58.0%. |
| Program page named for a sub-line | smallest line | largest line, rest itemised | One budget-line code can carry money in several budget activities. Where those lines share a name the page name covers them all; twice it did not, and the page took the name of a sub-line instead of the line most of its money is in. HC/MC-130 Post Prod named a page that is mostly HC/MC-130 Modifications. Both pages now carry their largest line's name and list every line beneath the figure. Those same lines were also listed on Programs as absent from the index while the index was publishing them; that claim is withdrawn. |
| Concentration (HHI) wording | “near-monopoly” | 2023 Merger Guidelines bands | 2,500 was labelled a near-monopoly; four equal firms produce exactly 2,500. A single year's concentration also now says so, because the pooled all-years figure on the page it links to can legitimately differ. |
| HHI bands | 2010 guidelines (1,500 / 2,500) | 2023 Merger Guidelines (1,000 / 1,800) | On the 2026-09-25 export these bands put 3 feed cards and 4 badges one band higher; “Competitive” is now Unconcentrated. |
Twenty-seven claims in five research dossiers cited lobbying mentions that no longer meet the evidence standard. Those claims were removed and the affected dossiers say so.
Title overrides
A handful of program titles are verbatim source-workbook text with a typo the workbook itself never fixed. We do not run a display-time find-and-replace for this — this corpus also carries RDT&E, S&T, HM&E, D&UP and R&D, and a rule that inserts a space after every ampersand would corrupt every one of those. Instead each correction is a specific, published row below: the exact source string, what we display instead, and why. A row stops applying automatically if the source workbook is ever corrected upstream — the title it names must still match the workbook's current text, or it no longer takes effect.
| PE / BLI | Source title | Displayed title | Why | Verified |
|---|---|---|---|---|
| 0603183D8Z | Joint Hypersonic Technology Development &Transition | Joint Hypersonic Technology Development & Transition | Source workbook omits the space after the ampersand; no other change. | 2026-08-13 |
7. Cite us / bulk data
When citing a specific figure, include the source citation displayed alongside it: document title, fiscal year, page or XML element path, and the date we retrieved the file. USAspending-derived figures cite the archive file name and SHA-256 hash; J-book figures cite the PDF title, page number, and XML element path.
Bulk data exports (Parquet files with data dictionaries) are available — see Downloads. The export schema includes the same provenance metadata that backs every on-screen figure.