Microproduct data guideintermediate

Treasury Securities Auctions Data

Announcements and results for marketable U.S. Treasury security auctions for building issuance calendars and fixed-income auction monitors.

At a glance

Difficulty
Intermediate — some data preparation helps
Size
Small · ≤0.1 GB
Formats
JSON, CSV, XML
Access
API or Download
API key
Not required
Provider
U.S. Department of the Treasury Bureau of the Fiscal Service
Updates
Occasional
Data terms
U.S. Government public data / federal copyright guidance

From source to product signal

Test a product idea in four steps

Fiscal Data publishes both announcements and results for marketable Treasury security auctions. Start with a bounded recent date window and identify result records by their populated auction metrics. Announcement records are not completed results, and auction yields or discount rates are not live secondary-market prices.

1

Check the setup

  • Python 3.10 or newer
  • A notebook environment such as Jupyter or Google Colab
  • An internet connection
2

Access the data

  1. 1.Read the dataset dictionary and distinguish announcement fields from competitive-result fields.
  2. 2.Request a bounded recent auction-date window with only the fields needed for term-level summaries.
  3. 3.Parse numeric result fields and retain record date, CUSIP, security type, and term.
Open official source
3

Run the Python example

Install the packages, then run the notebook cell.

python -m pip install pandas requests

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

cutoff = date.today() - timedelta(days=90)
response = requests.get(
    "https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v1/accounting/od/auctions_query",
    params={
        "fields": "record_date,cusip,security_type,security_term,auction_date,issue_date,high_yield,high_discnt_rate,bid_to_cover_ratio,total_accepted",
        "filter": f"auction_date:gte:{cutoff.isoformat()}",
        "sort": "-auction_date",
        "page[size]": 100,
    },
    timeout=30,
)
response.raise_for_status()
auctions = pd.DataFrame(response.json()["data"])
for column in ["high_yield", "high_discnt_rate", "bid_to_cover_ratio", "total_accepted"]:
    auctions[column] = pd.to_numeric(auctions[column], errors="coerce")
results = auctions[auctions["bid_to_cover_ratio"].notna()].copy()
results["result_rate"] = results["high_yield"].fillna(results["high_discnt_rate"])
results["retrieved_at_utc"] = pd.Timestamp.now(tz="UTC")
print(results[["auction_date", "security_type", "security_term", "result_rate", "bid_to_cover_ratio"]].head(20))
4

Test a useful signal

Summarize recent Treasury auction results

Compare recent completed auction results by security term and identify which terms had the highest bid-to-cover ratios.

  1. 01Separate completed result records from announcements using populated result metrics and retain each CUSIP.
  2. 02Group the bounded results by security term and summarize result rate and bid-to-cover ratio without mixing bill discount rates with note or bond yields.
  3. 03Explain why announcements differ from results, records can be updated, and auction rates are not live secondary-market prices.

Dataset details

U.S. Department of the Treasury Bureau of the Fiscal Service is a government source. Last verified 2026-08-11. Temporal coverage: 1979-present.

Domains

Fixed IncomePublic FinanceCapital Markets

Data types

Event DataTransaction Data

Tasks

Auction MonitoringIssuance AnalysisTrend Analysis

Geography

United States

Formats

JSONCSVXML

Provider

U.S. Department of the Treasury Bureau of the Fiscal Service

Data terms

U.S. Government public data / federal copyright guidance