SF-133 line numbers to USAspending File A columns: the eleven identities
Checked 2026-09-08 · Federal budget and spending
USAspending's Account Balances (File A) columns are SF-133 lines. Eleven of them map exactly: five one-to-one, five as sums of two to four lines, one negated. Verified row by row over 52 joined treasury accounts, 572 column comparisons, zero mismatches at a tolerance of one cent. No published crosswalk says which line belongs to which column — I looked for one and did not find it — and the join you would need to work it out yourself takes four fields normalised first: get one of them wrong and rows drop out silently instead of erroring. The eleven identities are in the table and the normalisation is in the method.
What we saw
Every one of the eleven mappings holds on every joined row. Source (row-level join on agency, period of availability, availability type, main account, 2026-09-08).
File A rows 59 | matched 52 | unmatched 7 | column checks 572 | mismatches: none
The seven File A rows with no SF-133 counterpart are all-zero rows; no SF-133 account is missing from File A. Source (unmatched keys, both directions, 2026-09-08).
unmatched File A rows, all-zero?: [('049-2026/2027-0551-000', True), ('049-2026/2027-0180-000', True), ('049-2025/2026-0180-000', True), ('049-2024/2025-0180-000', True), ('049-2022/2023-0551-000', True), ('049-2022/2023-0300-000', True), ('049-2020/2021-0551-000', True)]
MAX TAFS not in File A: 0Award data is not a substitute for obligations: it is about a tenth low, because not every obligation is an award. Source (total_aggregated_amount, against agency_total_obligated for FY2025, 2026-09-08).
total_aggregated_amount 8888442863.7
[('contracts', 711037984.7), ('direct_payments', 0.0), ('grants', 8177404879.0), ('idvs', 0.0), ('loans', 0.0), ('other', 0)]
vs GTAS 2190 FY2025 9885079238.42 -> 10.08% lowerLimits
- One agency, one period. These are measured identities for NSF FY2026 P10, not a quote from a published crosswalk. I looked for an official File A to SF-133 crosswalk and did not find one.
- 52 of 59 File A rows joined. The other 7 are all-zero, so they contribute nothing to any total, but they were not checked against anything.
- File A starts at FY2017. The MAX SF-133 goes back to FY1998, so for older years there is nothing to reconcile against.
- File A gives eleven summary amounts per account. It has no line 1120, no 2403, no 4xxx or 5xxx section, and no Category B project detail. For those the workbook is the only source.
Open question
Whether the two multi-line sums in the table are the general rule or an artefact of which lines NSF happens to use. An agency that reports 1011 or 1220 would settle it.