Technical writing

Treasury Daily Treasury Statement: The Federal Cash Flow Data Published Every Business Day

· AI Analytics
TreasuryFederal BudgetPublic DebtFederal Data

Every business day at 4 PM Eastern time, the Bureau of the Fiscal Service publishes a PDF and CSV file showing every dollar that flowed through the federal government's checking account the prior day. The Daily Treasury Statement is the most granular public window into US government cash management—visible to anyone willing to download a CSV from fiscal.treasury.gov.

What the Daily Treasury Statement is

The Daily Treasury Statement (DTS) is a standardized report produced by the Bureau of the Fiscal Service, a bureau of the US Department of the Treasury. It covers the prior business day's transactions and is released at 4 PM ET on each subsequent business day. When markets are closed on federal holidays, the DTS covering the last prior business day is published on the next business day.

The DTS has been published in machine-readable CSV format since 2005 at fiscal.treasury.gov/reports-statements/dts/. Historical PDF files extend back further. Each daily file contains seven numbered tables covering different dimensions of federal cash activity:

  • Table 1: Operating Cash Balance—the opening and closing balance of the Treasury General Account, plus balances of the Federal Reserve accounts and Tax and Loan Note accounts. This is the headline number most analysts track.
  • Table 2: Deposits and Withdrawals of Operating Cash—all cash receipts deposited into and payments drawn from the Treasury General Account, organized by major program category.
  • Table 3: Public Debt Transactions—new debt issued (bills, notes, bonds, TIPS, FRNs, CMBs) and debt redeemed, with face values and daily totals.
  • Table 4: Adjustment of Public Debt Transactions to Cash Basis—reconciles the accrual-basis debt issuance figures to the actual cash proceeds, accounting for premiums, discounts, and accrued interest paid to purchasers of TIPS and other instruments.
  • Table 5: Interagency Tax Transfers—cash moved between Treasury accounts and agency-held special funds, including the Highway Trust Fund and Social Security Trust Funds.
  • Table 6: Income Tax Refunds Issued—individual and business tax refunds disbursed on that day, broken out by IRS electronic payments and paper checks.
  • Table 7: Debt Subject to Limit—current outstanding public debt compared to the statutory debt ceiling, with a running total of debt subject to limit and the remaining headroom (or the amount of extraordinary measures in use when the ceiling has been reached).

The Treasury General Account

The Treasury General Account (TGA) is the federal government's primary operating account—essentially a checking account held at the Federal Reserve Bank of New York. All federal tax receipts flow into it; all federal payments are drawn from it. When the Internal Revenue Service processes a corporate income tax payment, the funds arrive in the TGA. When the Social Security Administration disburses monthly benefits, the outflows are funded by TGA withdrawals.

The TGA balance is highly volatile on a daily basis. It fluctuates from near zero to over a trillion dollars depending on tax seasonality, debt issuance activity, and payment schedules. During normal operations, Treasury attempts to maintain a comfortable buffer—historically in the range of $150 billion to $500 billion—to absorb the mismatch between lumpy receipt inflows (especially around quarterly tax payment dates) and the more continuous outflow of benefits and agency payments.

The most extreme TGA movements correspond to debt ceiling events and extraordinary fiscal actions. In 2021, Treasury Secretary Janet Yellen drew down the TGA from approximately $1.8 trillion to near zero as part of preparations for the debt ceiling suspension lapse in July of that year—a deliberate pre-positioning to preserve maximum borrowing capacity once the ceiling was reinstated. During the 2023 debt ceiling crisis, the TGA fell below $50 billion on multiple occasions as the Treasury exhausted its ordinary cash management tools. Analysts monitoring the TGA balance via the DTS during that period had a real-time indicator of how close the United States was to a payment default. The Federal Reserve's FRED database publishes the weekly TGA balance as series WDTGAL (Treasury General Account at Federal Reserve Banks, Wednesday Level).

When Treasury issues new bills, notes, or bonds, the proceeds flow into the TGA, raising the balance. When those instruments are rolled at maturity, the redemption outflow and new issuance inflow partly offset each other, but the net cash position depends on whether the government is borrowing more or less than it is repaying on any given day. This is why the DTS Table 3 public debt transactions are integral to understanding TGA balance movements that would otherwise appear disconnected from operating receipts and outlays.

Receipts by source

DTS Table 2 breaks down receipts by major tax and non-tax categories, giving a daily snapshot of federal revenue generation. The principal receipt categories are:

  • Individual income taxes—withheld: payroll withholding processed through the Federal Reserve's ACH system. The largest and most consistent daily inflow; visible as a pattern of Monday peaks (covering three days of payroll) and lower midweek values.
  • Individual income taxes—non-withheld: quarterly estimated payments from self-employed individuals and annual balance-due payments. Enormous spikes occur around April 15, June 15, September 15, and January 15—the four estimated tax payment deadlines. The April 15 spike is the largest annual receipt event in the US fiscal calendar.
  • Corporate income taxes: quarterly payments due in April, June, September, and December. September is typically the largest corporate receipt month because it covers the fiscal year-end of most large corporations.
  • Federal Insurance Contributions Act (FICA) taxes: Social Security (6.2% employee, 6.2% employer up to the wage base) and Medicare (1.45% each side, plus the 0.9% additional Medicare tax on high earners). FICA flows alongside withheld income taxes and is deposited simultaneously by employers.
  • Excise taxes: fuel taxes, tobacco, alcohol, telephone, and aviation ticket taxes. Much smaller in aggregate than income and FICA taxes.
  • Estate and gift taxes: highly lumpy, driven by large individual estates. Some months show near-zero estate tax receipts; others spike substantially.
  • Customs duties: collected by Customs and Border Protection and transferred to Treasury. These receipts have grown substantially since 2018 due to tariff increases on imports from China and other trading partners. Tariff volatility is directly readable in the daily customs duty line of the DTS.
  • Miscellaneous receipts: Federal Reserve earnings remitted to Treasury, fees, fines, and other non-tax receipts. Federal Reserve remittances have fluctuated dramatically as the Fed's balance sheet expanded and then contracted; in FY2023 and FY2024 the Fed paid zero remittances as interest expenses on reserves exceeded interest income on assets.

In fiscal year 2024, total federal receipts were approximately $4.9 trillion. The refund season from January through April represents the largest sustained outflow period for individual income tax refunds—offsetting gross receipt inflows and making January through April a complex mix of high gross receipts and high outbound refunds appearing simultaneously in the DTS.

Outlays by category

DTS Table 2 also shows withdrawals (outlays) by major spending category. The largest outflow line items on most business days are:

  • Social Security benefits (HHS): the largest single outflow category, averaging roughly $100 billion per month in FY2024. Payments are concentrated on specific days of the month tied to beneficiaries' birth dates (second, third, and fourth Wednesdays for different cohorts). The DTS shows these concentrated payment days clearly as multi-billion-dollar single-day spikes.
  • Medicare: hospital insurance (Part A) and supplementary medical insurance (Part B and D) payments to providers, managed care plans, and prescription drug plans.
  • Medicaid: federal matching payments to states. Monthly patterns are smoother than Social Security because federal Medicaid transfers to states follow state-determined drawdown schedules.
  • Defense—Military Programs: payroll for active duty and civilian Department of Defense personnel, plus payments to defense contractors. Defense payments are substantial on military paydays (typically the 1st and 15th of each month) and on contract payment processing days.
  • Interest on Treasury debt: coupon payments on notes, bonds, and TIPS, plus discount accretion on bills. Interest outlays have grown rapidly as Treasury refinanced low-rate pandemic-era debt into higher-rate instruments. Net interest paid in FY2023 was approximately $659 billion; in FY2024 it rose to approximately $882 billion, approaching $1 trillion annually. FRED series FYOINT tracks annual federal government interest payments. At FY2024 rates, interest on the public debt exceeded defense spending for the first time in modern US fiscal history.

The Monthly Treasury Statement (MTS), a cleaner monthly summary published by the Fiscal Service, provides easier-to-analyze monthly totals. The MTS is the primary source for the commonly-cited deficit figures. Total FY2024 outlays were approximately $6.7 trillion against receipts of $4.9 trillion, producing a deficit of roughly $1.8 trillion.

Debt subject to the statutory limit

DTS Table 7 provides a daily running total of debt outstanding compared to the statutory debt ceiling. It distinguishes between debt subject to limit (which includes most publicly held and intragovernmental debt) and debt not subject to limit (a small category of legacy instruments).

When Congress sets or suspends the debt ceiling, Table 7 records the transition. When debt reaches the ceiling and Treasury must deploy extraordinary measures, the table reveals the accounting maneuvers in progress—specifically, the suspension of investments into the Civil Service Retirement and Disability Fund, the Postal Service Retiree Health Benefits Fund, and other federal employee benefit funds. These suspensions reduce debt subject to limit by not issuing new intragovernmental securities to those funds, freeing headroom under the ceiling without technically increasing total borrowing.

During the 2023 debt ceiling crisis, the Bipartisan Policy Center and Congressional Budget Office published “X-date” estimates—the projected date on which extraordinary measures would be exhausted and Treasury would be unable to meet all obligations. Analysts tracking Table 7 and Table 1 of the DTS simultaneously had the most current available data on the approaching X-date. Total outstanding public debt reached approximately $35 trillion in FY2024, with debt held by the public (excluding intragovernmental holdings) around $28 trillion.

Fiscal year seasonality

The federal fiscal year runs from October 1 through September 30. Understanding the within-year pattern is essential for interpreting any single month's DTS data in context:

  • October: the first month of a new fiscal year typically runs a large deficit. No quarterly corporate tax payments are due; FICA and withheld income taxes provide baseline receipts but are insufficient to cover ongoing outlays. October deficits commonly exceed $100 billion.
  • January: the Social Security cost-of-living adjustment (COLA) takes effect, increasing monthly benefit outlays. In years with high prior-year inflation (such as FY2022–2023), the COLA-driven January outlay increase is substantial and permanently ratchets up the monthly spending baseline.
  • March through May: individual tax season. Large non-withheld payments arrive around April 15, temporarily producing monthly surpluses or narrowing deficits sharply. This is the only sustained surplus period in most fiscal years.
  • June and September: corporate quarterly estimated payments provide secondary receipt bumps. September is often the highest corporate receipt month.
  • December: year-end corporate tax payments plus a full month of Social Security and Medicare outlays. Refund season has not yet begun.

The cumulative fiscal year deficit builds rapidly in the first quarter (October–December), stabilizes or narrows somewhat during tax season, then resumes widening through the summer months. By September 30, the final deficit figure reflects the full year's imbalance between receipts and outlays.

Accessing the data

The Bureau of the Fiscal Service provides multiple access paths for DTS data:

  • Direct file downloads: individual daily CSV files available atfiscal.treasury.gov/reports-statements/dts/. File names follow the pattern DTS_YYYYMMDD.csv. Each file contains all seven tables for that business day. Python's requests library orpandas.read_csv() can fetch these directly from the stable URL pattern.
  • Fiscal Data API: the Treasury's structured JSON API at fiscaldata.treasury.gov/api/v1/ provides queryable access to historical DTS and MTS data with filtering, sorting, and pagination. Relevant endpoints include/accounting/mts/mts_table_4 (receipts),/accounting/mts/mts_table_5 (outlays), and/accounting/dts/dts_table_1 (TGA balance history). No API key is required.
  • FRED series: the Federal Reserve Bank of St. Louis's FRED database aggregates key DTS-derived series at convenient frequencies. WDTGAL gives the weekly TGA balance; MTSDS023A provides the monthly total surplus or deficit from the Monthly Treasury Statement; FYOINT tracks annual interest outlays.

The Fiscal Data API is the cleanest programmatic interface for historical analysis. It returns consistent JSON with typed fields, handles pagination transparently, and provides field-level filtering that avoids downloading full daily files to extract a single series. Rate limits are generous for research-scale queries.

Python example: monthly deficit analysis via the Fiscal Data API

The following script queries the Fiscal Data API for the last 24 months of Monthly Treasury Statement data, computes net receipts minus outlays by month, and annotates output with April tax season and January COLA months. No API key is required.

import requests
import pandas as pd
from datetime import date, timedelta

# Fiscal Data API endpoint for Monthly Treasury Statement Table 5
# Table 5: Outlays of the U.S. Government by major category
BASE_URL = "https://fiscaldata.treasury.gov/api/v1/accounting/mts/mts_table_5"

def get_mts_table5(months_back=24):
    """Fetch last N months of MTS Table 5 data from the Fiscal Data API."""
    today = date.today()
    start = today - timedelta(days=months_back * 31)
    start_str = start.strftime("%Y-%m-%d")

    params = {
        "fields": "record_date,classification_desc,current_month_gross_outly_amt,current_fytd_gross_outly_amt",
        "filter": "record_date:gte:" + start_str,
        "sort": "-record_date",
        "page[size]": "10000",
    }
    r = requests.get(BASE_URL, params=params, timeout=60)
    r.raise_for_status()
    data = r.json()
    return pd.DataFrame(data["data"])

def get_receipts(months_back=24):
    """Fetch MTS Table 4 (receipts) for comparison."""
    receipts_url = "https://fiscaldata.treasury.gov/api/v1/accounting/mts/mts_table_4"
    today = date.today()
    start = today - timedelta(days=months_back * 31)
    start_str = start.strftime("%Y-%m-%d")

    params = {
        "fields": "record_date,classification_desc,current_month_gross_rcpt_amt,current_fytd_gross_rcpt_amt",
        "filter": "record_date:gte:" + start_str,
        "sort": "-record_date",
        "page[size]": "10000",
    }
    r = requests.get(receipts_url, params=params, timeout=60)
    r.raise_for_status()
    data = r.json()
    return pd.DataFrame(data["data"])

def compute_monthly_balance(df_outlays, df_receipts):
    """Compute net surplus/deficit per month from receipts and outlays."""
    # Pivot outlays: total row only
    outlay_totals = (
        df_outlays[df_outlays["classification_desc"].str.contains("Total", case=False, na=False)]
        .copy()
    )
    outlay_totals["record_date"] = pd.to_datetime(outlay_totals["record_date"])
    outlay_totals["amount"] = pd.to_numeric(
        outlay_totals["current_month_gross_outly_amt"], errors="coerce"
    )
    monthly_outlays = (
        outlay_totals.groupby("record_date")["amount"].sum().rename("outlays_millions")
    )

    # Receipts totals
    receipt_totals = (
        df_receipts[df_receipts["classification_desc"].str.contains("Total", case=False, na=False)]
        .copy()
    )
    receipt_totals["record_date"] = pd.to_datetime(receipt_totals["record_date"])
    receipt_totals["amount"] = pd.to_numeric(
        receipt_totals["current_month_gross_rcpt_amt"], errors="coerce"
    )
    monthly_receipts = (
        receipt_totals.groupby("record_date")["amount"].sum().rename("receipts_millions")
    )

    combined = pd.DataFrame({"outlays": monthly_outlays, "receipts": monthly_receipts})
    combined["net"] = combined["receipts"] - combined["outlays"]
    combined["fiscal_year"] = combined.index.map(
        lambda d: d.year if d.month >= 10 else d.year - 1
    )
    combined["fiscal_month"] = combined.index.map(
        lambda d: (d.month - 10) % 12 + 1
    )
    return combined.sort_index()

def print_fy_summary(combined):
    """Print cumulative fiscal year deficit by month, flagging tax season and COLA."""
    april_months = set()
    cola_months = set()

    for idx, row in combined.iterrows():
        label = idx.strftime("%Y-%m")
        tag = ""
        if idx.month == 4:
            tag = "  <- April tax season (large receipt spike)"
            april_months.add(label)
        elif idx.month == 1:
            tag = "  <- January Social Security COLA increase"
            cola_months.add(label)

        sign = "+" if row["net"] >= 0 else ""
        print(label + "  receipts=" + str(round(row["receipts"] / 1000, 1)) + "B"
              + "  outlays=" + str(round(row["outlays"] / 1000, 1)) + "B"
              + "  net=" + sign + str(round(row["net"] / 1000, 1)) + "B"
              + tag)

def main():
    print("Fetching MTS outlays (Table 5)...")
    df_outlays = get_mts_table5(months_back=24)
    print("Rows fetched: " + str(len(df_outlays)))

    print("Fetching MTS receipts (Table 4)...")
    df_receipts = get_receipts(months_back=24)
    print("Rows fetched: " + str(len(df_receipts)))

    combined = compute_monthly_balance(df_outlays, df_receipts)

    print()
    print("Monthly receipts, outlays, and net (billions):")
    print("-" * 80)
    print_fy_summary(combined)

    print()
    for fy, group in combined.groupby("fiscal_year"):
        total_net = group["net"].sum()
        sign = "+" if total_net >= 0 else ""
        print("FY" + str(fy) + " cumulative net: " + sign + str(round(total_net / 1000, 1)) + "B")

if __name__ == "__main__":
    main()

The script fetches MTS Table 4 (receipts by source) and Table 5 (outlays by category) separately because they reside in distinct API endpoints. The “Total” classification rows provide the aggregate monthly figures; the individual category rows allow drilling into specific programs such as Social Security, Medicare, or individual income taxes. The fiscal year mapping converts calendar months to fiscal months using the October–September convention: October becomes fiscal month 1, September becomes fiscal month 12.

For daily TGA balance analysis, replace the MTS endpoints with the DTS Table 1 endpoint atfiscaldata.treasury.gov/api/v1/accounting/dts/dts_table_1and filter on account_type:eq:Treasury General Account. The open_today_bal and close_today_balfields give the intraday change in the TGA balance for each business day.

Interpreting the data

The DTS is most valuable as a real-time monitor during fiscal stress events. During a debt ceiling standoff, Table 7 shows the extraordinary measures headroom shrinking day by day. During a government shutdown, Table 2 outlays drop sharply as agencies cease non-essential spending and contractor payments pause. During refund season, Table 6 shows the daily volume of IRS refunds flowing to taxpayers, useful for estimating the consumer spending impulse from refunds.

One important limitation: the DTS reflects cash-basis accounting. It does not capture accrued liabilities, unfunded pension obligations, or the present value of future Social Security and Medicare commitments. The GAAP-basis Financial Report of the United States Government, published annually by the Fiscal Service, presents a broader picture of the government's financial position including these accruals. The DTS and MTS cash figures are the basis for all publicly reported deficit numbers and for the debt ceiling calculations, but they systematically understate the full economic cost of current-year fiscal policy.

Interest outlays deserve particular attention for long-run fiscal analysis. The DTS shows coupon payments on specific days (Treasury pays interest on the 15th of February, May, August, and November on 10-year and 30-year notes and bonds issued at those coupon dates). As the weighted average interest rate on the public debt rises with each new issuance at current market rates, the interest line in Table 2 grows even without any increase in the deficit. Tracking the trajectory of daily interest outflows in the DTS across fiscal years provides a precise measure of the debt service escalation that summary statistics smooth over.

For analysis of other Treasury datasets, see OFAC Sanctions Lists: The Treasury Database Every Financial Institution Must Screen Against, which covers the SDN list structure, consolidated sanctions list downloads, and Python parsing of the XML bulk file.

For the spending side in greater detail, see USASpending Federal Contracts: The Complete Award Database, covering contract award data, FPDS integration, and bulk download access via the USASpending API.