Pick a contract, an arms sale or a name, and follow the whole trail with a public source on every string.
Every flow in the dataset is traced through the same three hops. Each hop is evidenced by a primary filing, so any link can be checked independently.
Appropriation
USAspending · Federal Register
Prime contractor
Senate LDA filings
Institutional owner
SEC EDGAR 13F · LittleSis
Public spending is published. So is lobbying, corporate ownership, political donations, insider filings, and a good deal of shipping and air traffic. The information is almost never joined up, because every source has its own format, its own identifiers and its own gaps.
Trace. Follow US defence money from the moment it is asked for, to who gets paid, to who lobbied, who funded the politicians, and who owns the winners.
Watch. Catch intent before the award: Pentagon bids out, arms sales sent to Congress, new lobbying hires, insiders filing to sell, five percent stake filings, material deals, large outside election spending.
Test. Put a theory against the data and get back a report that shows the support, the counter evidence, and the unknowns. Counter evidence is required, not optional.
The free tools that used to do parts of this have closed or narrowed. The OpenSecrets API shut in April 2025. Aleph ended the same year. Quiver and Capitol Trades cover congressional trades but not procurement. HigherGov and GovTribe cover procurement but not influence.
Nothing free joins procurement intent, arms sales, lobbying, political money and ownership in one place, time stamped, with a primary source on every link. That is the gap this fills.
| Source | What it supplies |
|---|---|
| USAspending · FPDS | Federal contract awards and obligations |
| Federal Register · DSCA | Arms sales notified to Congress |
| SAM.gov | Pentagon requirements put out to bid, before any award |
| Senate LDA | Lobbying registrations and quarterly disclosures |
| FEC | Political donations and 24 and 48 hour independent expenditure filings |
| SEC EDGAR | 13F holdings, 13D and 13G stakes, Form 144 insider sales, 8-K material deals |
| LittleSis | Board membership and interlocks between organisations |
| House Clerk | STOCK Act periodic transaction reports, parsed from PDF |
| UK Find a Tender | MoD awards and tenders, mapped to listed parents |
| EU TED | European defence and security contract awards |
| Cboe | Delayed options chains, flagging volume against open interest |
| IMF PortWatch | Port calls and maritime trade movement |
| Global Fishing Watch | Daily cargo and tanker presence at chokepoints |
| Sentinel-1 | Satellite radar, used to count ships directly |
| ADS-B | Military aircraft transponder tracks |
| FRED | Macroeconomic series for context and deflation |
Shipping traffic through a chokepoint is a useful signal, but vessels can switch off their transponders. So the system stopped relying on them and started counting hulls directly.
It reads free Sentinel-1 radar from Microsoft Planetary Computer, pulling only the tiles it needs from the 40 metre overview over HTTP range requests rather than downloading whole scenes. It merges the slices of each pass, learns a land and fixed structure mask from the box's own history, then counts small very bright blobs on water against the local background.
Each pass is compared only against earlier passes on the same orbit direction, because comparing an ascending pass with a descending one would produce a difference that is about geometry rather than ships.
Four boxes are watched: the Strait of Hormuz, the Gulf of Oman approaches, Bab el Mandeb and the Southern Red Sea.
A map of money and influence is easy to build badly. The failure mode is a system that quietly confirms whatever its author already suspected. Most of the work here went into stopping that.
On 3 November the satellite radar showed traffic through Hormuz down 48 percent. Global Fishing Watch showed it up 46 percent. Both readings are displayed, the card glows amber because they conflict, and the note says the samples are small and this is a watch item. Averaging the two would have produced one confident number and destroyed the only honest signal in the pair, which is that nobody knows yet.
Every scanner row and every idea is written once into a hashed log that cannot be edited afterwards. Returns are measured against benchmarks at one, five, twenty and sixty trading days. No signal type gets judged at all until thirty of them have closed. The machinery for proving the system wrong was built before there were any results to defend.
A verification pass against primary sources forced three corrections in a single morning. A headline supplemental was reclassified from money to a request that never made it into the continuing resolution. A reported contract turned out to be a ten year framework with the company self funding. A weapons case was downgraded to informally notified. All three corrections made the numbers smaller.
Politicians are matched to donation records by surname and state, so a wrong match is possible. The interface says so on the panel rather than burying it. Theory reports are labelled as machine written hypotheses, require counter evidence, and cover no private individuals.
The obvious assumption about a tool like this is that it finds trades. It was tested for that, and mostly it does not.
Headline prime contract awards barely move prices: close to zero effect once pooled, and only around thirty basis points over three days for awards that are large relative to the company. Average congressional trades do not beat the market, though leadership trades and opportunistic insider buying look different.
So the honest conclusion is that this is strong for research and journalism and for catching intent early, and weak as a signal generator for headline awards. That finding is published here rather than left out, because a tool that cannot say what it is bad at is not worth trusting about what it is good at.
Same day Pentagon contract announcements are not scraped, because those pages refuse automated clients and the workaround was not worth it. Awards arrive via a slower federal feed instead.
The event study lab, full entity pages with timelines, and schema export are designed but not written.
Borrow fee data now sits behind a key, and one Senate filing system requires manually accepting terms in a browser before any search, so neither is wired in.
One pass of the pipeline, from unconnected public sources to a sourced brief. It runs automatically every two hours. The hard part is not ingestion, it is stage four.
Ingest
Sixteen sources, sixteen formats, sixteen sets of identifiers. None designed to be joined to the others.
Resolve entities
The same company appears under a contract name, a filer name and a ticker. They have to be recognised as one thing.
Build the graph
Flows become edges across three layers: money, lobbying, ownership.
Reconcile, or refuse to
Where two filings disagree, the disagreement is kept and surfaced rather than averaged away.
Conflict held open, not resolved
Daily brief
Generated from the current graph. Every figure keeps its filing, every thesis keeps its confidence rating.
A single operator, working across several models with a defined job for each: long document digestion, scanning for changes, and code with final review. Ingestion and the daily brief run automatically. The graph is queryable rather than static, so a question can be asked of it directly instead of answered from a prepared chart.
It is continuously deployed. Framework, hosting and data decisions were made independently.
The live terminal is behind a passcode. It is a working tool that redeploys several times a day, and it is not stable enough to leave open.
If you are assessing this as part of an application, ask for a walkthrough and I will take you through the live system, the source code and a current brief with the sourcing visible. That is quicker than a demo video, and you can ask it questions in real time.