Skip to content

Conformance — where reality disagrees with the model

This page is generated. Do not edit it by hand — run scripts/atlas-conformance.py.

The model pages say how the domain works. The database and the pipeline are what actually happens. This page checks one against the other. Each line is a statement the model makes, and a verdict measured against the live system — never a written opinion.

A failing check is not a bug report and not a complaint. It is a place where the thing we describe and the thing we built have come apart, and it will turn green on its own the day someone closes the gap.

Read every failure as one of three things, because only two of them are defects:

  1. The model is wrong — we describe something the system could never sensibly do. Change the model.
  2. The build is wrong — the system could do it and does not. Fix the system.
  3. The work has not been done yet — the pipeline that would satisfy this does not exist, or has not been run. Nothing here is broken; it is unbuilt.

The third kind is the most common on this page today, and it must not be read as an argument against the model. "Hardly anything is tagged to a campaign" is a fact about a pipeline we have not built, not a finding about whether campaigns belong in the model. The architecture is designed for the shape we are scaling to — not bent around gaps we already know we are going to fill. Bending it around today's data would encode the gaps permanently.

6 holding · 8 not holding · 14 checked

Not holding

C1 · Moments — The browse group is recorded against a moment, not only derived at display time.

No column on the moment tables records the browse group. It is worked out when a page is drawn, by looking up which group the moment's shelf sits under. Nothing is lost today, but the browse level cannot be counted, corrected, or disagreed with. (Note: the moments page currently says the group is derived on purpose, and whether to record it instead is an open question — this check measures the recording side of that question, not a settled rule.)

C2 · Content — Every channel we write on content is a word from the registered channel vocabulary.

5 of the 6 channel values actually written on content are absent from the registered channel vocabulary. Two lists describe the same idea and only one of them is filled in by anything.

C5 · Moments — Every moment sits on at least one shelf.

108 of 3,437 moments carry no shelf at all, so they are described but cannot be reached by browsing.

C7 · Content — Every piece of content has a channel, worked out from where it was collected.

12 pieces of content have no channel worked out, so we cannot say where they appeared.

C8 · Content — The retired platform field holds no data.

The retired platform field still holds 206 legacy values, and 0 of its registered names are switched on. A retired field with surviving data invites someone to read it.

C9 · Moments — The open detail level stays usable as a way to find things.

The open detail level holds 577 values, 379 of them (65.7%) used exactly once. Open was right for discovering the vocabulary; past roughly a third used once it stops working as a way to find anything.

C11 · Moments — Every registered story job can actually be emitted by the classifier.

11 story jobs are registered and 10 are written into the classifier's instructions. 1 registered story job is never offered to it — explanation — the same defect as the shelf gap: registered in the database, invisible to the classifier that would have to emit it.

C13 · Entities — Every piece of content resolves its owning brand through the canonical ownership chain.

5,575 of 13,944 pieces of content cannot resolve their owning brand through the canonical ownership chain — the chain the rules name as the real one; today most surfaces read the content-mention link instead. This is the third kind of failure: the work has not been done yet. The ruling is that the canonical chain is right and its emptiness is unfinished work — the pipeline lane backfills it, and every "this brand's work" surface then reads it. This check measures that backfill until it lands.

Holding

  • C3 · Moments — Every registered shelf can actually receive a moment. 13 shelves are registered and 13 are written into the classifier's instructions. Every registered shelf can be emitted. (A further 1 registered value is tiered as a lens, not a shelf — pricing_cta — also never offered to the classifier, so nothing can reach it either.)
  • C4 · Moments — A moment sits on one or more shelves, and exactly one is its main shelf. Every moment that carries a shelf has exactly one marked as its main shelf — the one that titles and sorts it.
  • C6 · Content — Every column the product filters on is visible through the content view. Every indexed column reaches the view the product reads content through.
  • C10 · Entities — Every entity is one of the four kinds the model recognises. Every entity is one of the four kinds the model recognises.
  • C12 · Moments — A moment belongs to a video, never to an image or a page. All 3,437 moments attach to a video and nothing else — none hangs off an image, a page, or a parent that no longer exists.
  • C14 · Groupings — Every grouping kind written on a container is a word from the registered vocabulary. All 11 grouping kinds written on containers come from the registered vocabulary.

How to read this

Each check names the pillar it belongs to, so you can go from a statement on a model page to the evidence that it is or is not true. The exact queries behind every check live in the script that generates this page.

Atlas — the BrandTrackers domain model. Source: git markdown, drift-checked against the live DB.