Skip to content
Fiscal Receipts

Coverage

What this site covers, what it does not, and what would have to change for that to move. Each row gives the coverage this build actually shipped, the specific thing standing in the way, and where the work stands — including, in plain words, why no row here carries a date.

Every number on this page is recomputed at build time

Nothing here is typed by hand. Each coverage figure is read from the data files this build shipped — the same files the pages themselves render from — and a build-time gate recomputes all 12 rows independently and fails the build if any rendered figure disagrees with its source. A coverage page carrying a stale literal would refute its own argument, so this one is not allowed to carry any. The derivation for each row is printed beside it.

One figure is deliberately absent for the same reason: the share of award dollars whose recipient resolves to a corporate family. That is a warehouse query rather than a shipped file, so it cannot be recomputed at build time — and an unverifiable number on this page would be worse than a missing one.

Feature by feature

No row on this page carries a dated target, and that is a decision rather than an omission: a site that will not publish a figure it cannot recompute should not publish a schedule it has not committed to. Each row instead names the work that is planned and says the date is pending a roadmap decision. When a date is agreed it is added here — and a date that slips is moved here, not deleted. This map was last reviewed on .

Coverage, blocker and target for each dataset and feature on Fiscal Receipts.
Program pages1,739 of 1,993 program pages carry detail-grade J-book justification; the other 254 carry cited R-1/P-1 workbook figures only.Derived from program_details sidecars holding at least one J-book detail row, over every sidecar this build shipped.In the wayThe 254 remaining pages are rollup lines for which the services publish no matching R-2/P-40 justification — classified programs, SBIR/STTR set-asides, and spectrum-relocation lines. Their figures are cited to the workbook, but there is no narrative document to ingest: this is a limit of what the Department publishes, not of what we have loaded.TargetNo dated target — the missing volumes do not exist publicly. If a service releases withheld justification, it lands in the next ingestion run and this number moves on its own.
President's Budget editions10 editions loaded — PB2017–PB2026. Actuals for fiscal year N are read from the PB(N+2) book, and every column on the decade matrix states its edition.Derived from distinct edition stamps on years_matrix.json's decade columns — the same columns /years/ renders.In the wayEach earlier edition is manual work rather than a rerun: the older books publish consolidated volumes under unstable file naming, so every edition needs its own evidence-keyed volume classification before its lines can be trusted next to the modern ones. Two editions were nearly published with the wrong volumes before that rule existed.TargetNo dated target yet — PB2015 and PB2016 are the next two editions queued, and the date is pending a roadmap decision rather than unknown. An edition ships only once its volumes are evidence-keyed — never on a filename pattern — so the date follows that work, not the other way round.
Research dossiers50 of 1,741 programs have a research dossier.Derived from dossier sidecars over programs.json rows.In the wayDossiers are generated in metered batches under a per-run cost cap, and every claim in one must resolve to a citation before it is first published — a freshly generated dossier with even one unresolvable citation is rejected outright, not published with a caveat. If an upstream data correction later invalidates a citation in an already-published dossier, that individual claim is dropped and the removal is disclosed on the page (#52) rather than pulling the whole dossier. Throughput is bounded by that budget and that gate, not by the availability of source material.TargetNo dated target yet — the next batches are queued and will be taken in order of FY2026 requested dollars, so the largest lines are covered first. How many land by when is pending a roadmap decision; the order is already fixed.
Program lineage48 of 1,741 programs carry a lineage rail — where the money went when a program element was renumbered, realigned or transferred.Derived from program_details sidecars carrying a non-empty lineage rail, over programs.json rows.In the wayAn edge is asserted only where a justification narrative names BOTH endpoints in a sentence we can quote back. “Realigned to PE 0604818A” is usable; “realigned to another program element” is not, and most renumberings are written the second way. Candidate edges found by maturation patterns are shown dashed and are never cited.TargetNo dated target yet — narrative extraction across the whole FY2026 set is the planned next step and its date is pending a roadmap decision. Whenever it runs, anything it finds stays in the candidate tier until a quotable sentence names both ends.
Follow-the-dollar17 of 1,741 programs have a follow-the-dollar view.Derived from flow sidecars over programs.json rows.In the wayThe budget→award crosswalk, one row below. A program earns this view only where its awards can be tied to it by something firmer than an account code, and for almost every program they cannot be.TargetNo dated target — this number moves when the crosswalk moves, and the crosswalk is a methodology limit rather than a queue.
Budget→award crosswalk10 of 24 crosswalked program elements carry FY2026 request dollars (6 at high confidence) — 98.7% of the FY2026 request is not bridged to an award.Derived from the bridge band of flow_chart.json: crosswalked and universe PE counts, and the unbridged share of the request.In the wayAccount codes are too coarse to attribute awards to program elements outside DARPA's structure. An award record carries a Treasury account and an appropriation; one appropriation account funds dozens to hundreds of program elements, and nothing else on the record narrows it. DARPA is the exception because its program elements line up almost one-to-one with its offices, so its account codes do resolve. Everywhere else, asserting a link would mean guessing which of an account's program elements paid — and a guess wearing a citation is worse than an honest absence.TargetNo dated target, because this is a methodology limit and not a backlog item. It closes if a source begins publishing the program element on the award record. Until then the unbridged share is stated outright, so nobody has to reverse-engineer it from what the chart omits.
Company award linkage20 of 200 profiled companies show at least one award linked to a named budget line.Derived from entity_details sidecars carrying a non-empty awards array, over entities_top.json rows.In the wayThe same crosswalk limit, seen from the company side. Each profiled company's obligations total is complete over the award window; what is partial is the link from those obligations to a named budget line.TargetNo dated target — this is the crosswalk limit above, counted per company rather than per program element.
Award obligations windowFY2017–FY2026 contract and assistance obligations, through 2026-04-23. FY2026 is a partial year.Derived from site_meta.award_fy_range, computed from the award transaction lake at export time.In the wayThe newest fiscal year is always incomplete: USAspending publishes on a rolling basis and the federal year does not close until 30 September. Years before the window's start sit outside the transaction archive we ingest.TargetNo dated target, and none would mean anything here: this window is refreshed on every ingestion run rather than on a schedule. The newest fiscal year stops moving once the federal year has closed and USAspending has finished publishing against it.
Congressional districts106 of 435 congressional districts have linked defense dollars.Derived from districts/index.json rows over the 435 seats of the House.In the wayA district appears only where an award's place of performance resolves to a numbered district. A large share of defense obligations is recorded against statewide or undistricted codes (00, 90, 98, 99), and those cannot be split across a state's seats without inventing a distribution nobody could check.TargetNo dated target yet — the planned fix is to publish the statewide residual as its own row per state, so the dollars that cannot be districted are visible instead of missing. The work is scoped; its date is pending a roadmap decision.
State spendingCalifornia only, FY2025 only.Derived from the scope of the fct_state_per_capita dataset shipped on /data/.In the wayCA Open Fi$Cal publishes on a lag and restates prior years in place, so each earlier year needs its own reconciliation against the restated totals before it can sit beside a federal figure. Every other state is a separate portal with its own schema — there is no shared source.TargetNo dated target yet — California FY2023 and FY2024 are the planned next step, pending a roadmap decision on when the reconciliation work is scheduled. No second state is queued behind them, and none will be announced before its portal is ingested.
Syndication feeds223 items across 4 event types, plus 123 program and 39 company watch feeds.Derived from feed.json's cards, and the RSS files under public/feeds/ that this build wrote.In the wayA watch feed is written only where the program or company actually has events; the rest would be permanently empty subscriptions advertised as live ones. So feed coverage is event coverage, and a new event type cannot ship until its threshold is published and gated.TargetNo dated target yet — two further event types are planned, protest outcomes and GAO high-risk transitions, each with its threshold published before its first card. Which build carries them is pending a roadmap decision.
Lobbying filings4,394 Senate LDA filings indexed, with program mentions extracted.Derived from filings_index.json's total.In the wayFilings are matched to programs by name and alias, and LDA activity descriptions usually name a platform or a service rather than a budget line. A mention is published only where a tracked alias matches; a description naming only “the Navy” produces none, which is the honest result rather than a miss.TargetNo dated target yet — extending alias coverage across the whole detail-grade corpus is planned, with each new alias recorded in the alias table rather than inferred at match time. The date is pending a roadmap decision; the rule it has to follow is not.

The budget→award crosswalk is a methodology limit, not a backlog item

This is the site's largest and most visible gap, and it is worth being precise about what kind of gap it is. It is not work we have not got to. It is a limit of what the source records contain.

Account codes are too coarse to attribute awards to program elements outside DARPA's structure. An award record carries a Treasury account and an appropriation; one appropriation account funds dozens to hundreds of program elements, and nothing else on the record narrows it. DARPA is the exception because its program elements line up almost one-to-one with its offices, so its account codes do resolve. Everywhere else, asserting a link would mean guessing which of an account's program elements paid — and a guess wearing a citation is worse than an honest absence.

So the honest boundary is this: we assert a budget→award link only where the record supports one, and we publish the size of the remainder rather than leaving it to be inferred from an empty chart. The bridge states that remainder as a share of the request; in this build: 10 of 24 crosswalked program elements carry FY2026 request dollars (6 at high confidence) — 98.7% of the FY2026 request is not bridged to an award.

No dated target, because this is a methodology limit and not a backlog item. It closes if a source begins publishing the program element on the award record. Until then the unbridged share is stated outright, so nobody has to reverse-engineer it from what the chart omits.

Where coverage is stated elsewhere

Every one of these gaps is also disclosed where a reader meets it: on the page, beside the figure, with a link to the reasoning. This page collects them so the shape of the whole is visible at once. For the definitions behind the numbers — confidence tiers, the supersede policy, and the nine named limitations — see the methodology. For the datasets themselves, with row counts read from the shipped parquet files, see the data explorer.