Methodology & Data Sources

Data Source

PlainFedContract uses data from USAspending.gov (usaspending.gov), the official open data source of federal spending information. USAspending.gov is maintained by the U.S. Department of the Treasury as required by the Federal Funding Accountability and Transparency Act (FFATA) of 2006, as amended by the Digital Accountability and Transparency Act (DATA Act) of 2014. It is the official source for federal contract award data, covering every contract action reported by federal agencies through the Federal Procurement Data System.

USAspending.gov API Endpoints

Our data pipeline queries several USAspending.gov REST API endpoints to build a comprehensive picture of federal contract spending. The primary endpoints we use include:

  • /api/v2/search/spending_by_award/ — Retrieves individual contract award records with recipient details, award amounts, agency information, and NAICS codes. We use this endpoint with pagination to download the full set of contract awards.
  • /api/v2/recipient/ — Provides detailed recipient (contractor) profiles including UEI identifiers, recipient level classifications, and total award amounts aggregated across all agencies.
  • /api/v2/references/agency/ — Returns the list of federal agencies with budget authority and obligation totals, allowing us to build agency profile pages with accurate financial summaries.
  • /api/v2/spending_by_geography/ — Supplies state-level spending aggregates that power our geographic breakdowns, showing how contract dollars are distributed across states and territories by place of performance.
  • /api/v2/references/naics/ — Provides the NAICS industry classification hierarchy used to categorize contract spending by sector.

All API requests use standard HTTP GET/POST methods with JSON responses. USAspending.gov imposes rate limits, and our pipeline respects these by spacing requests and implementing retry logic with exponential backoff.

Data Vintage & Coverage

Our current data covers federal contract spending through fiscal year 2024 (October 2023 through September 2024). USAspending.gov receives data from federal agencies on a rolling basis through the Federal Procurement Data System - Next Generation (FPDS-NG). Agencies are required to report contract actions within three business days, though processing delays mean the published data typically lags real-world contract activity by several weeks.

  • Geographic coverage: All 50 US states, DC, and 5 territories
  • Contractors: 5,000 top recipients by total obligation amount
  • Agencies: 111 federal departments and agencies
  • Industries: 499 NAICS industry classifications
  • Time span: Fiscal years 2020 through 2025
  • Refresh cycle: We pull updated data quarterly to capture newly reported contract actions and modifications

Data Processing Pipeline

Our automated ETL (Extract, Transform, Load) pipeline transforms raw USAspending.gov API responses into the structured database that powers this portal:

  1. Extraction: Query the USAspending.gov API endpoints listed above to download aggregated contract award data by recipient, agency, NAICS code, and state. The pipeline handles pagination, rate limiting, and error recovery automatically.
  2. Name normalization: Generate URL-safe slugs for each entity while preserving official names exactly as they appear in government records. Contractor names are not merged or deduplicated — if USAspending.gov lists "LOCKHEED MARTIN CORP" and "LOCKHEED MARTIN CORPORATION" as separate recipients, they remain separate in our database.
  3. Contractor profile aggregation: Compute total obligations per contractor across all agencies and fiscal years. Each contractor profile is built by summing every contract action associated with that recipient's UEI (Unique Entity Identifier), which replaced the legacy DUNS number system in April 2022.
  4. Relationship mapping: Build agency-contractor and state-contractor relationship tables with associated dollar amounts, enabling drill-down views from any dimension.
  5. Fiscal year aggregation: Aggregate annual spending totals by fiscal year to show spending trends over time.
  6. Database optimization: Build an optimized SQLite database with indexes on all lookup columns (slugs, codes, names) and pre-computed cache tables for homepage statistics and ranking pages to ensure fast response times.
  7. Page generation: The Astro SSR application dynamically generates searchable pages for each contractor, agency, industry, and state directly from the database at request time.

No data is fabricated, interpolated, or editorially modified. All values come directly from USAspending.gov data. Aggregations (totals, rankings) are computed from the source data using straightforward summation.

Limitations of the API-Based Approach

While the USAspending.gov API provides convenient programmatic access to federal spending data, there are inherent limitations compared to working with the bulk download files that the Treasury Department also publishes:

  • Reporting lag: Data may lag behind the most current contract actions by several weeks due to agency reporting timelines and FPDS-NG processing cycles.
  • Classified contracts: Contracts classified for national security reasons (primarily in defense and intelligence) may not appear in USAspending.gov data at all, or may appear with redacted recipient information.
  • Prime contracts only: Only prime contract data is included — subcontract spending, which can represent a significant portion of total program costs, is not captured in our dataset.
  • Contracts only: Grants, loans, direct payments, insurance, and other forms of financial assistance are not included — this portal covers procurement contracts exclusively.
  • De-obligations and modifications: Contract modifications and de-obligations may cause total amounts to differ from initial award values. The totals shown reflect net obligations, not original award ceilings.
  • Top 5,000 threshold: Our database includes the top 5,000 contractors by total obligation amount. Smaller recipients below this threshold may not appear in search results.
  • API pagination limits: The USAspending.gov API returns paginated results, and very large result sets may be subject to timeout constraints that affect completeness.
  • No real-time updates: This data represents a periodic snapshot, not a live feed of federal spending activity.

Financial Disclaimer

This site does not provide financial, investment, or business advice. Contract award data reflects historical federal spending patterns and should not be used as the sole basis for business planning, investment decisions, or competitive analysis. The presence of a company in this database indicates only that it has received federal contract awards, not an endorsement of the company or its products. Consult appropriate professionals for financial and business decisions. This data is provided for informational purposes only.

Contact

Questions about our methodology or data? Contact us — we welcome feedback and corrections.