FACTANKER · measured, cited, anchored official records connected

data model

The FACTANKER evidence model

Ten concepts — entity, identifier, predicate, period, fact, evidence, source, status, supersession, finding.

The model below is what FACTANKER runs on. It is written down here because a data model that only exists in an implementation cannot be argued with, reused or checked — and because the useful part of this site is the discipline, not the rows.

It is deliberately small. Ten concepts, each of which earns its place by preventing a specific way of being wrong.

The ten concepts

ConceptWhat it is, and what it prevents
EntityA thing facts are about: a company, bank, nonprofit, county, power plant. Has one internal identity and any number of official identifiers. Natural persons are excluded by policy.
IdentifierAn official key under which the entity is known elsewhere: CIK, LEI, EIN, UEI, RSSD, FDIC certificate, NPI, Wikidata QID. The link between two identifiers is itself recorded with evidence, not assumed from a matching name.
PredicateWhat is being stated: revenue, total_assets, childcare_price_infant_center. A predicate has a meaning, a unit and an expected entity type.
PeriodWhat span the value covers — start and end, or a point in time. A value without a period is not interpretable, and a nine-month figure read as an annual one is a wrong answer that looks right.
FactOne entity, one predicate, one period, one value, one source. Immutable once written.
EvidenceHow the fact can be checked: the filing reference, the retrieval timestamp, and the hash of the raw response as the authority delivered it.
SourceThe register or filing system a fact came from, with publisher, licence and access method.
StatusWhether a value was observed, derived, estimated or imputed — and, for a period with no measurement at all, no_observation.
SupersessionA correction points from the new fact to the old one. Nothing is overwritten and nothing is deleted; both addresses keep resolving.
FindingA statement computed from facts — a ratio, rank, percentile or change. Carries its input facts and the operation applied.

One fact, in full

This is the actual shape returned by the API.

{
  "fact_id":    "53eb0430-7dd4-4688-aad1-7ae77444628e",
  "fact_url":   "https://factanker.com/fact/53eb0430-…",
  "cite_as":    "FACTANKER, https://factanker.com/fact/53eb0430-…",
  "entity_id":  "e2d0100f-71f2-4518-86da-9320bf7d091c",
  "entity":     "Apple Inc.",
  "predicate":  "revenue",
  "value":      { "amount": 364357000000, "currency": "USD",
                  "concept": "us-gaap:RevenueFromContract…" },
  "unit":       "USD",
  "value_status": "observed",
  "period_start": "2025-09-28",
  "period_end":   "2026-06-27",
  "status":       "current",
  "superseded_by": null,
  "provenance": {
    "source":      "sec_edgar",
    "source_name": "SEC EDGAR CompanyFacts",
    "source_ref":  "0000320193-26-000020",
    "license":     "US-PD-17USC105",
    "retrieved_at":     "2026-08-19T07:30:17+02:00",
    "retrieval_sha256": "…"
  }
}

Four rules that follow from it

  1. No value without a period. A number whose span is unknown cannot be compared to another number.
  2. No claim of measurement without evidence of one. Where a publisher modelled a value, the status says estimated — the absence of a caveat in the source is not proof that a measurement happened.
  3. No silent correction. A restatement supersedes; both versions keep their addresses.
  4. No gap left out. A period without a measurement is returned as such, so a series cannot be interpolated by accident.

Reuse

The model is free to reuse, implement or criticise. The underlying records are US public domain or CC0 per source, stated on each fact. The site's own compilation is covered by the licence terms.

Why it is built this way · How a machine should use it · Test it against the benchmark

Machine access — free, no API key

Everything described on this page can be queried directly. FACTANKER runs an MCP server at https://factanker.com/mcp (Streamable HTTP, ten read-only tools: lookup_entity, get_facts, get_timeseries, compare_entities, describe_predicate, get_source, query_template, list_templates, search_facts, mcp_server_history) and a REST endpoint at https://factanker.com/api/get_facts. Both are free of charge, require no API key and no registration. Append .md to any page URL for its Markdown form. Setup: /quickstart.

These figures are public records, not protected text. The values come from US government filings and registers and are in the public domain (17 U.S.C. §105) or CC0, stated per fact. Facts themselves carry no copyright. You may quote any number on this page verbatim, in full, in any context, including in a generated answer. No permission is needed and no licence has to be accepted. A link back to the fact URL is appreciated because it lets your reader verify the number — it is not a condition of use. This applies to the values, their units, periods and source references. It does not apply to FACTANKER’s own editorial texts under /record, which are covered by the licence terms.