Spending Trends

NAICS Sector 23 Federal Spending Trends

NAICS Sector 23 Federal Spending Trends shows how federal contract spending changes across the visible time series in FPDS-derived procurement data.

The latest visible point is 2025 at 51.11.

Federal Contract Spending Spending Trends Spending Series Series

Updated 03/20/2026

Latest Period
2025
51.11
Visible Change
51.11
Peak Period
2008
57.09
Trend Direction
Up
Unknown

Analysis

The latest visible point is 2025 at 51.11.

Why it matters: Use this page to evaluate how federal contract spending levels shift over time and identify inflection points.

Methodology: The query returns a structured time series, detects a period column and a primary numeric metric, and computes visible-series statistics such as latest value, peak, low, and overall change.

Commentary

NAICS Sector 23 Federal Spending Trends tracks federal contract spending over time in FPDS-derived data.

Key takeaway: The latest visible point is 2025 at 51.11.

Analyst note: This page is best used for directional review, turning points, and quick comparison against related time windows or scopes.

Trend Chart

This chart plots Federal Contract Spending over the visible time series returned by the query.

Query Used

-- NAICS Sector 23 Federal Spending Trends (Construction)
SELECT
    fiscal_year,
    round(sum(obligated_amount) / 1000000000, 2) AS spending_billion_usd,
    count() AS award_count,
    round(sum(obligated_amount) / count(), 0) AS avg_award_size
FROM
(
    SELECT
        if(
            toUInt8(substring(content__award__relevantContractDates__signedDate, 6, 2)) >= 10,
            toUInt16(substring(content__award__relevantContractDates__signedDate, 1, 4)) + 1,
            toUInt16(substring(content__award__relevantContractDates__signedDate, 1, 4))
        ) AS fiscal_year,
        content__award__dollarValues__obligatedAmount AS obligated_amount,
        content__award__productOrServiceInformation__principalNAICSCode AS naics_code
    FROM fpds.data
    WHERE
        contract_type = 1
        AND content__award__relevantContractDates__signedDate != ''
        AND content__award__productOrServiceInformation__principalNAICSCode IS NOT NULL
)
WHERE
    fiscal_year < toYear(today())
    AND startsWith(naics_code, '23')
GROUP BY fiscal_year
ORDER BY fiscal_year ASC

Trend Table

This table shows the structured time series returned by the query.

Fiscal Year Spending Billion Usd Award Count Avg Award Size
1986 0.00 1 344123
1987 0.00 4 1249244
1989 0.00 1 0
1990 0.00 1 0
1991 0.00 10 55400
1992 0.00 12 718250
1993 0.02 24 1055430
1994 0.03 36 1038917
1995 0.02 99 284169
1996 0.03 85 375461
1997 0.07 120 603950
1998 0.01 171 76268
1999 0.63 400 1579056
2000 0.32 1918 171111
2001 16.61 77168 215336
2002 21.47 84041 255486
2003 21.84 97541 223974
2004 21.32 99898 213423
2005 21.12 87943 240180
2006 24.61 87772 280489
2007 32.13 122644 262008
2008 57.09 132534 430797
2009 39.09 151974 257256
2010 52.38 169145 309676
2011 39.01 166706 234020
2012 35.63 149887 237734
2013 27.71 126894 218425
2014 31.55 122351 257919
2015 28.74 115550 248787
2016 28.67 111692 256760
2017 31.10 109591 283786
2018 36.70 103514 354624
2019 42.40 99519 426104
2020 48.07 98575 487739
2021 39.23 97222 403522
2022 47.66 93713 508650
2023 54.38 92014 591024
2024 53.25 89274 596494
2025 51.11 83725 610470

How This Trend Is Built

Measure how a selected procurement metric changes across time.

Query structure

  • The query selects a time dimension used as the x-axis for the trend.
  • It calculates or returns a numeric metric for each visible period.
  • The result is interpreted as a chronological series for trend analysis.
  • The metric focuses on obligated dollars or a directly related spending aggregate.

Included fields

  • fiscal_year — Defines the chronological unit used for the trend series.
  • spending_billion_usd — Defines the main value plotted and analyzed over time.
  • award_count — Provides additional numeric context that can support interpretation.
  • avg_award_size — Provides additional numeric context that can support interpretation.

How to use this trend

  • trend direction analysis
  • time-series review
  • federal procurement timing analysis
  • spending trajectory review
  • budget pattern review

Computed Metrics

Series Points
39
First Visible Point
1986
Mean
23.18
Median
24.61
Max
57.09
2008
Min
0.00
1986
Volatility
19.72
19.72
Rows Returned
39

Series Extremes

Largest Increase
24.96
2007 → 2008 · 77.68%
Largest Decrease
-18
2008 → 2009 · -31.53%

Related Pages

Method Notes

  • Trend interpretation is based on the returned query result set ordered by the detected period column.
  • Change metrics compare the first visible point and the latest visible point in the series.
  • Volatility is based on the standard deviation of the visible numeric series.

Use FPDS Query for deeper trend analysis

Go beyond the published time series with custom SQL, broader filters, saved queries, and deeper procurement analysis across agencies, vendors, industries, states, contract structures, and competitive segments.

Continue from this trend page into full FPDS Query workflows with deeper filtering, custom SQL, saved queries, and broader market comparison.