Skip to content
lanthanides.iolanthanides.io

Open & Auditable

Contribute data

This ledger grows by review, not by scraping. Every price and market note enters through a public pipeline with two human checkpoints, so what gets published is open, attributable, and reversible by anyone reading the git history.

See what governs each accepted value in the methodology, or the registry it draws from in Sources.

How data gets in

Two checkpoints stand between a submission and the public dataset: a maintainer's review, and a merged pull request. Neither can be skipped.

  1. 1

    Open a structured issue

    Use one of the templates below. Required fields (element, price, form, purity, quantity, source, and date) are enforced by the form, so a submission arrives complete.

  2. 2

    Maintainer reads and labels it

    Human checkpoint 1

    No automation touches the data until a maintainer reads the issue and applies the `approved` label. Stale, mistyped, or speculative submissions stop here.

  3. 3

    A pull request opens

    A manually-dispatched workflow validates the fields with the same rules used for every price and opens a PR adding one observation. It never runs automatically on issue creation.

  4. 4

    Review and merge

    Human checkpoint 2

    Merging the PR is what publishes the change, as a reviewable git diff, attributed and dated. Closing it without merging discards the submission cleanly.

Two checkpoints, no silent edits

There is no path from an unreviewed, unlabelled, or malformed issue into the published data. A maintainer decides what is real (the label), and a merge (a public, attributable git diff) is what publishes it. The whole history is inspectable in the repository.

What makes a submission usable

  • A real source. A seller name and, where possible, a URL, something a reviewer can open and check. Anonymous or unverifiable listings are excluded.
  • Form, purity, quantity. A price is only comparable with its form (metal/oxide/…), purity, and the quantity it applies to.
  • An observation date. The date you saw the price, never an ingestion date dressed up as a quote date.
  • No guessing. A missing field is left blank, not filled in to complete the record.

How we verify every price

  • Two reference prices: a retail reference and a bulk benchmark, tracked separately and never averaged into one number.
  • Confidence + verification: every record carries a 0 to 1 confidence score and an explicit verification status.
  • Validated provenance: three intake paths, each one named, dated, attributed, and validated, never invented.

What's actually in the ledger

The current intake mix, regenerated from the data, including the paths that read zero today.

Intake mix

How the data got here

285 obs · May 21, 2026
  • Public listings219 · 76.8%
  • Aggregates (medians)47 · 16.5%
  • Benchmarks / price-reporting agencies19 · 6.7%
  • Community submissions0 · 0%
  • Supplier quotes0 · 0%
  • Invoices0 · 0%
Every observation is tagged with the path it came through and validated the same way. See the provenance chain.
Community submissions read 0 today. The pipeline is open and ready, but the dataset is still maintainer- and benchmark-collected.