Methods, in brief
How the datasets are produced. The full, step-by-step account lives in the
methodology.
1 · Ingest
Every federal prime award from USASpending.gov, plus each public
filer’s Exhibit-21 subsidiary list from its latest 10-K/20-F on SEC EDGAR.
2 · Resolve
Each oddly-named recipient is matched to the public parent that earns it,
via a deterministic-first cascade: UEI key → exact SEC issuer → exact EX-21 subsidiary → curated override.
3 · Point-in-time
The product is snapshotted daily. Because the source overwrites
itself, day-over-day deltas of the cumulative columns form a spending-flow series the source never publishes.
4 · Lag-correct
The most recent ~3 months are heavily under-reported; a
reporting_lag model grosses up incomplete months so recent totals are not misread as declines.
Precision over recall. The flagship file publishes only high-confidence,
deterministic resolutions. Fuzzy candidates are held for review, and point-in-time EX-21 matches (lower
precision) are shipped separately in attribution_historical.csv.
Conventions
| Item | Convention |
| ticker | Primary join key across all files. The resolved public-company stock symbol (SEC issuer), e.g. LMT. |
| *_usd | US dollars, unrounded. Obligations = money legally committed; outlays = money actually disbursed. |
| dates | ISO YYYY-MM-DD; months are YYYY-MM. Fiscal years run Oct 1 – Sep 30. |
| nulls | Empty string. A blank valid_to means “still in effect”; a blank source_url means the match was not EX-21-sourced. |
| UEI | SAM.gov Unique Entity Identifier, embedded in the evidence string where used. |
attribution_full.csvCore · flagship
Every material federal recipient resolved to the public company that earns it.
| Field | Type | Description |
| recipient | string | Federal recipient name exactly as written in the USASpending award data. |
| amount | usd | Cumulative prime-award obligations attributed to this recipient over the coverage window. |
| ticker | string | Resolved public-company stock ticker (the parent SEC issuer that earns the award). |
| method | enum | Resolution tier that produced the ticker - see Resolution methods. |
| confidence | int 0–100 | Confidence grade for the match. Shipped rows are high-confidence only. |
| status | enum | Publication status. Every shipped row is confirmed. |
| valid_from | date? | Start of the point-in-time window in which the parent declared this subsidiary in its EX-21. Blank for direct issuer matches. |
| valid_to | date? | End of that window. Blank = still declared / currently in effect. |
| evidence | string | Human-readable provenance: the UEI and/or the exact EX-21 line that produced the match. |
| source_url | url? | Direct SEC EDGAR link to the filing exhibit backing an EX-21 match. |
company_panel.csvMonthly panel
Per-company obligation time series - the source of the trend chart.
| Field | Type | Description |
| ticker | string | Public-company ticker. |
| company | string | Company display name. |
| year_month | YYYY-MM | Calendar month of the observation. |
| monthly_obligation_usd | usd | New prime obligations attributed to the ticker in that month. |
| ttm_obligation_usd | usd | Trailing-12-month sum of monthly obligations (smooths lumpy award timing). |
| ttm_yoy_growth | ratio | Year-over-year growth of the TTM figure. |
pit_snapshots.csvDaily · point-in-time
A dated vintage of each ticker’s cumulative totals - the un-reconstructable asset.
| Field | Type | Description |
| snapshot_date | date | Date this vintage was captured. |
| ticker | string | Public-company ticker. |
| oblig_to_date | usd | Cumulative obligations-to-date as the source reported them on snapshot_date. |
| outlay_to_date | usd | Cumulative outlays-to-date, same vintage. |
| exec_ratio | ratio | Execution ratio - outlays ÷ obligations. |
| n_awards_sampled | int | Number of awards underlying the snapshot. |
Day-over-day deltas of oblig_to_date and outlay_to_date across vintages are exactly the flow series in flow_signal.csv. Because USASpending overwrites in place, these vintages cannot be rebuilt after the fact.
flow_signal.csvDaily
New money booked per company over a recent window - the “daily changes” feed.
| Field | Type | Description |
| ticker | string | Public-company ticker. |
| company | string | Company display name. |
| from_date | date | Start of the measured flow window. |
| to_date | date | End of the measured flow window. |
| obligation_flow_usd | usd | New obligations booked in the window (delta of the cumulative figure). |
| outlay_flow_usd | usd | New outlays disbursed in the window. Often sparse - many awards report no outlay-to-date. |
attributed_feed.csvAward-level
Individual awards, each tagged with its resolved ticker and agency.
| Field | Type | Description |
| action_date | date | Award action date. |
| recipient_name | string | Recipient name as filed. |
| ticker | string | Resolved public-company ticker. |
| company | string | Company display name. |
| attribution | enum | Resolution method for this award’s recipient (see below). |
| obligation_usd | usd | Obligations on the award (cumulative on that award identifier). |
| awarding_agency | string | Federal agency that made the award. |
| award_id | string | USASpending award identifier (PIID / assistance URI). |
materiality.csvCompany-level
Federal dollars sized against each company’s reported revenue.
| Field | Type | Description |
| ticker | string | Public-company ticker. |
| federal_cumulative_<window> | usd | Cumulative federal obligations over the coverage window. The suffix names the window (e.g. 2019_2026). |
| federal_annualized | usd | Federal obligations expressed on an annualized basis. |
| revenue_latest_fy | num | Most recent fiscal-year total revenue, from SEC XBRL (company-reported units). |
| revenue_fy | int | Fiscal year of the revenue figure. |
| fed_pct_of_revenue | percent | Federal annualized as a percent of latest revenue. |
The ratio is indicative. It is most meaningful for government-dependent companies; for micro-caps and reporting-unit mismatches it can be extreme, so sanity-check against the underlying figures.
reporting_lag.csvModel
How completely each month is reported at a given age - the lag correction.
| Field | Type | Description |
| ym | YYYY-MM | Obligation month being modeled. |
| age | int | Age of the month, in months since it occurred. |
| obligations | usd | Obligations reported for that month at the given age. |
| completeness | ratio | Estimated fraction of the eventual total reported so far. |
| correction_factor | ratio | Multiplier used to gross up an incomplete recent month. |
| corrected_obligations | usd | Lag-corrected obligations (obligations × correction_factor). |
company_directory.csvReference
A condensed ticker → federal-recipient-name directory.
| Field | Type | Description |
| ticker | string | Public-company ticker. |
| company | string | Company display name. |
| federal_entity_names | string | Pipe-separated (|) list of federal recipient names that resolve to this ticker. |
attribution_historical.csvSecondary tier
Point-in-time EX-21 resolutions, held out of the flagship for precision.
| Field | Type | Description |
| recipient | string | Federal recipient name as filed. |
| amount | usd | Cumulative obligations attributed to this recipient. |
| ticker | string | Resolved public-company ticker. |
| method | enum | Always a point-in-time EX-21 match (ex21_pit). |
| confidence | int 0–100 | Confidence grade. |
| status | enum | Publication status. |
| evidence | string | Provenance, including the filing-year window that supports the match. |
| source_url | url? | SEC EDGAR link to the supporting filing. |
This tier uses the parent’s historical EX-21 filings to attribute older awards (~69–74% precision). It is provided separately so the flagship stays high-precision; use it where completeness matters more than certainty.
Resolution methods
The method / attribution field records how each recipient was resolved,
deterministic tiers first. Counts below are from the current flagship file.
| Value | Count | Meaning |
| ex21_exact | 2,024 | Exact normalized match to an EX-21 subsidiary of a public parent (e.g. ELECTRIC BOAT CORP → GD). |
| uei | 707 | Matched via a SAM.gov UEI key to a known SEC issuer or EX-21 entity - the most robust link. |
| sec_exact | 618 | Exact normalized match to an SEC issuer name (the prime itself). |
| override | 61 | Curated correction from an audited override layer (fixes stale symbols and known misattributions). |
| ex21_pit | hist. | Point-in-time EX-21 match - shipped only in attribution_historical.csv. |
| fuzzy_confirmed | review | A fuzzy candidate confirmed by review before publication. Unconfirmed fuzzy matches are never shipped. |
Disclaimer. Appropria is a research data product. It provides data and analytics
for research and informational purposes only and is not investment advice, nor a recommendation, offer, or
solicitation to buy or sell any security. Built solely on US public records (USASpending.gov and SEC EDGAR).
Figures are subject to revision as agencies update their filings. US data only.
← Back to home