Skip to content

How the numbers are made

Every standardized figure we serve is derived, in the open, from a company’s own SEC filing. This page explains how — the mapping, the math, and how we handle a number that simply is not there.

It starts with the filing, as filed

When a company files a 10-K or 10-Q, its financial statements are attached in a structured, tagged form (XBRL). We capture that filing and keep every tagged fact exactly as reported — the value, its units, its period, and the company’s own concept tag. Nothing is rounded, rewritten, or thrown away. That faithful copy is the foundation everything else is built on, and it is why any served number can be traced back to the exact filing it came from.

The standardization ladder

Different companies tag the same real-world figure in different ways. “Total revenue” might be tagged one way by one filer and another way by the next. To make companies comparable, we map each filer’s tags onto one canonical set of standardized line items. That mapping runs as a ladder of rules, tried in order of confidence:

  • Direct match. The filer used the standard concept for that line item. We take it as-is — the highest confidence.
  • Known synonyms. The filer used a recognized alternative tag for the same figure. We map it to the canonical line item.
  • Composition. The line item was not tagged directly, but it equals a combination of other reported facts (for example, a subtotal that is the sum of its parts). We compute it — and only when the parts are actually present.

Each served figure carries the confidence tier it was resolved at, so you always know whether a number was reported directly or assembled from components.

When we derive, and when we don’t

Some figures are computed rather than reported — a trailing-twelve-month total, a ratio, a quarter implied by the difference between a nine-month and a six-month cumulative figure. We derive these at read time from the reported facts in force, using period-aware math: flows (like revenue) are summed across the right quarters, while balances (like total assets) are taken at the correct point in time, never summed. Crucially, we derive a number only when every input it needs is present. If an input is missing, we do not guess a substitute — we return an honest absence (below).

Footing receipts — proof the totals add up

Where a statement has an accounting identity that must hold — gross profit equals revenue minus cost of revenue; total assets equals total liabilities plus total equity; free cash flow equals operating cash flow minus capital expenditure — we check it and hand you the receipt. Each check reports one of three states:

  • consistent — the identity holds within a tolerance derived from the precision the company itself reported.
  • inconsistent — a real break; we surface the exact residual and still return the data. We never hide a discrepancy or silently “fix” it.
  • unchecked — a component or the subtotal itself is absent, so the identity cannot be verified. We say so rather than imply a false pass.

You can see these receipts on any statement by requesting the rendered template (template=true on the time-series endpoint).

Honest absence: nm and holes

A blank is never a silent zero. When a figure is not available we tell you which kind of “not available” it is, and why:

  • not reported — the company did not tag this line item in this filing. We do not invent one.
  • nm (not meaningful) — a computed figure whose result carries no useful meaning (for example, a ratio with a zero or negative denominator). We return nm with a reason instead of a misleading number.
  • hole — a value we would normally compute but cannot for this specific case (a required input is missing). You get the hole marker and a reason code, so the gap is explicit and explained.

Why this matters

The difference between “really zero” and “not reported” changes an analysis. Because we never blur the two, you can trust a zero when you see one and handle a genuine gap deliberately.

See it in practice