Public methodology

Every number needs a type, date, and limitation

CreatorStats distinguishes measurements from estimates. The current financial dataset contains legacy editorial baselines without financial citations, so the product exposes deterministic low-confidence ranges instead of presenting those baselines as exact current facts.

Evidence hierarchy

Measurements and estimates are not interchangeable

Audience measurement

A count can be called an API measurement only when its captured timestamp, platform operation, channel identity, and field value are stored together. Official account links establish identity only.

Independent cross-check

A dated figure somebody else recorded for the same verified channel. It is displayed beside the published number for comparison and is never promoted to being the published number.

Financial estimate

A financial value is always an estimate. A sourced estimate must have an as-of date and at least two financial sources; otherwise a legacy value remains model-only.

Financial model

Reproducing the current model-only band

Model version creatorstats-legacy-baseline-band-v1 wraps a legacy editorial baseline in a fixed uncertainty band. It does not infer assets, liabilities, private-company valuations, taxes, ownership percentages, or cash flow.

rangeLow  = round(legacyBaseline × 0.75)
rangeHigh = round(legacyBaseline × 1.25)
confidence = low
asOf = unknown

The band is a disclosure mechanism around weak legacy input—not proof that the true value lies inside it. The baseline itself is not displayed as an exact fact.

Audience freshness

A timestamp belongs to the field it measured

  • Legacy unverified: the stored count has no defensible capture date and receives unknown confidence.
  • API measurement: the value, captured timestamp, channel ID, provider, and operation are stored together.
  • No fake freshness: a build date, copyright year, or biography edit cannot refresh an audience or financial field.
  • YouTube rounding: public subscriber counts may be rounded by YouTube and retain that limitation.

The refresh runs daily. For each profile it resolves the channel from the creator's own stored handle, reads channels.list?part=id,statistics from the YouTube Data API v3, writes each value with its capture timestamp, and appends a snapshot only when a measured value or the channel identity changed. YouTube's own answer decides which channel a profile measures; no third-party record is allowed to select it. The refresh never edits the creator-level review date, because measuring a counter is not an editorial review of a person.

Every refresh is validated before it is committed: the whole cohort must lint, type-check, pass the evidence gate, build, and satisfy the build contracts. A refresh that fails any of those is discarded in full rather than partially applied, so the site is never left holding half of an update.

Where a stored account link no longer resolves to a live channel — a creator renamed the account, or the link was never right — that profile is skipped and reported rather than guessed at. Its audience figures stay marked as legacy values with unknown freshness until a reviewer corrects the link, so an unresolvable profile looks stale on this site because it is stale.

Independent cross-checks

Somebody else's dated number, shown next to ours

Alongside its own captures, CreatorStats records audience figures from Wikidata, the structured public database behind Wikipedia. Wikidata is used because it is openly licensed for reuse (CC0 1.0 (public domain dedication)), publishes a machine-readable interface intended for this kind of access, and — unlike a scraped page — attaches an explicit observation date and citation to each figure.

What is accepted

  • Verified channel only. A statement is read only after the creator's stored YouTube handle or channel ID is matched exactly against the corresponding Wikidata identifier. If more than one channel could be meant, the profile is skipped rather than guessed at.
  • Dated statements only. A figure without an explicit point-in-time qualifier is discarded. An undated number would be exactly the problem this is meant to expose.
  • Referenced statements only. A statement with no citation, or with a deprecated rank, is discarded.
  • Newest wins, and only forwards. A cross-check is replaced only by an observation with a later date, so the record cannot move backwards.

What a cross-check never does

  • It never becomes the published figure, and it never sets an audience field's freshness. A community-recorded number, typically months old, would look like a freshness upgrade while being a downgrade.
  • It never supplies a financial value. No net-worth or earnings figure on this site comes from a cross-check.
  • It never adds biography, dates of birth, or any other claim about a person.

Where a cross-check disagrees with the published figure by 10% or more, the profile says so and states the size of the gap. The two figures do not share an observation date, so a gap does not establish which one is wrong — only that the published figure should not be read as precise.

Cross-checks are only supported for YouTube, because YouTube is the only platform in this dataset whose account identity can be matched exactly. Twitch, TikTok, Instagram, Kick, and Rumble figures have no cross-check and remain legacy values.

Confidence

What each label means

Unknown
A legacy measurement without trustworthy capture metadata.
Low
The current model-only financial state. No field-level financial sources are stored.
Medium
A dated, referenced observation that CreatorStats did not capture itself — an independent cross-check. Good enough to compare against, not good enough to publish as the figure.
High
Used for validated platform API measurements with capture provenance, not for private net-worth estimates.

Ranking policy

Midpoint ordering is navigation, not a verdict

Ranking pages order profiles by (rangeLow + rangeHigh) ÷ 2, with slug/name as a deterministic tie-breaker. The UI labels the order as modeled and preserves each range and confidence state.

Comparison policy

One pair, one canonical order

  • Creator slugs are sorted lexically, so A-vs-B and B-vs-A cannot remain separate indexable pages.
  • Reverse order, host, protocol, and trailing-slash variants consolidate in one permanent edge redirect while retaining the query string.
  • All 7,381 unordered pairs remain usable as tools, but only 25 curated pairs are indexable and included in the sitemap.
  • If financial ranges overlap, the product explicitly says there is no defensible winner.

History and corrections

Append verified observations; log corrections

Two append-only logs are kept, and they are never merged. YouTube snapshots are appended only after a validated API response and only when a measured value or channel identity changes. Cross-check observations are appended only when a later-dated third-party observation appears. Neither log is ever rewritten, and the build rejects a log whose entries are out of observation order. Legacy net-worth history is not charted because its points lack source timestamps. Corrections should add evidence and a reason instead of silently rewriting the record.

Build gate

Invalid evidence blocks release

The validation command checks every profile, financial field, audience field, entity type, priority review, append-only snapshot, and cross-check. A model-only field must have its version, range, low confidence, unknown date, limitations, and zero fabricated sources. A sourced financial estimate must carry a date and at least two financial sources. A cross-check must carry an observation date, a linked third-party statement, a verified channel ID, and a divergence figure reproducible from its own numbers — and it must still describe the value currently displayed.

npm run validate:data

Limitations

What CreatorStats cannot know

Public audience statistics do not reveal private ownership, debt, contracts, expenses, tax, liquidity, or household finances. CreatorStats estimates are not financial advice, credit assessments, or verified personal disclosures.