the tape is running ยท the market is not
NVDAx$228.68๐„ฝ +0.07% vs closeTSLAx$377.45๐„ฝ +0.02% vs closeAAPLx$327.49๐„ฝ โˆ’0.16% vs closeMSFTx$511.45๐„ฝ +0.38% vs closeGOOGLx$344.71๐„ฝ +0.65% vs closeAMZNx$257.81๐„ฝ โˆ’0.48% vs closeMETAx$610.27๐„ฝ โˆ’0.02% vs closeSPYx$772.91๐„ฝ +0.05% vs closeQQQx$717.01๐„ฝ โˆ’0.02% vs closeGLDx$410.74๐„ฝ +0.20% vs closeCOINx$191.83๐„ฝ โˆ’0.02% vs closeMSTRx$143.78๐„ฝ โˆ’0.09% vs closeHOODx$124.52๐„ฝ +0.17% vs closeCRCLx$102.38๐„ฝ โˆ’0.27% vs closePLTRx$183.58๐„ฝ +0.62% vs closeORCLx$152.91๐„ฝ โˆ’0.63% vs closeINTCx$91.58๐„ฝ +0.03% vs closeSPCXx$149.16๐„ฝ โˆ’0.16% vs closeMCDx$258.40๐„ฝ โˆ’0.47% vs closeGMEx$19.43๐„ฝ +0.68% vs close
all of it โ†’

Method

The rule is not a promise. It is a type.

โ€œAlways pass the session to the price componentโ€ is a convention, and a convention is a comment that compiles. Six weeks in, one route renders a raw number because it was quicker, and the terminal is doing the exact thing it was built to stop.

ยง1 ย  The shape

declare const ANCHOR_BRAND: unique symbol;   // never exported

export type Quoted = {
  readonly [ANCHOR_BRAND]: true;
  readonly perp: number;          // trades 168 hours a week
  readonly share: number | null;  // trades 32.5
  readonly session: Session;      // required, always
  readonly standing: Standing;    // derived, never passed in
};

export function quote(input: QuoteInput, session: Session): Quoted

The brand is keyed to a symbol declared in that module and never exported, so no object literal anywhere else can satisfy the type. quote() is the only door, and session is a required positional argument rather than a field on the input object โ€” because an optional field is a field somebody leaves out.

ยง2 ย  Four markings, and the two that must never merge

SOUNDING

the underlying was trading โ€” this figure has a live reference

THIN

pre or post market โ€” real trades, but no auction behind them

TACET

the underlying market was shut โ€” nothing confirms this figure

NO PART

no share price was returned โ€” there is nothing to lay it beside

A missing share price reads no part even while the exchange is open. A broken feed and a closed market are different failures, and collapsing them would hide the first behind the second every night โ€” which is the same substitution this terminal exists to object to, committed by the terminal itself.

ยง3 ย  What the type does not buy

A deliberate as unknown as Quoted defeats this, as it defeats every type in TypeScript. The escape hatch is left visible rather than argued about, and scripts/check-anchor.mjs greps for it โ€” so using it is a failing check instead of a silent one.

An enforcement claim that overstates itself is worse than none, because it stops people looking. What this closes is the accidental path and the convenient one, and the second is the one that actually happens.

ยง4 ย  The picture is held to the same rule

The score on the landing page is drawn from segmentsAcross(), which returns each barโ€™s fractional coverage measured by the same function the headline percentage comes from.

Sampling each hour at its midpoint instead would light seven bars for a six-and-a-half hour session, and the drawing would report a 20.8% week beside a printed 19.35%. Two pictures of one week, disagreeing, on a site about figures that disagree. A renderer is not exempt from the rule it is illustrating.