Method

Sources and methods

One row per dataset. If a figure appears anywhere on this site, the dataset it came from is listed here with the extraction that produced it and the limitation that constrains how it may be read.

Data register

Statement of Budgetary Resources (File A)

vintage 2026-08-21 · 6,667 rows

Budgetary resources, obligations incurred, unobligated balance and gross outlays at TAS grain, as submitted by reporting agencies. The backbone of the execution chain. Every Department account is also kept with its period of availability, as the resources the program-year view rates obligations against.

Source system
USASpending Account Balances (GTAS submission chain)
Grain
Treasury Account Symbol x fiscal year
Path
data/usaspending/warehouse/accounts/file_a
Refresh
daily

Limitations. Carries five agency identifier codes; 011 (Executive Office of the President) is not the Department and is excluded from every DOW scope. The current fiscal year is a period-to-date submission, not a closed year. File A carries no direct/reimbursable attribute: its obligations and resources include reimbursable work, so the direct split shown beside them comes from File B.

President's Budget -1 exhibits (P-1, P-1R, R-1)

vintage 2026-08-24 · 108,317 rows

Every procurement (P-1), reserve-equipment (P-1R) and RDT&E (R-1) budget line in the eight President's Budget books held here, at the grain the exhibits themselves publish: a book year and a fiscal year. Because each book restates three fiscal years -- prior-year actuals, current-year enacted, budget-year request -- a single fiscal year appears in three successive books with three different numbers, and all three are kept. The exhibit account symbol is resolved to a Treasury account so a budget line can be carried into the execution files, and the Department's own Program Acquisition Cost by Weapon System book is carried alongside as its answer to which of these lines is a major program.

Source system
DoD Comptroller President's Budget justification books, PB2020-PB2027
Grain
Budget line item x President's Budget year x fiscal year
Path
knowledge-bank/DOD-FM-Knowledge-Bank/11-Budget-Justification/_Archive
Refresh
annual, on publication of each President's Budget

Limitations. The P-1R exhibit is National Guard and Reserve equipment already counted inside the P-1 lines, and R-1 rows marked Include-in-TOA = N sit outside total obligation authority; both are kept, flagged is_memo, and excluded from every total. Amounts are in thousands of dollars as published, are total obligation authority rather than outlays, and are not comparable to the execution files without ageing prior-year balances. The link from a weapons-book system to a budget line is derived from shared type designators or shared significant words -- neither source carries the other's key -- and every link records the evidence it rests on.

Object Class and Program Activity (File B)

vintage 2026-08-15 · 162 rows

Obligations decomposed into USSGL undelivered orders (480100 series) and delivered orders (490100 series), plus OMB object class. Shows what stage each obligated dollar has reached.

Source system
USASpending Account Breakdown by Program Activity and Object Class
Grain
TAS x program activity x object class x fiscal year
Path
data/usaspending/warehouse/accounts/file_b
Refresh
daily

Limitations. Object class is reported by the component; unreported and mixed classes appear as their own buckets rather than being redistributed.

Contract award transactions (FPDS)

vintage 2026-08-06 · 986 rows

Federal action obligations for DoW contract actions. Two vintages are retained so that movement in closed fiscal years is measurable rather than assumed.

Source system
USASpending contract award archive, agency 097
Grain
Contract action (transaction) x fiscal year x vintage
Path
data/usaspending/warehouse/contracts
Refresh
monthly (source publishes monthly full files)

Limitations. Federal action obligation is an FPDS reporting concept and is not the same measure as an account-linked obligation; see the reconciliation. The most recent fiscal year is incomplete.

Financial assistance transactions (cooperative agreements, grants, direct payments)

vintage 2026-08-06 · 581 rows

Federal action obligations for DoW financial-assistance awards — cooperative agreements, project and formula grants, and direct payments. A separate warehouse tree and reporting chain from contracts and File C; not account-linked and not reconciled against anything.

Source system
USASpending financial assistance archive, Department of War / Department of Defense awarding agency
Grain
Assistance transaction x fiscal year x vintage
Path
data/usaspending/warehouse/assistance
Refresh
as vintaged (two vintages currently retained)

Limitations. Rows are filtered to awarding-agency name ‘Department of Defense’ or ‘Department of War’ rather than an agency-identifier code, because this warehouse cut carries no code column. The assistance-type codes present are cooperative agreements, grants and direct payments — no loan or loan-guarantee type codes appear in this cut, so it is not a credit-programs picture and must not be described as one. Only two vintages are retained so far; vintage drift is measurable but thin.

Award-to-account linkage (File C)

vintage 2026-08-15 · 69 rows

Contract obligations that components have linked to a Treasury account. Compared against the award files to measure linkage completeness.

Source system
USASpending Account Breakdown by Award
Grain
Award x TAS x fiscal year
Path
data/usaspending/warehouse/accounts/file_c_contracts
Refresh
daily

Limitations. A low linkage percentage measures reporting completeness between two chains. It is not an estimate of unsupported or missing obligations, and must never be presented as one.

Program execution and account traceability

vintage 2026-08-06 · 4,220 rows

Contract obligations cut by FPDS dod_acquisition_program_code -- the only field in this warehouse keyed to a budget line rather than to an account -- with the share of each total whose funding Treasury account is actually named, the accounts named on those actions, contract-level concentration, and the File C tie-out for the same contracts.

Source system
USASpending contract award archive; USASpending File C
Grain
Acquisition program code x fiscal year
Path
data/usaspending/warehouse/contracts + accounts/file_c_contracts
Refresh
daily

Limitations. FPDS records 'no acquisition program' as code 000 / description NONE, and roughly three quarters of DoD contract dollars carry that code, so this covers only the program-attributable quarter of the file -- dm_program_coverage states how much per year. federal_accounts_funding_this_award lists every account funding an award without apportioning the obligation across them, so no figure here is split by account. A program obligation total is not comparable to that program's appropriation: it draws on prior-year balances this cut cannot age, and Foreign Military Sales trust dollars (011-8242) sit on the same contract actions as Department appropriations.

Budget line to acquisition program crosswalk

vintage 2026-08-06 · 58 rows

The join that lets a President's Budget line be followed into the contract file. The -1 exhibits name budget lines; FPDS names acquisition program codes; neither carries the other's key, so each row here records the evidence the link rests on -- a shared type designator, or identical names.

Source system
Derived from the President's Budget -1 exhibits and the FPDS contract archive
Grain
Budget line item x FPDS acquisition program code
Path
derived: budget_exhibits x program_execution
Refresh
with each exhibit or contract refresh

Limitations. Derived, not published by the Department. Only a shared type designator or an identical name is accepted, and a designator naming more than one program code produces no row rather than a guess -- so this covers the lines whose identity is unambiguous in both vocabularies and no others. A link means the two names refer to the same system, not that the budget line's appropriation funded the contracts under that code.

DoD-FM knowledge bank and curated wiki

vintage 2026-09-07 · 1,208 rows

Definitions with authorities, document inventory by collection, FY2027 justification exhibits, and the congressional hearing record.

Source system
Local knowledge bank; curated DoD-FM wiki pages
Grain
Document / wiki page
Path
knowledge-bank/
Refresh
daily

Limitations. Hearing dates are the acquisition date embedded in the GPO filename, not the date the hearing was held; they are labelled as ingest dates and never as hearing dates.

Audit posture (documentary)

vintage 2026-09-08 · 21 rows

Audit opinion, material weakness counts and scope limitations, read from the Agency Financial Report rather than inferred from file counts.

Source system
DoD FY2025 Agency Financial Report; DoD OIG
Grain
Reported metric
Path
knowledge-bank/DOD-FM-Knowledge-Bank/07-Financial-Statements-and-Audit-Reports
Refresh
annual

Limitations. Read via the curated wiki summary of the AFR, which is a secondary read of a primary document. Each row records which it is.

NFRs and material weaknesses (documentary)

vintage 2026-09-12 · 557 rows

Notices of Findings and Recommendations issued, reissued and closed by fiscal year, the per-entity tables the reports publish, and the Agency-Wide material weakness roster for each year a roster is printed. Around each FY2025 weakness, a ten-element audit-risk object: account, assertion, risk, control, failure, root cause, exposure, evidence, remediation, outcome.

Source system
DoD OIG annual audit-result reports FY2018-FY2025; GAO
Grain
Fiscal year; reporting entity; material weakness
Path
database/seed_nfr.json, built by scripts/build_nfr_seed.py
Refresh
annual

Limitations. Individual NFRs are not public documents. Nothing here is an extracted notice: the OIG publishes counts and material weakness narratives, so the finest grain available is the material weakness. Every element records whether it is reported in the cited document or read out of it, and the outcome element is computed from the rosters rather than asserted. FY2018 is published at year grain only, because its per-entity table does not foot to its own published total. FY2023 publishes no roster.

Source field catalogue

vintage 2026-08-21 · 266 rows

Every column each source carries, how often it is populated, three real values, and whether this site reads it - plus the records that demonstrate each broken join.

Source system
USASpending account and award files as held in the local warehouse
Grain
source file x column
Path
accounts/ and contracts/
Refresh
with the warehouse

Limitations. populated_pct, distinct counts and sample values are measured on the first batch of rows of one partition rather than the whole file, and rows_scanned states how many. A parquet row group in these files is the whole file, so a complete profile costs more memory than the extract host has.

Justification books

vintage 2026-08-23 · 46,447 rows

Every justification book in the archive, held at (book, President's Budget year) and never collapsed: the sections each edition prints, in the order it prints them, with the word band each runs to, how much of it carries dated or scheduled language, and the format drift between editions. Plus the exhibit grain underneath it — R-2 and R-2A exhibits from the current Defense-Wide RDT&E books, with their bodies.

Source system
DoD Component budget justification books (comptroller.defense.gov), FY1998–FY2027
Grain
book × President’s Budget year × section
Path
knowledge-bank/DOD-FM-Knowledge-Bank/11-Budget-Justification
Refresh
annual, on publication of each President's Budget

Limitations. Read from the published PDFs by layout extraction, so a table section keeps its source spacing rather than being re-tabulated. The archive is the Defense-Wide and Department-level material: a service's own book appears only where it was collected (a few FY2003–FY2005 O&M volumes), so the picker shows what is held rather than what the Department publishes. Structure and measurements come from every edition; example TEXT is kept only for a book's two most recent editions, because the archive is several gigabytes of prose. A book with no text layer (an older scan) contributes page counts and nothing else, and says so.

President's Budget "-1" display tables, all seven exhibits

vintage 2026-08-24 · 18,184 rows

All seven "-1" display tables -- C-1, M-1, O-1, P-1, P-1R, R-1, RF-1 -- for the latest two President's Budget books, keeping the hierarchy the exhibit is printed in so the request can be drilled into rather than listed flat. Each row carries the fiscal year's total, its mandatory half, the column the figure came from, and whether the row is money, a negative offset the published total includes, or a memo restatement that must never be summed.

Source system
DoD Comptroller budget materials, FY2026 and FY2027 President's Budget
Grain
book x exhibit x appropriation x budget activity x sub-activity x budget line item x fiscal year
Path
knowledge-bank/DOD-FM-Knowledge-Bank/11-Budget-Justification/_Archive
Refresh
annual, on publication of each President's Budget

Limitations. A display table is what is being asked for, not what was executed or enacted; the FY(pb-1) column is an enacted position as of the book's own cut-off and is restated in the following book. The seven exhibits do not add to a Departmental topline: P-1R restates equipment already inside P-1, and RF-1 covers revolving funds outside the appropriation titles. Discretionary is derived as the year's total minus its mandatory columns, because several exhibits publish alternative measures of the same money side by side rather than components of a sum.

File B execution detail (object class, program activity, expenditure stage)

vintage 2026-08-15 · 86,800 rows

File B published at the grain it is reported at rather than as one row per fiscal year: obligations, undelivered and delivered orders unpaid, prepaid and paid outlays, deobligations, and the upward and downward adjustments to prior-year orders, for every Treasury account in Department scope. Each account carries the period of availability read as a fund life, because annual authority expires on 30 September and multi-year and no-year authority does not. Each account also carries its program year -- the beginning of its period of availability -- so a fiscal year's execution can be split into the current year's money and the prior years' money still executing in it.

Source system
USASpending account breakdown by program activity and object class (File B)
Grain
fiscal year x Treasury account x object class x program activity x direct or reimbursable x emergency fund code
Path
data/usaspending/warehouse/accounts/file_b
Refresh
monthly, as the Department's submissions are published

Limitations. One submission per fiscal year is held, so there is no within-year series in the account chain at all -- this file gives the Department's position, never a curve, and within-year timing can only be read from contract action dates, which cover a third of obligations. The current fiscal year is period-to-date at its latest submission and is not comparable with a closed year without saying so. From the FY2026 submission the program activity name is null on every row, so an activity can be identified by its reporting key but not read. Rows that differ only by reporting key and repeat one figure are counted once, which is a repair of a source defect rather than a property of the file. Detail is carried for the three most recent fiscal years; earlier years are held as account and object-class rollups. Direct and reimbursable obligations are carried separately and every execution figure defaults to direct: reimbursable work is paid back by a customer, and when the customer is another Department account the same work is already that customer's direct obligation.

Contract execution timing and year-end signals

vintage 2026-08-06 · 30,508 rows

When contract obligations moved: the day-by-day cumulative curve for each fiscal year, monthly totals by awarding sub-agency, office, product or service code and supply group, recipient, pricing type and extent of competition, the September and final-five-day concentration of each category, and a set of signals computed against each category's own prior years.

Source system
USASpending contract award files (FPDS-NG)
Grain
fiscal year x day, and fiscal year x month x category
Path
data/usaspending/warehouse/contracts
Refresh
monthly, with each warehouse vintage

Limitations. Contract obligations are a third of Department obligations -- 33.9% in FY2025 -- and are not the whole of execution. The largest block they do not cover is personnel compensation and benefits, 40.4% of that year, which is paid on a schedule. There is no Department-wide within-year series in these sources to compare against: File A and File B each publish one submission per fiscal year, so the account chain gives a position and never a curve. A signal is a question rather than a finding: none of them observes impropriety, and a large September action is very often a multiyear definitisation or an exercised option with nothing unusual in it beyond its size. Deviations are measured against a category's own history, so a category held in fewer than three complete years produces none. The live fiscal year is shorter than the years it is compared with, and every comparison is made to the reporting frontier over whole months only.

USASpending submission calendar

vintage 2026-09-19 · 109 rows

Every agency submission window with the date its data was revealed to the public record. It is the only thing here that says what is AVAILABLE, as against what this warehouse happens to hold, and it is what makes the currency of every account figure on this site measurable rather than assumed.

Source system
USASpending API, /api/v2/references/submission_periods/
Grain
fiscal year x fiscal period
Path
https://api.usaspending.gov/api/v2/references/submission_periods/
Refresh
monthly, with each submission window

Limitations. Fetched over the network and therefore the one extract here that can fail without the load failing: where it cannot be reached nothing is written, the previous calendar stays with its own fetch date, and the page reports on that date rather than implying it is current. It describes the government-wide calendar, not any one agency's compliance with it -- a period being revealed does not guarantee that the Department submitted into it.

Raw data samples

vintage 2026-09-19 · 240 rows

The files the extract reads, before anything is done to them. For every source a figure on this site comes from -- File A, File B, the three File C award-financial files, the FPDS contract transactions, the assistance transactions, each President's Budget exhibit workbook, and the submission calendar -- the first five records with every column the file carries, in file order and under the file's own names. Parquet samples come from the newest fiscal-year partition (or, for award files, the newest vintage and fiscal year); workbooks from their first sheet, with the rows printed above the header kept. Values are stored as the text the file holds.

Source system
USASpending account and award downloads (parquet warehouse); OUSD(C) President's Budget -1 exhibit workbooks; USASpending API
Grain
One row per source file (dm_raw_source) and one row per sample record (dm_raw_row): the first five records of each file, every column
Path
data/usaspending/warehouse/**; knowledge-bank/DOD-FM-Knowledge-Bank/11-Budget-Justification/_Archive/FY*/_Year-Level/*.xlsx; api.usaspending.gov/api/v2/references/submission_periods/
Refresh
With every extract (scripts/etl_analytics.py --step raw, included in --step all)

Limitations. A sample, not the file: five records show what the columns are and what the values look like, not what the file totals. The first records of a file are whatever order the file is stored in, not a representative draw. The warehouse is parquet converted from the USASpending CSV downloads with column names unchanged; the contract and assistance warehouse keeps a subset of the download's columns (64 and 30), so a column USASpending publishes and the warehouse did not keep does not appear. Workbook cells are shown as stored, so an amount the exhibit prints in thousands is shown as the thousands figure. Only the first sheet of each workbook is sampled; C-1, which the extract reads sheet by sheet, lists its other sheets by name.

Fund distribution and execution timeline

vintage 2026-08-06 · 5,738 rows

Three populations kept apart. Dated: every contract action by fiscal month and by FUNDING sub-agency -- the fund holder, and the only place WHS, MDA and SOCOM are named in any source here; about a third of Department obligations. Annual: File A at account grain by programme year and colour of money, the whole population and no within-year timing at all. Modelled: the annual totals spread across the months using the dated layer's shape, marked as modelled on every row and never summed into an observed total. Beside all three, the appropriation calendar -- every continuing resolution, lapse and full-year enactment for FY2021-FY2026, each cited to its public law.

Source system
USASpending contract file (FPDS) + File A + File B, with a curated appropriation calendar
Grain
Fiscal month x fund holder; fiscal year x programme year x appropriation x agency
Path
contracts/, accounts/file_a, accounts/file_b, database/seed_approp_calendar.json
Refresh
With the warehouse; the calendar is curated and changes when a law is enacted

Limitations. A contract action names exactly one Treasury account on 8.5% to 23.0% of its dollars depending on the year, so the dated cut by colour of money and programme year is a SAMPLE whose size moves with the year: it carries shape, never level, and is never a denominator. File A and File B hold one submission per fiscal year and contain no within-year series at all. The model is withheld for a year in progress, because File B's figure is then period-to-date and the contract shape stops at the reporting frontier.

Funds-distribution chain and execution lag

vintage 2026-08-06 · 6,574 rows

For the year's OWN appropriation: when authority arrived and at what rate, when execution actually started and on what type of spending, how long each observable link took, and what a continuing resolution costs in execution days measured from this Department's own six years. Four bases, never mixed: File A and File B measured and complete but carrying no within-year timing; the appropriation calendar measured and dated; the execution ramp measured but censored, an upper bound taken from the fraction of contract dollars that name their Treasury account; and the interior of the distribution chain assumed, because apportionment, allocation, allotment and sub-allotment appear in no published file.

Source system
File A + File B + FPDS action dates + the curated appropriation calendar
Grain
Fiscal year x component x colour of money x object class major group
Path
accounts/file_a, accounts/file_b, contracts/, database/seed_approp_calendar.json
Refresh
With the warehouse; the calendar changes when a law is enacted

Limitations. Apportionment, allocation, allotment and sub-allotment are published nowhere here, so only the endpoints of the chain are observed and the interior is an assumption with its authority printed beside it. The ramp is censored: only 1-6% of current-year dollars name their Treasury account, the attribution is award-level rather than action-level, and an earlier obligation that named no account is invisible. File A and File B hold one submission per fiscal year and contain no within-year series at all.

Legislative gates on obligation

not loaded

Conditions in appropriations law and the accompanying joint explanatory statements that gate obligation. Two kinds, kept apart: a BAR prevents obligation until the condition is met; a reporting direction burdens the Department without, on its own words, withholding the money. Each row says whether its requirement is the published text or a description of it, and the scope is measured from File A wherever a Treasury account carries the gate.

Source system
Department of Defense Appropriations Acts and their joint explanatory statements; 31 U.S.C.; OMB Circular A-11; DoD FMR
Grain
One condition standing between an appropriation and an obligation
Path
database/seed_legislative_gates.json
Refresh
Annually, when a new act and statement are enacted

Limitations. Curated by reading the acts and statements, not extracted mechanically, so it is a selection rather than a complete inventory of every congressional direction. Reprogramming thresholds by appropriation type are not published in a source this site could reach and are therefore not stated. Where a gate sits inside a component's accounts rather than in one of its own, File A cannot isolate its scope and none is given.

Research paper: findings, recommendations and resolved evidence

vintage 2026-09-19 · 63 rows

The argument published at /research. The prose is written once, by hand, and contains NO NUMBERS: every figure in it is a named placeholder resolved at extract time from the same staged extracts that feed the rest of the site. A finding carries the claim, what follows from it, and the observation that would falsify it. A recommendation names exactly one finding, and the load refuses to publish a recommendation whose finding does not exist or a sentence whose placeholder did not resolve.

Source system
This site's own extracts, argued over in database/seed_research.json
Grain
One finding, one recommendation, or one resolved figure
Path
database/seed_research.json + every staged extract of the same load
Refresh
Every load

Limitations. The figures move with the data even though the sentences do not: the prose is fixed and every number in it is resolved afresh at each load. The findings are this site's readings of its own published measurements, not the Department's, and they inherit every limitation of the sources beneath them. Recommendations are judgements rather than measurements and are labelled as such. The cost and horizon attached to each are estimates from the outside; nobody here has priced them from inside the Department.

How a figure gets here

Four stages, each of which can fail loudly. Nothing is hand-edited at any point; a wrong number is fixed by fixing the extract and re-running.

  1. 01

    Extract

    scripts/etl_analytics.py reads the parquet warehouse and the knowledge bank directly and writes a staged payload stamped with its vintage and extraction time.

  2. 02

    Load

    scripts/load_analytics.js opens a dm_load row, inserts the measures against it, and marks the prior load superseded — all inside one transaction.

  3. 03

    Control

    The control suite runs against the loaded data before the transaction commits. A critical failure rolls the whole load back and the previous vintage stays published.

  4. 04

    Serve

    Pages read only through the data layer, which joins every measure to its load row. A figure without provenance cannot be returned by construction.

Knowledge bank inventory

Document counts by collection. These are counts of files that exist, and are labelled as such — a document is not a finding, and a folder is not an assessment.

CollectionFolderDocumentsAuthority tier
Primary regulation (FMR, OMB Circulars, Treasury USSGL)01-Regulations42primary
Enacted statute, appropriations acts, NDAAs09-Statute-and-Enactment160primary
Committee reports, JES, hearings, prints10-Congressional-Direction2,496primary
FY2027 J-book justification exhibits11-Budget-Justification4,938primary
GAO reports, appropriations law, IG audits12-Oversight168primary
GFEBS/SAP, DAI/Oracle platform reference06-Financial-Systems10secondary
AFRs and GAO audit standards07-Financial-Statements-and-Audit-Reports3primary
DoD and service FM guidance02-DoD-Guidance23secondary
CRS primers08-CRS-Congressional-Research-Service206secondary

Authority tier drives ranking in regulatory search: statute and enacted appropriations outrank regulation, which outranks secondary summaries.

Naming

Why this site says Department of War in framing and DoD in data fields.

The FY2025 Agency Financial Report presents the Department under the Department of War designation per Executive Order 14347, and the position this work is aimed at uses that name. The underlying data does not: USASpending, FPDS, and the Treasury account structure all carry DoD nomenclature and agency code 097. Framing therefore uses Department of War; anything that names an actual field, code, or source system keeps the name that source uses. Mixing the two silently would be the error — stating the convention is the fix.