Reconciliation
Many parties say things about one event: its producer, sources CastHQ watches, members, agents. Each statement is a claim. CastHQ never overwrites a claim and never deletes one; it picks which claim each fact shows, records the pick as a change, and keeps the rest visible.
Claims
A claim asserts one fact (schedule, status, title, location,
links) about one event, with:
- an origin, from the claimant's standing on that event, not from who
they are in general:
producer(the party the event belongs to),observed(a witness: a watched source, a member, an agent without standing) oradmin(CastHQ, ruling on a conflict); - the time it was observed;
- optionally an evidence link (
source_url) and the hash of the page CastHQ fetched and read; - optionally the claim it supersedes: a party correcting itself.
Claims are append-only. A correction is a new claim.
Picking the winner
For each fact, among the claims nobody has superseded, the winner is the first by:
- origin:
adminoverproduceroverobserved; - then recency: the most recently observed;
- then the claimant's own stated confidence, which only breaks ties within one origin at one instant.
A weaker origin never outranks a stronger one, however recent or however many say it. The winner's value is what every surface shows, and moving it writes one change, in the same transaction as the claim. A claim that loses writes no change of its own, but can open a dispute (below) and can move the fact's confidence.
Precision
A date is a window with a precision (datetime, day, month, quarter,
half, season, year, window, tba), never a made-up day. A schedule
change is classified as scheduled (a first date), moved_earlier,
moved_later, narrowed (the window shrank inside the old one), widened
or undated, and carries delta in seconds. Surfaces never state a date
more precise than its precision.
Disputes
A party disputes a fact when its latest claim:
- differs from the value shown,
- comes from a different party than the winner (a party revising itself is a correction, not a dispute),
- is not superseded, and
- carries an http(s) evidence link.
When a party starts disputing, CastHQ writes a dispute change with
semantic opened; when it stops (it came round, it won, or a new winner
agrees with it), resolved. A party already disputing that changes its
value is still one dispute. While a dispute is open and CastHQ has not
ruled, the fact's confidence is disputed. An admin ruling settles it.
Open disputes are listed as contested on the status answer. Never present
a contested value as the date.
Confirmation, in words
The status answer says, for each fact, who the shown value rests on:
confirmation |
The winning claim |
|---|---|
producer_confirmed |
the producer's |
admin_ruled |
CastHQ's ruling |
observed |
a watched source's |
community_reported |
a member's, with no watched source |
unclaimed |
nobody's: the registry's default |
Say which when repeating a value: "confirmed by the producer", or "reported by {source}, not confirmed by the producer".
Guarantees
- Every change is ordered: the feed cursor never skips a committed change.
- Every change names the claim that caused it, with its provenance, and can be verified against CastHQ's published keys.
- The same claims give the same winner, the same changes and the same confidence. Rules that could move a level are versioned, and a rule change that moves one is itself recorded as a change.