Data Source

Data is sourced from MAX.gov SF 133 Reports on Budget Execution and Budgetary Resources covering fiscal years 2018-2025.

The SF 133 report contains monthly budget execution data for all federal agencies. Our system processes complete fiscal years, automatically detecting available months for each year.

Multi-Year Coverage

Understanding Federal Accounts

Excel File Structure & Processing Method

Each agency provides Excel files containing multiple sheets. We use the Raw Data sheet method for maximum compatibility across years.

Why Raw Data Sheets?

Finding the Header Row

We search for a row containing "LINENO", "BUREAU", or "OMB_ACCT" within the first 30 rows of the Raw Data sheet.

Data Extraction - Raw Data Sheet Method

All agencies are processed using the standardized Raw Data sheet format:

Standard Raw Data Column Mappings

  • BUREAU = Bureau/sub-agency name
  • OMB_ACCT = OMB account identifier
  • TAFS = Treasury Account Fund Symbol (contains account name after " - ")
  • LINENO = Line number column
  • AMT_JUL = July data (monthly amount)
  • AMT_AUG = August data (monthly amount)
  • AMT3 = June data (3rd quarter cumulative)
  • AMT4 = September data (4th quarter cumulative, fiscal year end)

Auto-Detection of Available Months

The system automatically detects which months have data for each fiscal year:

Specific Lines Extracted

Processing Steps

  1. Load Raw Data sheet and identify header row containing "LINENO", "BUREAU", "OMB_ACCT"
  2. Forward fill key columns (BUREAU, OMB_ACCT, TAFS) down the spreadsheet
  3. Convert LINENO to numeric and filter for lines 2490.0 and 2500.0
  4. Auto-detect latest available month with valid data (non-zero, non-null values)
  5. Extract values from the latest month column
  6. Merge Line 2490 and Line 2500 data on matching Agency + TAFS combinations
  7. Extract account name from TAFS (text after " - ")
  8. Convert values from dollars to millions
  9. Calculate percentage: (Unobligated Balance / Budget Authority) × 100

Data Validation Tests

The system runs specific validation tests before deploying data. Each test must pass:

test_year_data_completeness()

test_csv_summary_files()

test_data_consistency()

test_data_reasonableness()

test_cross_year_consistency()

Website Structure Tests

TAFS Parsing

The Treasury Account Fund Symbol (TAFS) contains account and year information:

Standard Agency TAFS Format

018-45-0243 /25 - Federal Direct Student Loan Program Account

Other Independent Agencies TAFS Format

95-2300 24/25 - Salaries and Expenses

Special Cases

Data Files Used by the Application

The web application reads the following data file:

all_agencies_obligation_summary.csv - Account-level budget execution data

Fields in the CSV file:

  • Agency - Federal agency name (e.g., "Department of Education")
  • Bureau - Sub-agency or bureau within the agency
  • Account - Account name extracted from TAFS (e.g., "Federal Direct Student Loan Program Account")
  • Account_Number - Treasury Account Symbol (e.g., "91-0243")
  • Period_of_Performance - Single year or multi-year designation
  • Expiration_Year - When the funds expire (e.g., "2025", "No Year")
  • TAFS - Full Treasury Account Fund Symbol string
  • Unobligated Balance (Line 2490) - Amount not yet obligated (in millions)
  • Budget Authority (Line 2500) - Total budget authority (in millions)
  • Percentage Unobligated - Calculated percentage (Unobligated/Budget Authority × 100)

Code and Issues

View code and report issues: github.com/abigailhaddad/apportionment