Methodology
Hangar turns the Department of War's daily contract announcements into a table of awards per company. This page explains where the numbers come from, what is and isn't counted, and what the data cannot tell you.
Source
Each business day around 5 p.m. Eastern, the Department of War publishes every contract worth $7.5 million or more at war.gov/News/Contracts, as plain paragraphs of text. War.gov blocks automated readers, and Hangar does not try to get around that. Instead it reads the copies saved by the Internet Archive, which usually appear within a day. Every award on this site links to both the official page and the archived copy it was read from.
So far: 680 daily announcements (2024-01-02 to 2026-11-06), 13,985 records.
How awards are counted
| Category | What it means | In totals? |
|---|---|---|
| Definite | A stated award amount for one company: a new contract, a modification or an order. | Yes, as "definite" |
| Potential | A ceiling, maximum, estimate, or indefinite-delivery (IDIQ) contract: what the government could order. Often far more than is ever spent. | Yes, separately, as "potential" |
| Shared pool | One amount split among several companies ("will compete for each order of the $X contract"). Each company's share is unknown. | No (4,779 records) |
| Repeat | The same paragraph announced again on a later day. | No (104) |
| Correction | Fixes an earlier announcement. | No (245) |
| Needs review | The headline company or amount may be wrong: a typo in the source, no amount stated, or a single amount over $10 billion not yet confirmed by a person. | No (246) |
Contract value is not revenue. A contract is paid out over months or years, options may never be exercised, and IDIQ ceilings are upper limits. Use these numbers to see what was won and when, not to estimate a quarter's sales.
How the text is read
A program reads each paragraph by explicit rules, never by guessing: the company is the subject of "was / is being / has been awarded"; the amount is the first figure after it, or a figure in a fixed later phrasing such as "The total value of this contract is $X". When a rule doesn't apply cleanly, the field is left empty and the record is marked needs review instead of being filled in. Every rule is tested against real paragraphs from the source. The code and full dataset are open source.
How companies are matched to stocks
Announcements name the legal entity that signed the contract, often a subsidiary ("Sikorsky Aircraft Corp.", "Electric Boat"). A list of name rules maps these to the parent's ticker, with dates where ownership changed (for example, Aerojet Rocketdyne counts as L3Harris only from July 28, 2023). Joint ventures are never assigned to a ticker, because their value is split between owners in ways the announcement doesn't state. Rules marked "(verify)" come from general knowledge and are being checked against each parent's subsidiary list in its SEC 10-K filing.
All 99 name rules
| Rule | Ticker | Status | From | To | Evidence |
|---|---|---|---|---|---|
^lockheed martin\b | LMT | public | company name | ||
^sikorsky\b | LMT | public | LMT 10-K Exhibit 21 | ||
^rtx\b | RTX | public | company name | ||
^raytheon\b | RTX | public | RTX 10-K Exhibit 21 | ||
^pratt and whitney\b | RTX | public | RTX 10-K Exhibit 21 | ||
^collins aerospace\b | RTX | public | RTX 10-K Exhibit 21 | ||
^rockwell collins\b | RTX | public | RTX 10-K Exhibit 21 | ||
^northr[ou]p grumman\b | NOC | public | company name | ||
^general dynamics\b | GD | public | company name | ||
^electric boat\b | GD | public | GD 10-K Exhibit 21 | ||
^bath iron works\b | GD | public | GD 10-K Exhibit 21 | ||
^national steel and shipbuilding\b | GD | public | GD 10-K Exhibit 21 | ||
^gulfstream aerospace\b | GD | public | GD 10-K Exhibit 21 | ||
^l3harris\b | LHX | public | company name | ||
^aerojet rocketdyne\b | LHX | public | 2023-07-28 | LHX 8-K (acquisition closed July 2023) | |
^l3 technologies\b | LHX | public | 2019-06-29 | LHX 10-K Exhibit 21 (verify) | |
^wescam\b | LHX | public | LHX 10-K Exhibit 21 (verify) | ||
^boeing\b | BA | public | company name | ||
^insitu\b | BA | public | BA 10-K Exhibit 21 | ||
^aurora flight sciences\b | BA | public | BA 10-K Exhibit 21 | ||
^huntington ingalls\b | HII | public | company name | ||
^hii\b | HII | public | company name | ||
^newport news shipbuilding\b | HII | public | HII 10-K Exhibit 21 | ||
^ingalls shipbuilding\b | HII | public | HII 10-K Exhibit 21 | ||
^general electric\b | GE | public | company name | ||
^ge aerospace\b | GE | public | company name | ||
^ge aviation\b | GE | public | company name | ||
^transdigm\b | TDG | public | company name | ||
^data device\b | TDG | public | TDG 10-K Exhibit 21 (verify) | ||
^breeze eastern\b | TDG | public | TDG 10-K Exhibit 21 (verify) | ||
^whippany actuation\b | TDG | public | TDG 10-K Exhibit 21 (verify) | ||
^arkwin\b | TDG | public | TDG 10-K Exhibit 21 (verify) | ||
^aerocontrolex\b | TDG | public | TDG 10-K Exhibit 21 (verify) | ||
^adams rite aerospace\b | TDG | public | TDG 10-K Exhibit 21 (verify) | ||
^esterline\b | TDG | public | TDG 10-K Exhibit 21 (verify) | ||
^howmet\b | HWM | public | company name | ||
^kratos\b | KTOS | public | company name | ||
^textron\b | TXT | public | company name | ||
^bell textron\b | TXT | public | company name | ||
^leidos\b | LDOS | public | company name | ||
^booz allen hamilton\b | BAH | public | company name | ||
^science applications international\b | SAIC | public | company name | ||
^caci\b | CACI | public | company name | ||
^parsons (government services|corp)\b | PSN | public | company name | ||
^kbr\b | KBR | public | company name | ||
^aerovironment\b | AVAV | public | company name | ||
^mercury (systems|mission systems)\b | MRCY | public | company name | ||
^curtiss wright\b | CW | public | company name | ||
^bwx\b | BWXT | public | company name | ||
^bwxt\b | BWXT | public | company name | ||
^oshkosh\b | OSK | public | company name | ||
^teledyne\b | TDY | public | company name | ||
^flir\b | TDY | public | 2021-05-14 | TDY 8-K (acquisition closed May 2021) | |
^heico\b | HEI | public | company name | ||
^moog\b | MOG.A | public | company name | ||
^hexcel\b | HXL | public | company name | ||
^v2x\b | VVX | public | company name | ||
^amentum\b | AMTM | public | 2024-09-27 | AMTM 8-K (merger with Jacobs CMS closed Sept 2024; verify) | |
^amentum\b | — | private | 2024-09-26 | ||
^leonardo drs\b | DRS | public | 2022-11-29 | company name | |
^rada technologies\b | DRS | public | 2022-11-29 | DRS 10-K Exhibit 21 (verify) | |
^drs (sustainment|network|naval|laurel|training|rada|systems|signal|daylight)\b | DRS | public | 2022-11-29 | DRS 10-K Exhibit 21 (verify) | |
^vertex aerospace\b | VVX | public | 2022-07-05 | VVX 10-K Exhibit 21 (verify) | |
^honeywell international\b | HON | public | company name | ||
^accenture federal services\b | ACN | public | ACN 10-K Exhibit 21 (verify) | ||
^cae (usa|inc)\b | CAE | public | company name | ||
^elbit systems of america\b | ESLT | public | company name | ||
^palantir\b | PLTR | public | company name | ||
^fluor\b | FLR | public | company name | ||
^rocket lab\b | RKLB | public | company name | ||
^viasat\b | VSAT | public | company name | ||
^ducommun\b | DCO | public | company name | ||
^woodward\b | WWD | public | company name | ||
^general atomics\b | — | private | |||
^anduril\b | — | private | |||
^(space exploration technologies|spacex)\b | — | private | |||
^sierra nevada\b | — | private | |||
^bechtel\b | — | private | |||
^johns? hopkins\b | — | private | |||
^peraton\b | — | private | |||
^am general\b | — | private | |||
^castelion\b | — | private | |||
^impulse space\b | — | private | |||
^torch technologies\b | — | private | |||
^systems planning and analys[ie]s\b | — | private | |||
^guidehouse\b | — | private | |||
^deloitte\b | — | private | |||
^ernst and young\b | — | private | |||
^world wide technology\b | — | private | |||
^charles stark draper\b | — | private | |||
^bae systems\b | — | foreign_listed | |||
^saab\b | — | foreign_listed | |||
^rolls royce\b | — | foreign_listed | |||
^thales\b | — | foreign_listed | |||
^airbus\b | — | foreign_listed | |||
^austal\b | — | foreign_listed | |||
^serco\b | — | foreign_listed | |||
^kongsberg\b | — | foreign_listed | |||
^leonardo\b | — | foreign_listed |
Backlog, revenue and materiality
A $500 million award is huge for Kratos and a rounding error for Lockheed Martin. To show that, each company page charts two figures from the company's own SEC filings, and each definite award is shown as a percentage of them.
- Source: SEC EDGAR's free XBRL company facts: the numbers companies tag in their 10-K and 10-Q filings. Every value links to the filing it came from.
- Backlog = remaining performance obligations (RPO), tag
RevenueRemainingPerformanceObligation: contracted work not yet delivered. It is usually smaller than the "backlog" in press releases, which often adds unfunded orders and options. No standard tag exists for that larger figure, and Hangar doesn't read it from 10-K text. - Revenue: one tag per company (
RevenuesorRevenueFromContractWithCustomerExcludingAssessedTax), whichever covers the most recent fiscal years, so a series never mixes definitions. The choice is listed below. - Fiscal years follow each company's own calendar (TransDigm's ends in September). A period is a year if it is about 365 days long and a quarter if about 91; 6- and 9-month year-to-date figures are not used.
- As first reported. Each 10-K repeats last year's numbers. Hangar keeps the first filing that reported a period, because that is what investors knew at the time. If a later filing changed the number, the revision is shown next to it with its own link.
- Award ÷ RPO uses the latest RPO whose filing was public on the announcement date, and award ÷ revenue the latest full fiscal year whose 10-K was public on that date. "Public" means filed, not period-ended: a quarter ending June 30 isn't known until the 10-Q comes out weeks later. Using later data would be look-ahead.
- Only definite awards get a percentage. Ceilings and IDIQ maximums are not money, so a percentage would overstate them.
- Gaps are shown, not filled. If a company doesn't tag a figure, or skips a period, the page says so. Nothing is estimated.
Coverage by company
| Ticker | Figure | Status | Tag (why) | Periods | Gaps |
|---|---|---|---|---|---|
| LMT | RPO | reported | RevenueRemainingPerformanceObligation (standard tag for remaining performance obligations) | 31: 2019-03-31 to 2026-09-27 | |
| LMT | revenue | reported | Revenues (latest fiscal year (to 2025-12-31); RevenueFromContractWithCustomerExcludingAssessedTax stops at 2019-12-31) | 7: 2019-12-31 to 2025-12-31 | |
| RTX | RPO | reported | RevenueRemainingPerformanceObligation (standard tag for remaining performance obligations) | 31: 2019-03-31 to 2026-09-30 | |
| RTX | revenue | reported | RevenueFromContractWithCustomerExcludingAssessedTax (latest fiscal year (to 2025-12-31); Revenues stops at 2024-12-31) | 5: 2021-12-31 to 2025-12-31 | |
| NOC | RPO | reported | RevenueRemainingPerformanceObligation (standard tag for remaining performance obligations) | 31: 2019-03-31 to 2026-09-30 | |
| NOC | revenue | reported | Revenues (only revenue tag reported) | 7: 2019-12-31 to 2025-12-31 | |
| GD | RPO | reported, with gaps | RevenueRemainingPerformanceObligation (standard tag for remaining performance obligations) | 3: 2023-12-31 to 2025-12-31 | no XBRL value between 2023-12-31 and 2024-12-31; no XBRL value between 2024-12-31 and 2025-12-31; not tagged in the 10-Q filed 2026-04-29 or later |
| GD | revenue | reported | Revenues (both tags cover the same fiscal years; the first-listed tag is used) | 7: 2019-12-31 to 2025-12-31 | |
| LHX | RPO | reported, with gaps | RevenueRemainingPerformanceObligation (standard tag for remaining performance obligations) | 21: 2020-01-03 to 2026-07-03 | no XBRL value between 2020-01-03 and 2021-01-01; no XBRL value between 2021-01-01 and 2021-12-31; not tagged in the 10-Q filed 2026-10-29 or later |
| LHX | revenue | reported, with gaps | RevenueFromContractWithCustomerExcludingAssessedTax (only revenue tag reported) | 7: 2019-06-28 to 2025-01-03 | not tagged in the 10-K filed 2026-02-12 or later |
| BA | RPO | reported | RevenueRemainingPerformanceObligation (standard tag for remaining performance obligations) | 31: 2019-03-31 to 2026-09-30 | |
| BA | revenue | reported | Revenues (latest fiscal year (to 2025-12-31); RevenueFromContractWithCustomerExcludingAssessedTax stops at 2019-12-31) | 7: 2019-12-31 to 2025-12-31 | |
| HII | RPO | reported | RevenueRemainingPerformanceObligation (standard tag for remaining performance obligations) | 31: 2019-03-31 to 2026-09-30 | |
| HII | revenue | reported | Revenues (only revenue tag reported) | 7: 2019-12-31 to 2025-12-31 | |
| GE | RPO | reported | RevenueRemainingPerformanceObligation (standard tag for remaining performance obligations) | 31: 2019-03-31 to 2026-09-30 | |
| GE | revenue | reported | Revenues (only revenue tag reported) | 7: 2019-12-31 to 2025-12-31 | |
| TDG | RPO | not reported in XBRL | |||
| TDG | revenue | reported | Revenues (latest fiscal year (to 2025-09-30); RevenueFromContractWithCustomerExcludingAssessedTax stops at 2024-09-30) | 7: 2019-09-30 to 2025-09-30 | |
| HWM | RPO | not reported in XBRL | |||
| HWM | revenue | reported | RevenueFromContractWithCustomerExcludingAssessedTax (only revenue tag reported) | 7: 2019-12-31 to 2025-12-31 | |
| KTOS | RPO | reported | RevenueRemainingPerformanceObligation (standard tag for remaining performance obligations) | 31: 2019-03-31 to 2026-09-27 | |
| KTOS | revenue | reported | RevenueFromContractWithCustomerExcludingAssessedTax (only revenue tag reported) | 7: 2019-12-29 to 2025-12-28 |
Pitches and their timestamps
The pitches are opinions written by Hangar's author, separate from the data. A track record is only worth something if it can't be rewritten, so each pitch is locked three ways:
- Git history. Pitches are files in the public code repository, so GitHub records when each was pushed.
- Fingerprint. The first time the daily job sees a pitch, it records a SHA-256 fingerprint of the text and the date. Changing a single character changes the fingerprint; the site's tests then fail and the site stops updating until the text is put back. New thoughts can only be added as dated "Update" or "Closed" notes, each with its own fingerprint.
- Independent copy. Once a pitch page is live, the Internet Archive is asked to save it. Its dated copy is held by a third party.
A pitch's own date may be at most 3 days before it was first published, so it can't be backdated. Pitches show no stock returns (see why); each links to Yahoo Finance prices since the pitch date, and the "What happened since" section shows Hangar's own data after that date. A pitch is personal opinion, not investment advice, and states whether the author held the stock.
Missing days
37 of 716 business days have no announcement in the archive. These days are shown as missing, never as zero awards. The longest gap, October 1 to November 11, 2025, matches the federal government shutdown; announcements resume on November 12, 2025, the day it ended. That explanation is likely but has not been confirmed from an official source.
- 2024-12-24 1 business day
- 2025-01-09 1 business day
- 2025-10-01 to 2025-11-10 28 business days
- 2025-11-26 1 business day
- 2025-12-24 to 2025-12-26 2 business days
- 2026-02-02 to 2026-02-04 3 business days
- 2026-11-09 1 business day
What this data can't tell you
- Subcontracts are invisible. Component makers (TransDigm, Howmet and others) mostly sell through prime contractors, so they rarely appear here even when their defense business is large.
- Awards under $7.5 million aren't announced.
- Classified awards are not published.
- Timing: announcements come after the market closes; a later, structured record of the same contracts appears on USAspending.gov about 90 days later.
Why there is no price data here
The free stock-price services we checked (Tiingo, Massive/Polygon, Alpha Vantage) license their free data for personal use only and do not allow showing it, or returns calculated from it, on a public website. Hangar follows those terms, so it shows no prices and no price reactions. Each award instead links to that stock's daily prices around the announcement date on Yahoo Finance, so you can look for yourself. Announcements are posted after the market closes, so the first trading day that can react is the next one.
The one exception is the pitches: an author may write into a pitch the prices they looked up themselves (an entry price, the prices behind a valuation, a price target), each with its date. Hangar's code never downloads a price.
Not investment advice
Hangar is a student research project. It reports what the government announced; it does not recommend buying or selling any security. Check the source before relying on any number.