← BACK TO PLATFORM
The bar

Sourced. Derived.
Or absent. No fourth state.

Every numeric and factual claim Afrimintel publishes lives in exactly one of three categories. We replaced "100% accurate" — which is unattainable — with an operational framework: source it, derive it from sourced inputs, or admit we don't have it. Errors are inevitable. Discipline about errors is what makes a record trustworthy. Every correction is published in the Corrections Register — append-only, dated, and (where one exists) tied to the authoritative source that prompted it.

v1.1 — adopted 25 April 2026 as v1.0; amended 8 July (non-claim statuses) and 17 August 2026 (absence_basis) SLA: 7 business days material 110 pre-deploy contract tests block drift
Dossier completeness is uneven inside the tier, and we publish the spread

The tier says a record clears the intelligence-grade bar. It does not mean every such record carries the same amount. The figure below counts populated fields in the deposit dossier across five blocks — reserve/resource, economics, government take, ownership, safeguards. It is a measure of dossier completeness, not of everything the platform holds on an asset: economics for all six also sit in the bankability layer, which carries comparable field counts across the set. What the spread shows is how much of the picture is assembled in one place.

AssetPopulated fields
kabanga-ni64
ngualla-ree30
kamoa-kakula9
manono-lithium-district9
balama-graphite8
colluli-potash7

Stated because the label would otherwise imply parity it does not have: a reader who evaluates the fullest dossier and then tests the thinnest is entitled to know how far they differ. Deepening the thin records is ahead of adding new coverage.

The three-state model

Every numeric or factual claim Afrimintel surfaces is in one of three states:

SOURCED

Sourced. Claim derives from a named, citable, primary or institutional document with a date. The source is recorded in the platform's data layer and surfaced to the user. Examples: a deposit's reserve tonnage cited from an NI 43-101 / JORC / S-K 1300 technical report; a country's Fraser Institute IAI score; a transaction value cited from a primary press release or SEC filing.

DERIVED

Derived. Claim is the output of an Afrimintel calculation or composite whose inputs are themselves Sourced or Derived, and whose methodology is published. Output carries explicit confidence range or tier. Examples: an issuer NPV re-discounted to a common 8% for comparison (method on /bankability/). Afrimintel publishes no Derived score, rating or ranking of a province, country or asset. The simplest Derived class is contained metal — reserve tonnage × grade — which Afrimintel computes rather than quotes, even where a source also states it; the underlying tonnage-and-grade reserve statement remains Sourced, so a producing-asset reserve row carries both pills (tonnage @ grade Sourced; contained Derived).

ABSENT

Absent. Afrimintel does not hold the data and acknowledges the gap directly. Where a user asks for a fact Afrimintel does not hold, the answer is "we do not hold this" — not a guess, not a placeholder, not a training-data approximation. Ask Afrimintel carries the same discipline: its system prompt, held server-side, forbids any fact from the model's own memory and requires it to say a fact is Absent, and name where it would live, when the records supplied do not carry it. Every figure in an answer is then traced back to those records before the reader sees it.

No fourth state. A claim that does not satisfy Sourced, Derived, or Absent does not appear on the platform. There is no category for "we'll figure this out later" or "approximately right" without a tier tag. If we have not done the work to put a claim in one of the three states, we do not publish the claim.

Editorial Judgment — qualitative claims

The three-state model governs numeric and factual claims. A separate discipline applies to qualitative editorial framing — comparative readings ("EU policy continuity through 2030 is more predictable than U.S. policy continuity across administrations"), characterisations of trajectory ("the corridor's effective country-risk profile is dominated by the highest-risk segment"), and decision-shape framings ("this is post-settlement re-entry, not pre-FID screening"). These are not Sourced, not Derived in the strict computational sense, and not Absent — they are editorial judgments.

The discipline that governs them:

This discipline is added in v1.0.45 in response to a hostile-audit observation that the three-state model governs numbers but not the qualitative framing on which decision-aid value depends. Both layers are now published.

absence_basis: the 17 August 2026 amendment

Absent declares that no figure is carried. Since 17 August 2026 every Absent cell also declares why, through an absence_basis field with four permitted values: not-disclosed (checked against a named primary source), not-yet-verified (the default; no check on record; asserts nothing), not-applicable, and withheld. Only not-disclosed and not-applicable assert anything about the public record. Cross-asset gap statistics may be computed only over those two; a statistic that pools not-yet-verified cells describes Afrimintel’s verification coverage, never operator disclosure, and must be labelled as coverage. Enforced by contract-suite check-49. The governing text is the quality_contract block of the manifest, whose changelog entry for that date reads:

absence_basis discriminator added (check-49). Every Absent cell now declares why it is absent: not-disclosed (checked against a named primary source), not-yet-verified (default; no check on record, asserts nothing), not-applicable, or withheld. Resolves the conflation of disclosure gaps with verification backlog. All 1,472 existing Absent cells default to not-yet-verified; promotion to not-disclosed is one cell, one source, one date. Aggregate gap statistics may not pool not-yet-verified cells.

Working-state tags: retired

Between v1.0.61 and August 2026 the substrate carried two transitional tags, Pending and Inferred-propagated, which this Standard documented as working states rather than a fourth and fifth state. They are retired. The manifest's quality_contract declares no working tags, and the contract suite fails any feed that carries one.

Their job is now done inside the three states. A figure not yet verified is Absent with absence_basis: not-yet-verified, which asserts nothing about the public record. A figure carried from an earlier cycle without a re-walk is either re-verified and Sourced, or it is Absent with that basis. The verification queue and its target dates stay public in sources-verification-log.json; each transition is recorded on the audit log.

Field-level provenance

For records classified as INTELLIGENCE-GRADE (currently 6 deposit dossiers in the platform's database, with a published verification queue of candidates), provenance is captured at field level — not just record level. Each Reserve tonnage, Resource grade, operator name, and reporting basis carries its own tier tag and source citation. A user examining Kamoa-Kakula sees not just "Sourced from Ivanhoe NI 43-101" but the specific document, effective date, and per-field provenance.

Schema fields enforcing this discipline (v1.0.18 schema):

Correction-velocity SLA

Material errors corrected within seven business days. Non-material corrections (typos, formatting, version stamps) within thirty business days. Every correction is logged at /audit-log/ with: what changed, why, the source of the authoritative correction, version marker incremented, regression check, editorial sign-off.

The Audit Log is published, not internal. A correction that has not been logged is not complete.

Pre-deploy gate discipline

Every deploy is gated by an automated pre-deploy pipeline that blocks publication on any of the following findings:

CheckSeverity
Permanent exclusions present in deployed surfacesCRITICAL
Hardcoded secrets in deploy bundleCRITICAL
Wildcard CORS in serverless functionsCRITICAL
localhost in production CORS allowlistsSIGNIFICANT
Counterparty hallucination patternsCRITICAL
Forward-looking partnership claims without confirmed counterpartySIGNIFICANT
Methodology reconciliation lock — every province score reconciles to formula within ±0.05CRITICAL
Score-prose drift — supporting prose disagrees with score chipSIGNIFICANT
Opportunity Multiplier range consistency across surfacesSIGNIFICANT
Round-number drift between marketing copy and dataSIGNIFICANT
AI provenance contract clauses present in shared injection helperCRITICAL
JS syntax integrity across all bundle filesCRITICAL
HTML structural balanceSIGNIFICANT
AI provenance tier tags surfaced in model responsesSIGNIFICANT
IG dossier last_reviewed within 180-day thresholdSIGNIFICANT
Reserve / Resource basis disclosure on attributable recordsSIGNIFICANT
Disputed-asset surface — dispute_status flag on multi-claim recordsSIGNIFICANT
Shared injection helper present and consumed by both production and audit infrastructureCRITICAL

A CRITICAL or SIGNIFICANT finding blocks deploy. The pipeline runs at every build; the script is in the bundle at scripts/audit/pre-deploy-audit.js.

AI provenance contract

Afrimintel's AI feature (ASK Afrimintel) is governed by a published Provenance Contract embedded in the system prompt before every query. The contract instructs the model to:

  1. Answer only from the Afrimintel database injected into the system prompt — not training-data inference
  2. Cite the tier (Sourced / Derived / Absent) for every numeric or factual claim
  3. Refuse fabrication of operator names, reserve tonnages, grades, transaction values, or counterparty relationships
  4. Refuse to claim Afrimintel partnerships, customers, or commercial relationships unless explicitly stated in the data
  5. Respond "Afrimintel's current dataset does not include verified information on [topic]" when no relevant record exists

Compliance with the contract is measured by a 20-query test battery (in-database / absent / adversarial / tier-mix categories). A defence-in-depth runtime audit runs after every model response, surfacing inline flags if the response contains counterparty-relationship language, forward-looking partnership claims, or permanent-exclusion terms.

What this Standard does not claim

This is not a guarantee against error. The Standard is a discipline framework, not a promise of perfection. Errors will occur. The commitment is that errors are caught quickly, corrected transparently, and logged publicly. The platform's flagship credibility is not zero-error operation; it is observable error-correction discipline.

Specific things the Standard does not promise:

Editorial responsibility

The Standard is signed and operated by a single named editorial responsibility: Nikesh Patel, geochemist (nikesh@afrimintel.com). Distribution of editorial capacity across additional named reviewers is on the build roadmap, sequenced to the point a commercial event requires it. Until then, every record carries one editorial signature, and that signature is accountable.

Versioning and changes to this Standard

Changes to the Standard itself are logged at /audit-log/ under "Standard amendment." Material changes (e.g. addition or removal of a state, change to the correction SLA, change to the AI contract clauses) require explicit Audit Log entry with reasoning and effective date. Non-material editorial revisions (typos, formatting, link maintenance) are versioned but do not require a separate entry.


Adopted 25 April 2026. Version identifier ruled 7 September 2026: the Standard is v1.1 on every surface and in the manifest quality_contract; the changelog reference to "v1.2" on 8 July 2026 was drift and is superseded by this line. Last amendment: 17 August 2026 (absence_basis discriminator on every Absent cell, enforced by check-49; see the manifest quality_contract changelog). Earlier: 2 May 2026 (v1.0.18 schema fields added, pre-deploy gate checks expanded). Companion documents: Methodology · Bankability Record · Audit Log · Privacy Policy · Terms of Service.