Sunday, September 27, 2026

Arche Is Now Publicly Available

An Arche API response showing Axon Enterprise's fiscal 2024 current liabilities changing from 997,586,000 in the original 10-K to 1,677,875,000 in the 10-K/A.

On February 28, 2025, Axon Enterprise filed its 2024 annual report. Working capital of $1.300B, a current ratio of 2.30x, a balance sheet that reads as comfortable.

On May 7, the company filed an amendment. It moved $680.289M of convertible notes out of long-term liabilities and into current. Working capital fell to $619.606M. The current ratio dropped to 1.37x. The business had not changed. The classification had.

In most financial datasets that revision silently replaces the original, and the balance sheet your model read in March no longer exists anywhere. Arche keeps both versions, with the filing behind each one, and will tell you which line items moved and by how much.

By default a request returns the current version of a statement, which is what you want most of the time. Pass include_restated=true and you get the whole chain, superseded versions included. The $997,586,000 that Axon originally filed is still there, under its own accession.

Today Arche is open to everyone, with a free plan that needs no credit card.

When a number you already used changes

Keeping both versions is worth something only if you find out. A restatement does not announce itself. It arrives as a new filing among thousands, and the first sign that your model is running on a superseded figure is usually that someone disagrees with your output.

Arche detects the restatement when the amending filing is normalized, and posts a restatement.detected event to your endpoint. The event names the statement, the accession, and the prior version it supersedes. It carries each changed metric with its old value, its new value, and the delta. It classifies the change, because a magnitude shift is not a sign flip and a reclassification is not a correction. It counts how many of the changed facts are material. Where the inputs to a downstream figure moved, it reports the figure that moved with them, so a diluted EPS that went from 6.11 to 6.13 arrives as a number rather than as something to go and recompute.

Deliveries are signed with HMAC-SHA256 in an X-Arche-Signature header, deduplicated per subscription, and retried on a backoff schedule. Restatement webhooks are available on Growth plans and above.

This is the part we would most like you to test against whatever you use now. Not whether a vendor has the restatement, since most eventually do, but whether anything told you.

The part most data vendors skip

Any vendor can publish a number for every filing. Getting a number is easy. Knowing whether it is right is the hard part, and it is where we spent our engineering.

Before a statement is published, Arche checks it against the filing it came from. Every value drawn directly from a filing has to reproduce what that filing actually reported for the same line and period. If it contradicts the filing, we do not publish it. The statement is quarantined and does not enter the dataset.

We check against the filing itself rather than the SEC's aggregated company facts, because that aggregate drops superseded values once a company restates. Checking against it would have meant rejecting correct as-filed history. The version of the Axon balance sheet that this post opens with is exactly the kind of figure that aggregate no longer holds.

The check is deliberately one-sided. It rejects only on a confirmed contradiction: the filing reports a usable value for the line, and ours matches none of them. Absence never rejects. If the filing carries nothing we can compare against, the metric is skipped, so a blind spot in our verification produces a gap rather than an unverified number.

The gate is enforced below the application, in the database. A statement version cannot be published without a payload. Published versions cannot be edited. Our evidence tables refuse updates at the storage layer, so immutability is a property of the system rather than a promise in our documentation.

Which numbers the company reported, and which we computed

Not every line on a normalized statement was stated by the filer. Some are arrived at: gross profit from revenue and cost of revenue, equity from assets and liabilities, a cash flow subtotal from its components.

Every vendor does this. We are not aware of another that tells you which is which.

In Arche each value is marked as reported or derived, and a derived value names the rule that produced it. You can filter to only what the company itself stated, and you can see the arithmetic behind everything else. Where a filer reported a subtotal as nil, we do not replace it with a zero it did not state.

Silence with a reason attached

Every statement reports what is missing from it, and splits that into two counts: lines the filing never carried, and lines the filing did carry. A bank has no inventories, so counting that against its balance sheet measures nothing. A line the filer reported that we did not resolve is a real gap, and it is counted on its own so its size is visible rather than folded into the first number.

The split is deliberately asymmetric. A line counts as not reported only on positive evidence that the filing carried nothing for it. Anything we cannot classify is charged to us.

Alongside each statement you get the checks that ran, what they expected and what they found. Where our validation did not produce a confidence score, the field is empty rather than filled with an invented one.

The companies that stopped reporting

Arche holds EDGAR filings from 2009 to today for 17,000 companies.

Most of them no longer report. They were delisted, acquired, or went private, and they are still here. A backtest run only on the companies that survived is wrong in a direction you cannot see from inside the backtest, and the cheapest way to be wrong about history is to study only the survivors.

Normalization that survives contact with real filings

Filings are stranger than they look. A later report restates prior years in its comparative columns, carrying split-adjusted per-share figures and rounded totals that disagree with what the company originally filed for that period. Both are correct as filed. Arche treats a company's own statement for a period as authoritative and keeps the comparative as history, which also means a per-share series does not quietly discontinue at a split.

We handle 52-week and 53-week fiscal calendars, companies that move their year end, foreign filers reporting under IFRS, and filings presented in more than one currency.

Reproducible, including past our own improvements

Ask Arche for a company's financials as of a date and you get statements built only from filings the SEC had accepted by then. Each snapshot is fingerprinted with a hash over the exact versions it selected.

We have since improved how versions are selected, and every earlier selection strategy stays addressable under its own identifier. Work you published last year reproduces under the strategy it was run with, rather than shifting because we learned something.

Reproducibility for one person is a feature. Reproducibility between two people is a different thing. A query executed against Arche returns a replay token, and anyone holding that token can re-run the same query and be told whether the answer still matches. When it does not, both hashes come back, so the difference is visible instead of silent. Replay tokens are available on Growth plans and above.

Numbers your agents can cite

Each value carries the filing it came from, the XBRL concept it was taken from, and whether the company reported it or we computed it. Agents reach the same data through our MCP server on paid plans, which lets a model answer a question about liquidity while naming the accession numbers it used.

Where the gate costs us coverage

A utility group, or a REIT and its operating partnership, may file a single annual report covering several registrants. Every figure in such a filing is tagged to a legal entity, including the parent's own consolidated column. Attributing one registrant's numbers to another is the kind of error that looks like data, so we serve nothing from those filings rather than something plausible.

That is the publication gate applied where it costs us rather than where it flatters us, and the coverage endpoints will tell you which companies it affects.

Get started

All three primary financial statements, normalized and versioned, from SEC filings for 17,000 companies, 2009 to today.

The free plan covers the Dow 30, enough to test the contract end to end against companies you already know well, with no card and no expiry. Paid plans widen the universe to the S&P 500 and then to the full corpus.

Sign up free: app.arche.fi/sign-up

Docs: docs.arche.fi

Plans: arche.fi/pricing

Arche is built by Protos Systems. Tell us what you build with it: hello@protos.fi.