Project SIMS

Technical report · Evaluation

What the cohort packs can and cannot do

Two measured results on the same evidence packs — one positive, one negative — and the control arms that make either of them interpretable.

Abstract

We evaluate whether compiled cohort evidence packs carry real information about real audiences, on two tasks with different structure. On forecasting — will a member receive reactions after a temporal cutoff — the pack scores 0.5600 balanced accuracy against 0.6440 for a trivial popularity rule. The pack loses. On attribution — which of two matched comments was written by a member of a named cohort — it scores 0.7500 [0.7169, 0.7804] against 0.4930 for a model told nothing about the cohort. We argue the difference is structural rather than contradictory: the forecasting outcome sits almost on top of a feature every arm can already see, so it rewards counting prior activity, whereas attribution is built so prior activity cannot help. Attribution is recognition, and recognition does not imply prediction. No cross-model replication has been validated, so nothing here should be quoted as a product accuracy figure.

01Why four arms, and why the trivial one runs first

An accuracy figure alone is uninterpretable. The question is never “how often is it right” but “how often is it right compared with the cheapest thing that could have produced the same answer”. So every evaluation runs four arms over identical items, and the trivial arm runs first, before any spend — because if a rule with no model in it clears the task, nothing that follows means anything.

ArmWhat it seesWhy it exists
AFull evidence pack — 8,025 chars medianThe thing under test
BCohort title and build provenance — 329 charsThe industry default: a name, not evidence
FNothing about the cohortCatches a regularity nobody thought to test for
TNo model at all — popularity, length, position, language, cohort sizeProves the framing does not leak the answer

Arm F matters most. Popularity and length are channels we thought of; F is the one that catches the channels we did not.

02Result 1 — attribution, and it is positive

Two real comments side by side. One was written by a member of cohort C. Which? The distractor is matched to the true comment on platform, language, like-count bucket, length band, and answer position is balanced exactly 50/50.

True commentby a member of cohort CDistractorby a member of another cohortMatched onplatformlanguagelike bucketlength bandModel + armsees A, B or FPick 1 or 2position 50/50Every matched attribute is a way to win without understanding the cohortEach is measured as its own null arm, with no model in the loop, before any spend.
Figure 1 — The attribution task. Prior activity cannot help: both comments already exist, and every attribute that could substitute for cohort knowledge is matched away and then measured as its own control.
chanceA — evidence pack8,025 chars of compiled evidence0.7500B — title only329 chars: name and provenance0.6417F — no cohortthe question asked cold0.4930T — popularitypick the more-liked comment0.4861T — lengthpick the longer comment0.50000.400.500.600.700.80
Figure 2 — Attribution, run attr-v4: 720 matched pairs across 120 creator cohorts. A’s interval does not overlap B’s, and every null sits on chance. Paired by cohort, the unit of independence: A beats B 60/17/43, p = 8.9e-07; A beats F 90/14/16, p = 9.2e-15.

Three things follow, in order of importance. The framing leaks nothing — every null, including a model given no cohort information at all, is at chance. Naming the cohort is worth something: 329 characters of title and provenance reach 0.6417. And the compiled evidence is worth substantially more than the name, with the intervals separated. The advantage is broad rather than driven by a few cohorts: mean per-cohort delta +0.108, median +0.083, and arm A falls below chance in 3 of 120 cohorts against 20 for B and 46 for F.

Two controls that cannot fail, and so are not evidence

The reported same-language rate of 1.0 is tautological — language is part of the match key, so it could not come out otherwise. T_language is likewise circular: with language matched its tie-branch always fires, making it arithmetically identical to T_first. The real evidence that the language channel closed is external — a modal-language oracle scored 0.7236 on the unmatched bank and exactly 0.5000 on this one.

03Result 2 — forecasting, and it is negative

The same packs, on the task the product actually sells: prediction. A temporal split at 1 May 2026. Packs are recompiled strictly from content published before the cutoff; membership comes from before it; the label comes from after it.

cutoff · 2026-05-01Everything the model may seepack recompiled from pre-cutoff content · membership · prior comment countsThe label onlydid this member receive reactions after the cutoff?Why the trivial rule wins hereThe outcome sits almost on top of a pre-cutoff feature: “received reactionsbefore” predicts “receives them after” — activity persistence, not audience psychology.
Figure 3 — The leak-controlled backtest. The split is honest; the task is the problem. Negatives are true zeros drawn from the same pre-split pool, not accounts merely absent from a top-N list.
chanceT — popularity ruledrew comments before, so will after0.6440B — demographic onlya name, no evidence0.5968F — no personathe question asked cold0.5823A — evidence packthe thing under test0.5600T — majority classanswered yes to everything0.50000.400.500.600.70
Figure 4 — Leak-controlled backtest, run 478f3ef4: 500 items across 304 cohorts. In the earlier run 494ec8dc both B and F collapsed to a constant, so no margin over them meant anything; here they discriminate (0.500 → 0.597 and 0.582) and the comparison is finally interpretable. Arm A comes last of the four non-degenerate arms — below the popularity rule and below both controls. Paired across cohorts it loses to B 68–84 (p = 0.22) and to F 75–83 (p = 0.58): behind, though not significantly so at this sample size.

Why the trivial rule is so strong here: the outcome sits close to the feature. “Did this member receive reactions after May” tracks “how many did they receive before”. That is persistence of activity, not audience psychology. The task is a weak test of what a pack is for and a strong test of whether the harness is honest. It passed the second one. At n = 500 against roughly 1,570 needed to detect a five-point effect at 80% power, this null is underpowered rather than absent.

04Result 3 — the abstention channel is anti-informative

Arm A was offered “insufficient evidence” as a third outcome, then the forced-choice arm was scored on exactly the items it had declined.

MeasureValue
Answer rate0.967513 of 400 declined
Forced-choice accuracy on answered items0.5375
Forced-choice accuracy on declined items0.6154higher
Abstention informativeness−0.0779wrong sign

It declines on the questions it would have got right. Acting on that channel would remove the model’s better predictions, so it must not ship. Only 13 declines, so the direction is clear and the magnitude is not. Separately, confidence is monotonic against accuracy across all four bins — 0.500, 0.521, 0.571, 1.000 — and is worth surfacing even though the binary decline is not.

Read the method before you trust the number.

If you want the full report — including the run that was thrown away after a leakage bug invalidated it — ask.