The latest visible point is 2025 at 81. Across the visible range, the series changed by -99.19%.
Spending Trends
Federal Contract Market Concentration Trends
Federal Contract Market Concentration Trends shows how federal contract spending changes across the visible time series in FPDS-derived procurement data.
Analysis
The latest visible point is 2025 at 81. Across the visible range, the series changed by -99.19%.
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
Federal Contract Market Concentration Trends tracks federal contract spending over time in FPDS-derived data.
Key takeaway: The latest visible point is 2025 at 81. Overall visible change is -99.19%.
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
-- Federal Contract Market Concentration Trends
-- Measures annual market concentration using HHI based on contractor share of obligated dollars
SELECT
fiscal_year,
round(sum(spend_share * spend_share) * 10000, 2) AS hhi,
count() AS vendor_count,
round(max(spend_share) * 100, 2) AS top_vendor_share_pct,
round(sumIf(spend_share, vendor_rank <= 4) * 100, 2) AS top_4_share_pct,
round(sumIf(spend_share, vendor_rank <= 10) * 100, 2) AS top_10_share_pct
FROM
(
SELECT
fiscal_year,
vendor_name,
vendor_spending,
vendor_spending / sum(vendor_spending) OVER (PARTITION BY fiscal_year) AS spend_share,
row_number() OVER (
PARTITION BY fiscal_year
ORDER BY vendor_spending DESC, vendor_name ASC
) AS vendor_rank
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__vendor__vendorHeader__vendorName AS vendor_name,
sum(content__award__dollarValues__obligatedAmount) AS vendor_spending
FROM fpds.data
WHERE
contract_type = 1
AND content__award__relevantContractDates__signedDate != ''
AND content__award__vendor__vendorHeader__vendorName IS NOT NULL
AND content__award__vendor__vendorHeader__vendorName != ''
GROUP BY
fiscal_year,
vendor_name
)
)
WHERE fiscal_year < toYear(today())
GROUP BY fiscal_year
ORDER BY fiscal_year ASC
Trend Table
This table shows the structured time series returned by the query.
| Fiscal Year | Hhi | Vendor Count | Top Vendor Share Pct | Top 4 Share Pct | Top 10 Share Pct |
|---|---|---|---|---|---|
| 1962 | 10,000.00 | 1 | 100 | 100 | 100 |
| 1965 | 10,000.00 | 1 | 100 | 100 | 100 |
| 1967 | 6,525.00 | 2 | 78 | 99 | 99 |
| 1970 | 10,000.00 | 1 | 100 | 100 | 100 |
| 1972 | 10,000.00 | 1 | 100 | 100 | 100 |
| 1974 | 9,041.00 | 2 | 95 | 99 | 99 |
| 1976 | 5,892.00 | 30 | 74 | 98 | 98 |
| 1977 | 6,305.00 | 6 | 78 | 97 | 97 |
| 1978 | 3,814.00 | 21 | 54 | 93 | 96 |
| 1979 | 236.00 | 19256 | 10 | 27 | 41 |
| 1980 | 82.00 | 21065 | 4 | 14 | 25 |
| 1981 | 83.00 | 22841 | 4 | 15 | 25 |
| 1982 | 86.00 | 22704 | 6 | 14 | 22 |
| 1983 | 85.00 | 14370 | 5 | 14 | 25 |
| 1984 | 75.00 | 19017 | 5 | 14 | 22 |
| 1985 | 294.00 | 10302 | 13 | 29 | 37 |
| 1986 | 91.00 | 14691 | 7 | 15 | 23 |
| 1987 | 64.00 | 55641 | 4 | 12 | 22 |
| 1988 | 321.00 | 13853 | 11 | 34 | 39 |
| 1989 | 27.00 | 71845 | 3 | 8 | 14 |
| 1990 | 16.00 | 83930 | 2 | 6 | 12 |
| 1991 | 31.00 | 88370 | 3 | 9 | 16 |
| 1992 | 23.00 | 96638 | 2 | 7 | 13 |
| 1993 | 21.00 | 88577 | 3 | 7 | 13 |
| 1994 | 58.00 | 87489 | 6 | 13 | 18 |
| 1995 | 18.00 | 84550 | 2 | 7 | 12 |
| 1996 | 58.00 | 87412 | 6 | 13 | 14 |
| 1997 | 35.00 | 80626 | 5 | 10 | 11 |
| 1998 | 46.00 | 61845 | 6 | 10 | 14 |
| 1999 | 44.00 | 64263 | 6 | 10 | 12 |
| 2000 | 43.00 | 68834 | 6 | 10 | 11 |
| 2001 | 49.00 | 73804 | 6 | 11 | 15 |
| 2002 | 32.00 | 88194 | 5 | 9 | 10 |
| 2003 | 49.00 | 132819 | 6 | 11 | 15 |
| 2004 | 36.00 | 170048 | 5 | 10 | 12 |
| 2005 | 21.00 | 222320 | 4 | 7 | 9 |
| 2006 | 30.00 | 228192 | 5 | 8 | 10 |
| 2007 | 29.00 | 214948 | 5 | 8 | 9 |
| 2008 | 26.00 | 246337 | 4 | 8 | 12 |
| 2009 | 28.00 | 211828 | 4 | 8 | 10 |
| 2010 | 23.00 | 205895 | 4 | 8 | 9 |
| 2011 | 32.00 | 196347 | 5 | 9 | 10 |
| 2012 | 37.00 | 175357 | 5 | 10 | 13 |
| 2013 | 59.00 | 155762 | 7 | 11 | 15 |
| 2014 | 38.00 | 148796 | 5 | 10 | 14 |
| 2015 | 48.00 | 145928 | 6 | 11 | 14 |
| 2016 | 69.00 | 143424 | 7 | 14 | 17 |
| 2017 | 77.00 | 149602 | 8 | 13 | 17 |
| 2018 | 59.00 | 129755 | 6 | 13 | 17 |
| 2019 | 66.00 | 118931 | 7 | 13 | 18 |
| 2020 | 114.00 | 115517 | 10 | 15 | 20 |
| 2021 | 45.00 | 109394 | 5 | 11 | 17 |
| 2022 | 54.00 | 106225 | 6 | 12 | 18 |
| 2023 | 83.00 | 111459 | 8 | 14 | 20 |
| 2024 | 43.00 | 111561 | 5 | 11 | 17 |
| 2025 | 81.00 | 104272 | 8 | 14 | 19 |
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.
- hhi — Defines the main value plotted and analyzed over time.
- vendor_count — Provides additional numeric context that can support interpretation.
- top_vendor_share_pct — Provides additional numeric context that can support interpretation.
- top_4_share_pct — Provides additional numeric context that can support interpretation.
- top_10_share_pct — 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 Extremes
Related Pages
8(a) Contract Spending Trends
California Federal Contract Spending Trends
Competed vs Sole Source Spending Trends
Cost-Reimbursement Contract Spending Trends
Department of Agriculture Contract Spending Trends
Department of Defense Contract Spending Trends
Department of Education Contract Spending Trends
Department of Energy Contract Spending Trends
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.