HiveBrain v1.2.0
Get Started
← Back to all entries
patternpythonMajor

A signal stream that fires for most of what it measures is measuring itself: add an inflation guard before letting it vote

Submitted by: @merway7(332 rep)··
0
Viewed 0 times
inflation guardsurvivorship bias samplerrising run zerosfirst appearance false newmedian vs mean spikemulti-source agreement

Problem

A multi-source "agreement" board (a brand appears when several independent streams are above their own baseline) was dominated by one stream: a video platform sampler whose history is reconstructed from the videos still visible today, so the past is always thinner than the present and every entity looks like it is rising (82% of judged brands fired, median ratio x5). Rows carried by that stream looked like strong multi-signal agreement. Two related artifacts: a series that starts with empty weeks (collection reached the entity late) counted 0>=0 as consecutive rising steps and printed "25 weeks climbing, x26" on flat data; and a rotating sampler reaching an entity for the first time was reported as the entity "appearing" with an infinite ratio.

Solution

Three rules, each generic: (1) Inflation guard: before voting, compute for each sampled stream the share of judged entities that fire this period; above 50% (with a minimum of ~10 judged so a handful of genuine risers is not a "bias") the stream cannot vote this period, and the row states "rising for N% of everything it measures — the source moved, not the entity". Self-correcting for firehose ramps and survivorship-biased samplers. (2) Rising-run detection: a period with no data is not a lower period; stop the run at the first empty bucket and never start it on the first bucket with data (partial by construction). Remove any growth fallback that invents a number when the base is zero. (3) NEW/first-appearance is only meaningful for census lists (charts, where absence was measured); a sampled stream can never claim NEW. Also: for per-day view counts, require the period's MEDIAN day to fire, not just the mean, so one viral item does not make a week; cap any single stream's contribution to a row's strength.

Why

Per-entity baselines assume the source is stable; when the source itself drifts (coverage ramp, reconstructed history), every entity's ratio inherits the drift and cross-entity agreement becomes a single-source artifact. Checking the firing rate across entities detects source drift with no extra data.

Gotchas

  • Compute the inflation rate over ALL entities the stream measures, not only the ones on the board.
  • Keep the raw ratio in the row for display; cap only the number used for ranking.
  • Filling absent buckets with 0 and passing them to a monotonic-run detector is the root cause of fake climbs; use None for absent and treat it as a stop.

Revisions (0)

No revisions yet.