The record

The record as data

The record file of 20 August 2026: 500 rows, one JSON object per line, schema 1.9.0. The pages are built from every row of it.

Download newsroom-2026-08-20.jsonl (500 rows, the file exactly as the software wrote it).

The contract

The file's shape, every field, and the compatibility promise are published in ops/SCHEMA-newsroom.md in the repository that builds this site. Three rules bind any consumer, and this site keeps them itself, with one rule of its own added first:

  • A row whose published_at is later than the date in the file name, the day the record was read, is not published.
  • A row with lead_eligible: false is never set in a lead or featured position. It carries no headline of its own; the record's plain statement stands in.
  • An excerpt is never rendered longer than the row's own excerpt_word_cap, and never at all where republication is link_only.
  • source_url is always a link and source_name is always visible beside it.

What is in it, and what is not

Every row is a dated event at a named aerospace or defense company, fetched again at its source on the day the record was read and confirmed to carry its excerpt. Rows are in editorial order: descending editorial_score, then newest first.

The market segments are on every row as segments; the titles on this site are cut on it. A row the reading could not place carries unclassified.

The standards page carries the source register, the quoting rule per source and the terms each reading relies on.

The API

The file above is a snapshot. The same record, and the supplier graph behind the supplier directory, are readable live over an API that costs nothing. It is read-only: every endpoint is a GET, and a POST under it is refused. The base address is

https://loadfactor-edge.reuben-8a7.workers.dev/api/v1

EndpointWhat it answers with
GET /companiesThe supplier graph, filtered by category, state, claim_state, certification, segment and min_record_entries, paged with cursor and limit.
GET /companies/:slugOne company: its facts with the public source behind each one, its categories and segments, its claim state, and the record's entries for it.
GET /categoriesThe category vocabulary as the graph uses it, each with how many companies sit in it and the address of its buyer's guide.
GET /recordThe rolling record, filtered by company, free text q, segment and since, paged the same way.
GET /referral-definitionThe published definition of a countable referral, the one on the standards page.

Every answer carries an ETag and five minutes of shared cache, so a repeat that sends If-None-Match comes back as a 304 and costs nothing. A company or an endpoint that does not exist is a 404 saying so, never a guess.

What comes back is what this site publishes and nothing else. The API projects every stored row through the same field lists the two published schemas fix, so a field the schema does not publish cannot leave the store whatever is in it.

A key

Keys are free and read-only. Send one as an x-api-key header or as Authorization: Bearer. A caller with no key gets a small hourly allowance, which is enough to evaluate the API and to run a copilot against it; a key raises the ceiling and identifies the organisation asking. A key the record does not know is refused rather than quietly treated as anonymous, so an integration hears about it before it ships.

To get one, write to reuben@loadfactor.agency and name the organisation it is for.

The MCP server

The same graph and the same record are an MCP server, so a copilot answers from them with the source on every line. One endpoint, taking POST:

https://loadfactor-edge.reuben-8a7.workers.dev/mcp

It speaks the Model Context Protocol at revision 2025-06-18, and accepts 2025-03-26. It is stateless over streamable HTTP: a request is answered with one JSON body and no event stream is opened, which is why a GET to it is refused. It carries four tools.

  • find_suppliers searches the graph by category, US state, certification or design approval on file, market segment, and how active the record has been about a company in the last thirty days.
  • company_profile returns one company by its slug, with its facts, their sources and its entries.
  • record_search searches the rolling record by company, free text, segment or date.
  • category_guide returns the taxonomy, or one category with the companies in it and a link to the signed buyer's guide.

Every result carries the public source URL behind each fact and each entry, and the server tells a client to cite them. A client that takes a streamable HTTP server as JSON takes this, with the key line dropped if you have no key:

{
  "mcpServers": {
    "loadfactor": {
      "type": "http",
      "url": "https://loadfactor-edge.reuben-8a7.workers.dev/mcp",
      "headers": { "x-api-key": "YOUR_KEY" }
    }
  }
}

If you would rather ask a question than wire anything up, the sourcing assistant reads the same graph and costs nothing.