RICE Framework with AI: How Accurate Is the Math?

RICE prioritization means scoring a backlog on reach, impact, confidence and effort, then ranking it.

Every figure here is from the main runs and the skill runs of this job and is read from the committed results file.

What we found

Five of the seven models got the RICE arithmetic right on at least nine rows in ten with no help. They were Claude Opus 5 in Claude Code, Claude Sonnet 5 in Claude Code, Claude Fable 5.1 in Claude Code, Claude Opus 5.5 in Claude Code and Gemini 3.1 Flash Lite through the API.

Claude Haiku 4.5 in Claude Code got 7 of 22 rows right on a 25-row backlog. GPT-5 mini through the API got 7 of 12 rows right on a 15-row backlog.

The differences are in catching bad data.

Claude Opus 5, Claude Sonnet 5, Claude Haiku 4.5, Claude Fable 5.1, Claude Opus 5.5 and Gemini 3.1 Flash Lite caught the missing confidence and the odd unit nearly every time. GPT-5 mini caught them in 4 of 50 backlogs and 5 of 50 backlogs.

The duplicate row told them apart. Claude Opus 5.5 caught it in 46 of 50 backlogs, Claude Fable 5.1 in 40, Claude Opus 5 in 29, Claude Sonnet 5 in 3, and Claude Haiku 4.5, GPT-5 mini and Gemini 3.1 Flash Lite in none.

Loading a skill from a public catalog, measured against no help, went like this.

Claude Opus 5: no measured difference with product manager toolkit and feature prioritization assistant; a loss too small to be sure of with define prioritization framework.

Claude Sonnet 5: no measured difference with every skill.

Claude Haiku 4.5: a gain too small to be sure of with every skill.

GPT-5 mini: no measured difference with product manager toolkit and feature prioritization assistant; no score with define prioritization framework (it asked for a value before scoring on 45 of 50 answers).

Gemini 3.1 Flash Lite: no measured difference with product manager toolkit and feature prioritization assistant; a loss too small to be sure of with define prioritization framework.

Against the one plain sentence, no skill did better on any model. Define prioritization framework on Claude Opus 5 and define prioritization framework on Gemini 3.1 Flash Lite did worse.

Claude Fable 5.1 and Claude Opus 5.5 got no skill runs: nothing left to measure on the trial round.

What to do about it

  • On Claude Opus 5, Claude Sonnet 5, Claude Fable 5.1, Claude Opus 5.5 and Gemini 3.1 Flash Lite, trust the arithmetic.
  • Gemini 3.1 Flash Lite's misses sit in one backlog, where it got 26 of 37 rows right every time it was asked. Do not read its average as the same on every backlog.
  • On Claude Haiku 4.5 and GPT-5 mini, check every score.
  • No model caught the duplicate every time, so check for duplicates yourself whichever you use.
  • Telling the model what kind of task it is helped Claude Haiku 4.5 (+4 rows per backlog, a gain too small to be sure of). It made no measured difference on Claude Opus 5, Claude Sonnet 5, Claude Fable 5.1, Claude Opus 5.5, GPT-5 mini and Gemini 3.1 Flash Lite.
  • Do not load one of these skills for this job: none did better than the one plain sentence on any model, and two did worse.

What the test does

Four boxes joined by arrows, top to bottom. The counts in each step are listed under the picture.1. Backlog inreach, impact, confidence, effort2. Model scores itno help, one sentence, or a skill3. Bad data flagged, guessed or droppedflagged2,956guessed1,318dropped764. Ranked list outscore and rank per row
  1. Backlog in. A backlog of 40, 25 or 15 rows with reach, impact, confidence and effort on every row, and three planted problems nothing points at.
  2. Model scores it. Seven models, 1450 answers in all, each asked for a RICE score and rank per row: with no help, with one plain sentence, and on five of them with a skill loaded.
  3. Bad data flagged, guessed or dropped. 2956 of 4350 planted problems were flagged; 1318 were scored as if fine, and 76 were left out without a word.
  4. Ranked list out. Every score checked against exact arithmetic; 1450 of 1450 answers re-scored to the same result.

Which model for this job

Each pick is made inside one test method, among models given the same size of backlog, from what they did with no help.

In Claude Code

Claude Fable 5.1 got the most rows right (37 of 37 rows); Claude Opus 5.5 is too close to call against it. Claude Opus 5.5 is the cheapest of those, at $0.05680 a backlog (CLI-reported estimate, not billed). Claude Haiku 4.5 was tested on an easier backlog and is not ranked against these.

ModelBacklogRows right with no helpCost per backlogStanding
Claude Opus 540-row backlog36 of 37 rows$0.04838 CLI-reported estimate, not billedBehind the best
Claude Sonnet 540-row backlog36 of 37 rows$0.03668 CLI-reported estimate, not billedBehind the best
Claude Haiku 4.525-row backlog7 of 22 rows$0.00441 CLI-reported estimate, not billedNot ranked: easier backlog
Claude Fable 5.140-row backlog37 of 37 rows$0.15076 CLI-reported estimate, not billedBest
Claude Opus 5.540-row backlog37 of 37 rows$0.05680 CLI-reported estimate, not billedToo close to call against the best Cheapest within range of the best

Via API

Each model was given backlogs at its own level of difficulty, so no one model is ranked first.

ModelBacklogRows right with no helpCost per backlogStanding
GPT-5 mini15-row backlog7 of 12 rows$0.00061 billed at vendor list priceNot ranked: easier backlog
Gemini 3.1 Flash Lite40-row backlog34 of 37 rows$0.00194 billed at vendor list priceNot ranked: easier backlog

How each model did with no help

Rows right is the share of the backlog scored to the exact RICE figure, said as rows of the backlog less its three planted rows. Problems flagged counts the three planted problems over every answer. The same backlog was asked five times; the last column counts the backlogs that got the same score every time.

In Claude Code

ModelBacklogRows rightTop five rightRows it scoredStopped to ask for a scriptProblems flaggedSame score five timesCost per backlog
Claude Opus 540-row backlog36 of 37 rows 97.3%4.8 of 536.6 of 371 of 50 backlogs129 of 150 problems1 of 10 backlogs$0.04838 CLI-reported estimate, not billed
Claude Sonnet 540-row backlog36 of 37 rows 96.2%5.0 of 536.9 of 370 of 50 backlogs102 of 150 problems1 of 10 backlogs$0.03668 CLI-reported estimate, not billed
Claude Haiku 4.525-row backlog7 of 22 rows 32.1%3.5 of 522.0 of 220 of 50 backlogs100 of 150 problems0 of 10 backlogs$0.00441 CLI-reported estimate, not billed
Claude Fable 5.140-row backlog37 of 37 rows 100.0%4.9 of 536.1 of 370 of 50 backlogs140 of 150 problems10 of 10 backlogs$0.15076 CLI-reported estimate, not billed
Claude Opus 5.540-row backlog37 of 37 rows 99.9%5.0 of 537.0 of 370 of 50 backlogs146 of 150 problems9 of 10 backlogs$0.05680 CLI-reported estimate, not billed

Via API

ModelBacklogRows rightTop five rightRows it scoredStopped to ask for a scriptProblems flaggedSame score five timesCost per backlog
GPT-5 mini15-row backlog7 of 12 rows 56.8%4.2 of 511.9 of 120 of 50 backlogs9 of 150 problems0 of 10 backlogs$0.00061 billed at vendor list price
Gemini 3.1 Flash Lite40-row backlog34 of 37 rows 92.7%4.2 of 537.0 of 370 of 50 backlogs95 of 150 problems10 of 10 backlogs$0.00194 billed at vendor list price

Exact-score accuracy alone does not say a model got RICE right; the trap outcomes publish beside it on every row (rice sections 5 and 10).

An answer that stopped short and deferred the arithmetic to running a script or code, with only a sample or partial table, is published as its own descriptive outcome, beside the accuracy it scored, per model, arm and pin, on every arm. A low accuracy on such an answer is a model that stopped to ask for a tool, not wrong arithmetic.

Catching bad data

Every backlog hides three problems, and nothing in the task says so. One item has no confidence figure, one item's effort is written in a different unit, and one item is listed twice under different wording. A model can flag the problem, guess past it as if the data were fine, or drop the row without a word.

In Claude Code, with no help

ModelCaught the missing confidenceCaught the odd unitCaught the duplicate
Claude Opus 550 of 50 backlogs guessed 0, dropped 050 of 50 backlogs guessed 0, dropped 029 of 50 backlogs guessed 21, dropped 0
Claude Sonnet 550 of 50 backlogs guessed 0, dropped 049 of 50 backlogs guessed 1, dropped 03 of 50 backlogs guessed 47, dropped 0
Claude Haiku 4.550 of 50 backlogs guessed 0, dropped 050 of 50 backlogs guessed 0, dropped 00 of 50 backlogs guessed 50, dropped 0
Claude Fable 5.150 of 50 backlogs guessed 0, dropped 050 of 50 backlogs guessed 0, dropped 040 of 50 backlogs guessed 10, dropped 0
Claude Opus 5.550 of 50 backlogs guessed 0, dropped 050 of 50 backlogs guessed 0, dropped 046 of 50 backlogs guessed 4, dropped 0

Via API, with no help

ModelCaught the missing confidenceCaught the odd unitCaught the duplicate
GPT-5 mini4 of 50 backlogs guessed 45, dropped 15 of 50 backlogs guessed 43, dropped 20 of 50 backlogs guessed 50, dropped 0
Gemini 3.1 Flash Lite50 of 50 backlogs guessed 0, dropped 045 of 50 backlogs guessed 5, dropped 00 of 50 backlogs guessed 50, dropped 0

The duplicate, by model family

Duplicate-trap results are published split by model family, with the Claude-style drafting note next to the Claude figures, not footnoted.

Anthropic (Claude)

The duplicate rows' second wordings are also drafted in a Claude-family style, and spotting the duplicate is a scored trap, so for that trap the effect need not be small.

ModelBacklogCaught with no helpCaught with one plain instructionCaught with product manager toolkit loadedCaught with feature prioritization assistant loadedCaught with define prioritization framework loaded
Claude Opus 540-row backlog29 of 50 backlogs38 of 50 backlogs32 of 50 backlogs29 of 50 backlogs31 of 50 backlogs
Claude Sonnet 540-row backlog3 of 50 backlogs10 of 50 backlogs4 of 50 backlogs1 of 50 backlogs1 of 50 backlogs 3 of 50 backlogs under the earlier reading
Claude Haiku 4.525-row backlog0 of 50 backlogs0 of 50 backlogs0 of 50 backlogs1 of 50 backlogs1 of 50 backlogs
Claude Fable 5.140-row backlog40 of 50 backlogs47 of 50 backlogsnot runnot runnot run
Claude Opus 5.540-row backlog46 of 50 backlogs50 of 50 backlogsnot runnot runnot run
All Anthropic (Claude) answers118 of 250145 of 25036 of 15031 of 15033 of 150 35 of 150 under the earlier reading

counts summed over the family's published cells, one instrument per family here; a count, never a rate for a verdict and never a ranking (R27)

OpenAI

ModelBacklogCaught with no helpCaught with one plain instructionCaught with product manager toolkit loadedCaught with feature prioritization assistant loadedCaught with define prioritization framework loaded
GPT-5 mini15-row backlog0 of 50 backlogs5 of 50 backlogs0 of 50 backlogs5 of 50 backlogs5 of 50 backlogs
All OpenAI answers0 of 505 of 500 of 505 of 505 of 50

counts summed over the family's published cells, one instrument per family here; a count, never a rate for a verdict and never a ranking (R27)

Google

ModelBacklogCaught with no helpCaught with one plain instructionCaught with product manager toolkit loadedCaught with feature prioritization assistant loadedCaught with define prioritization framework loaded
Gemini 3.1 Flash Lite40-row backlog0 of 50 backlogs5 of 50 backlogs0 of 50 backlogs0 of 50 backlogs0 of 50 backlogs
All Google answers0 of 505 of 500 of 500 of 500 of 50

counts summed over the family's published cells, one instrument per family here; a count, never a rate for a verdict and never a ranking (R27)

A duplicate counts as caught when the answer names the row with a word from a fixed list. That list was widened by four phrasings ("same work", "duplication", "deduplicate" and "identical to") after the trial round's answers were read and before any main run. In the trial round the wider list moved: Claude Fable 5.1 with no help, 5 of 10 backlogs caught to 7 of 10 backlogs; Claude Opus 5.5 with no help, 7 of 10 backlogs caught to 9 of 10 backlogs; Claude Opus 5.5 with one plain instruction, 9 of 10 backlogs caught to 10 of 10 backlogs; Gemini 3.1 Flash Lite with one plain instruction, 0 of 10 backlogs caught to 1 of 10 backlogs. Every duplicate figure on this page is under the wider list.

Duplicate-trap flag rates are published under both lexicons, the job document's original and the amended one, as counts over trap outcomes, so a reader can see what the amendment moved.

One plain sentence about the task

Each model was also asked with one sentence added, saying this is a backlog prioritization task to be done to a professional standard. The difference is in rows right per backlog, with the range it could take on another run.

ModelRows right, no helpRows right, with the sentenceDifferenceWhat we found
Claude Opus 536 of 37 rows36 of 37 rows 35 of 37 rows under the earlier readingno change could be -2 rows to +1 rows -1 rows under the earlier readingNo measured effect
Claude Sonnet 536 of 37 rows35 of 37 rowsno change could be -1 rows to +1 rowsNo measured effect
Claude Haiku 4.57 of 22 rows11 of 22 rows+4 rows could be +1 rows to +7 rowsSeemed to help a little, but too small to be sure of
Claude Fable 5.137 of 37 rows37 of 37 rowsno change could be no change to no changeCould not measure
Claude Opus 5.537 of 37 rows37 of 37 rowsno change could be no change to no changeCould not measure
GPT-5 mini7 of 12 rows8 of 12 rows+1 rows could be no change to +1 rowsNo measured effect
Gemini 3.1 Flash Lite34 of 37 rows34 of 37 rowsno change could be -2 rows to +2 rowsNo measured effect
  • Claude Opus 5: no measured difference with the sentence (no change, which could be -2 rows to +1 rows on another run).
  • Claude Sonnet 5: no measured difference with the sentence (no change, which could be -1 rows to +1 rows on another run).
  • Claude Haiku 4.5 got +4 rows per backlog right with the sentence. It seemed to help a little, but the gain is too small to be sure of.
  • Claude Fable 5.1 was at the top with and without the sentence, so there was nothing for the sentence to change.
  • Claude Opus 5.5 was at the top with and without the sentence, so there was nothing for the sentence to change.
  • GPT-5 mini: no measured difference with the sentence (+1 rows, which could be no change to +1 rows on another run).
  • Gemini 3.1 Flash Lite: no measured difference with the sentence (no change, which could be -2 rows to +2 rows on another run).

Skills from public catalogs

Three skills written for this job were pinned from public catalogs. Each was loaded into the model and the same backlogs asked again, so the skill is measured against no help and against the one plain sentence. Which models got skill runs was decided on a trial round, and the decision and its figures are beside each model below.

ModelSkill runsHow that was decided
Claude Opus 5Skill runs doneThe decision to run skills on Claude Opus 5 was taken on the trial round, under a rule widened after that round was read: a model gets skill runs if it was under 90% on rows right or under 90% on problems flagged. In the trial round Claude Opus 5 got 31 of 37 rows right and flagged 25 of 30 problems. In the main runs it got 36 of 37 rows right and flagged 129 of 150 problems; those figures decide nothing.
Claude Sonnet 5Skill runs doneThe decision to run skills on Claude Sonnet 5 was taken on the trial round, under a rule widened after that round was read: a model gets skill runs if it was under 90% on rows right or under 90% on problems flagged. In the trial round Claude Sonnet 5 got 36 of 37 rows right and flagged 19 of 30 problems. In the main runs it got 36 of 37 rows right and flagged 102 of 150 problems; those figures decide nothing.
Claude Haiku 4.5Skill runs doneThe decision to run skills on Claude Haiku 4.5 was taken on the trial round, under a rule widened after that round was read: a model gets skill runs if it was under 90% on rows right or under 90% on problems flagged. In the trial round Claude Haiku 4.5 got 5 of 22 rows right and flagged 20 of 30 problems. In the main runs it got 7 of 22 rows right and flagged 100 of 150 problems; those figures decide nothing.
Claude Fable 5.1Nothing left to measureThe decision to run skills on Claude Fable 5.1 was taken on the trial round, under a rule widened after that round was read: a model gets skill runs if it was under 90% on rows right or under 90% on problems flagged. In the trial round Claude Fable 5.1 got 37 of 37 rows right and flagged 27 of 30 problems under the wider wording list for the duplicate (25 of 30 problems under the list as first written). Under the list as first written it would have had room on problems flagged, and skill runs; the wider list put it at the 90% line, and it got none. In the main runs it got 37 of 37 rows right and flagged 140 of 150 problems; those figures decide nothing.
Claude Opus 5.5Nothing left to measureThe decision to run skills on Claude Opus 5.5 was taken on the trial round, under a rule widened after that round was read: a model gets skill runs if it was under 90% on rows right or under 90% on problems flagged. In the trial round Claude Opus 5.5 got 37 of 37 rows right and flagged 29 of 30 problems under the wider wording list for the duplicate (27 of 30 problems under the list as first written). In the main runs it got 37 of 37 rows right and flagged 146 of 150 problems; those figures decide nothing.
GPT-5 miniSkill runs doneThe decision to run skills on GPT-5 mini was taken on the trial round, under a rule widened after that round was read: a model gets skill runs if it was under 90% on rows right or under 90% on problems flagged. In the trial round GPT-5 mini got 7 of 12 rows right and flagged 5 of 30 problems. In the main runs it got 7 of 12 rows right and flagged 9 of 150 problems; those figures decide nothing.
Gemini 3.1 Flash LiteSkill runs doneThe decision to run skills on Gemini 3.1 Flash Lite was taken on the trial round, under a rule widened after that round was read: a model gets skill runs if it was under 90% on rows right or under 90% on problems flagged. In the trial round Gemini 3.1 Flash Lite got 34 of 37 rows right and flagged 19 of 30 problems. In the main runs it got 34 of 37 rows right and flagged 95 of 150 problems; those figures decide nothing.

The skill-arm cells were fixed from calibration run 2 under the amended headroom rule; the main run's none-arm figures are reported beside that reading and decide nothing (amendment section 12).

The skill-arm cells were fixed from calibration run 2 under two rules amended after that run's answers were read and before any main run: the headroom rule (room on accuracy or on flag rate, in place of accuracy alone) and the duplicate lexicon (four entries added to the fixed lexicon of the job document). Each verdict that rests on them says so beside the verdict, not in a fold, with the calibration figure it was decided on and the main run's own none-arm figure next to it.

The headroom table shows counts, not rates alone, and shows Fable 5.1 as borderline: none-arm flag rate 0.900, 27 of 30 outcomes, exactly at the threshold under the amended lexicon (25 of 30 under the original), beside Opus 5.5 at 0.967 (29 of 30). It states that the main runs independently support both exclusions: on the main data, Fable 5.1's none arm is at 1.000 accuracy and 0.933 flag rate, and Opus 5.5's at 0.999 and 0.973.

Each card below is one skill. Rows right is with the skill loaded; the two verdicts beside it compare that with no help and with the one plain sentence. The last column asks whether the one plain sentence got at least half of whatever the skill got.

  • product manager toolkit

    Pinned from alirezarezvani/claude-skills at product-team/skills/product-manager-toolkit, MIT.

    This skill ships scripts/rice_prioritizer.py and scripts/customer_interview_analyzer.py, which no arm receives, so its verdict is on the skill's text and references only. A skill card whose skill expects scripts (the pin's displayNote says it ships scripts that no arm receives) carries a one-line note that the result measures the skill's text alone: the instrument runs with no tools, and the pin injects the skill's text and references only.

    ModelResultStopped to ask for a scriptOne sentence gets most of it?
    Claude Opus 535 of 37 rows against no help: No measured effect against the sentence: No measured effect3 of 50 backlogsYes
    Claude Sonnet 536 of 37 rows against no help: No measured effect against the sentence: No measured effect1 of 50 backlogsNo
    Claude Haiku 4.511 of 22 rows against no help: Seemed to help a little, but too small to be sure of against the sentence: No measured effect0 of 50 backlogsYes
    Claude Fable 5.1Nothing left to measure
    Claude Opus 5.5Nothing left to measure
    GPT-5 mini7 of 12 rows against no help: No measured effect against the sentence: No measured effect0 of 50 backlogsYes
    Gemini 3.1 Flash Lite34 of 37 rows against no help: No measured effect against the sentence: No measured effect0 of 50 backlogsNo
    • Claude Opus 5: no measured difference with the skill loaded (-1 rows, which could be -2 rows to +1 rows on another run).
    • Claude Sonnet 5: no measured difference with the skill loaded (no change, which could be -1 rows to +1 rows on another run).
    • Claude Haiku 4.5 got +4 rows per backlog right with the skill loaded. It seemed to help a little, but the gain is too small to be sure of.
    • GPT-5 mini: no measured difference with the skill loaded (+1 rows, which could be -1 rows to +2 rows on another run).
    • Gemini 3.1 Flash Lite: no measured difference with the skill loaded (-1 rows, which could be -3 rows to +2 rows on another run).
  • feature prioritization assistant

    Pinned from pmprompt/claude-plugin-product-management at skills/feature-prioritization-assistant, MIT.

    ModelResultStopped to ask for a scriptOne sentence gets most of it?
    Claude Opus 536 of 37 rows against no help: No measured effect against the sentence: No measured effect2 of 50 backlogsYes
    Claude Sonnet 536 of 37 rows against no help: No measured effect against the sentence: No measured effect0 of 50 backlogsNo
    Claude Haiku 4.510 of 22 rows against no help: Seemed to help a little, but too small to be sure of against the sentence: No measured effect0 of 50 backlogsYes
    Claude Fable 5.1Nothing left to measure
    Claude Opus 5.5Nothing left to measure
    GPT-5 mini8 of 12 rows against no help: No measured effect against the sentence: No measured effect0 of 50 backlogsYes
    Gemini 3.1 Flash Lite34 of 37 rows against no help: No measured effect against the sentence: No measured effect0 of 50 backlogsNot defined the skill lift is zero, so the ratio is undefined
    • Claude Opus 5: no measured difference with the skill loaded (no change, which could be -2 rows to +1 rows on another run).
    • Claude Sonnet 5: no measured difference with the skill loaded (+1 rows, which could be -1 rows to +2 rows on another run).
    • Claude Haiku 4.5 got +3 rows per backlog right with the skill loaded. It seemed to help a little, but the gain is too small to be sure of.
    • GPT-5 mini: no measured difference with the skill loaded (+1 rows, which could be no change to +2 rows on another run).
    • Gemini 3.1 Flash Lite: no measured difference with the skill loaded (no change, which could be -2 rows to +2 rows on another run).
  • define prioritization framework

    Pinned from product-on-purpose/pm-skills at skills/define-prioritization-framework, Apache-2.0.

    ModelResultStopped to ask for a scriptOne sentence gets most of it?
    Claude Opus 532 of 37 rows against no help: Seemed to do a little worse, but too small to be sure of against the sentence: Seemed to do a little worse, but too small to be sure of8 of 50 backlogsNo
    Claude Sonnet 536 of 37 rows 35 of 37 rows under the earlier reading against no help: No measured effect against the sentence: No measured effect0 of 50 backlogsNo
    Claude Haiku 4.511 of 22 rows against no help: Seemed to help a little, but too small to be sure of against the sentence: No measured effect0 of 50 backlogsYes
    Claude Fable 5.1Nothing left to measure
    Claude Opus 5.5Nothing left to measure
    GPT-5 miniGPT-5 mini with define prioritization framework loaded asked for a value before scoring on 45 of 50 answers and gave 5 outside the requested format. So 5 of 10 backlogs never got a score and no rows-right figure is given.not readNot defined an arm is withheld
    Gemini 3.1 Flash Lite33 of 37 rows against no help: Seemed to do a little worse, but too small to be sure of against the sentence: Seemed to do a little worse, but too small to be sure of0 of 50 backlogsNo
    • Claude Opus 5 got -4 rows per backlog right with the skill loaded. It seemed to do a little worse, but the loss is too small to be sure of.
    • Claude Sonnet 5: no measured difference with the skill loaded (no change, which could be no change to +1 rows on another run).
    • Claude Haiku 4.5 got +4 rows per backlog right with the skill loaded. It seemed to help a little, but the gain is too small to be sure of.
    • GPT-5 mini with define prioritization framework loaded asked for a value before scoring on 45 of 50 answers and gave 5 outside the requested format. So 5 of 10 backlogs never got a score and no rows-right figure is given.
    • Gemini 3.1 Flash Lite got -2 rows per backlog right with the skill loaded. It seemed to do a little worse, but the loss is too small to be sure of.

For agents

The same findings as data, at /jobs/rice-prioritization.json. Route by job on this evidence, refuse jobs it does not measure, and never pool two test methods.

Job
RICE prioritization: rICE prioritization means scoring a backlog on reach, impact, confidence and effort, then ranking it.
Test methods
In Claude Code; Via API. Codex: not tested, see above.
Use when
On Claude Opus 5, Claude Sonnet 5, Claude Fable 5.1, Claude Opus 5.5 and Gemini 3.1 Flash Lite, trust the arithmetic.
Skip when
On Claude Haiku 4.5 and GPT-5 mini, check every score.
Evidence
700 answers from the main runs and 750 from the skill runs, every one re-scored from its raw text to the same figure; records at the paths under How this was tested.
Last run
Read from the answers file when it is on the checkout; otherwise stated in the data as not read.
How this was tested

Levels: t1 is a 15-row backlog, t2 25 rows, t3 40 rows; each model ran at the level its trial round selected. Arms: none (the bare task), instruction (one neutral sentence), skill (a pinned skill loaded). Cells: 10 items x 5 passes per arm. Instruments: claude-cli and api, never pooled.

Every cell behind the figures above, with the registered metrics at full precision, under the corrected table rule.
ModelInstrumentTierArmExact-score accuracyKendall tauTop-5 overlapFlag rateIdentical itemsOrbit
Claude Opus 5claude-codet3none0.9730.9050.9520.8601 of 10
Claude Opus 5claude-codet3instruction0.9620.9560.9640.9202 of 10In free drift
Claude Opus 5claude-codet3skill: alirezarezvani-product-manager-toolkit0.9550.9250.9430.8802 of 10In free drift
Claude Opus 5claude-codet3skill: pmprompt-feature-prioritization-assistant0.9600.8970.9200.8602 of 10In free drift
Claude Opus 5claude-codet3skill: product-on-purpose-define-prioritization-framework0.8540.9380.9300.8730 of 10In free drift
Claude Sonnet 5claude-codet3none0.9620.9760.9960.6801 of 10
Claude Sonnet 5claude-codet3instruction0.9590.9780.9880.7330 of 10In free drift
Claude Sonnet 5claude-codet3skill: alirezarezvani-product-manager-toolkit0.9700.9790.9800.6932 of 10In free drift
Claude Sonnet 5claude-codet3skill: pmprompt-feature-prioritization-assistant0.9790.9860.9880.6733 of 10In free drift
Claude Sonnet 5claude-codet3skill: product-on-purpose-define-prioritization-framework0.9750.9860.9840.6732 of 10In free drift
Claude Haiku 4.5claude-codet2none0.3210.5810.7040.6670 of 10
Claude Haiku 4.5claude-codet2instruction0.5100.6660.7720.6601 of 10In free drift
Claude Haiku 4.5claude-codet2skill: alirezarezvani-product-manager-toolkit0.4940.5920.6920.6470 of 10In free drift
Claude Haiku 4.5claude-codet2skill: pmprompt-feature-prioritization-assistant0.4670.5760.6800.6670 of 10In free drift
Claude Haiku 4.5claude-codet2skill: product-on-purpose-define-prioritization-framework0.5080.6210.7580.6730 of 6In free drift
Claude Fable 5.1claude-codet3none1.0001.0000.9760.93310 of 10
Claude Fable 5.1claude-codet3instruction1.0001.0000.9920.98010 of 10Unobservable
Claude Opus 5.5claude-codet3none0.9991.0001.0000.9739 of 10
Claude Opus 5.5claude-codet3instruction1.0001.0001.0000.98710 of 10Unobservable
GPT-5 miniapit1none0.5680.6880.8440.0600 of 10
GPT-5 miniapit1instruction0.6270.7150.8640.3130 of 10In free drift
GPT-5 miniapit1skill: alirezarezvani-product-manager-toolkit0.6180.6750.8520.1930 of 10In free drift
GPT-5 miniapit1skill: pmprompt-feature-prioritization-assistant0.6500.6990.8640.4270 of 10In free drift
GPT-5 miniapit1skill: product-on-purpose-define-prioritization-frameworkwithheld: no answer that scored on item-01, item-02, item-04, item-07, item-08
Gemini 3.1 Flash Liteapit3none0.9270.6860.8400.63310 of 10
Gemini 3.1 Flash Liteapit3instruction0.9300.6660.7600.66710 of 10In free drift
Gemini 3.1 Flash Liteapit3skill: alirezarezvani-product-manager-toolkit0.9110.6970.7200.53310 of 10In free drift
Gemini 3.1 Flash Liteapit3skill: pmprompt-feature-prioritization-assistant0.9270.6980.7600.53310 of 10In free drift
Gemini 3.1 Flash Liteapit3skill: product-on-purpose-define-prioritization-framework0.8810.7140.7800.66710 of 10In free drift

The record

  • Results file: harness/src/pm-wave-1/main-1a-analysis.ts wrote it from harness/results/pm-wave-1/stage-1a-i-main/records.jsonl (sha256 42d3c803898908805a8df31d6c01d38607bfe687b50a9aeb4f522ac74f6f9fb1), 700 records, 700 valid, and from harness/results/pm-wave-1/stage-1a-i-skill/records.jsonl (sha256 0a6e1de54a6562208003debf2f549e1b0b24e4e8d25ea9ff7a0de1c8950423fd), 900 records, 750 valid.
  • Rescore check: 700 of 700 stored main-run scores identical when re-scored from the raw output; 750 of 750 skill-run scores.
  • Scoring: every valid record re-scored from its raw output by the scorer at this commit under the corrected table rule (amendment 1a-i-review-fixes section 4: the last table naming more than half of S, else the largest), which is primary, with asked before answering and the amended duplicate lexicon of amendment 1a-i-main-run-conditions; any figure that differs under the rule in force at main-run time (the plain last table, under which the stored scores were written) carries that figure beside it; rescoreCheck holds the stored scores against a re-score under that rule
  • Verdict rule: lib/verdict/rule.ts, status_v1 classify, called by the page on each lift's scale, baselineMean, treatmentMean, delta and halfWidth when it reads this record; no verdict word is stored here (cohort 11.2: called and not reproduced) Interval: 1.96 * sd(per-item differences of per-item arm means) / sqrt(pairs), as lib/skills/cells.ts computes it.
  • Billed: $0.2691 in all for the main runs and $0.8723 for the skill runs.
  • Skill phase: 900 records, 750 valid.

Limits

  • Instruments are never pooled, averaged or subtracted; a Claude Code figure beside an API figure is two instruments (cohort section 9).
  • Lifts compare within a model across arms and pins, never across models as a ranking (R27; cohort 11.2).
  • No instrument has code execution, so no instrument difference is attributable to it (rice section 8).
  • Exact-score accuracy alone does not say a model got RICE right; the trap outcomes publish beside it on every row (rice sections 5 and 10).
  • The unit of every interval is the item; passes are repeat samples of one item (cohort section 2).
  • The skill-arm cells were fixed from calibration run 2 under the amended headroom rule; the main run's none-arm figures are reported beside that reading and decide nothing (amendment section 12).
  • Trap outcomes come from the registered pattern detector with the lexicon as amended in calibration data before any main run; its hand audit is amendment 1a-i-main-run-conditions sections 4, 11.2 and 11.3.

Registered by

  • docs/preregistration/pm-wave-1-cohort.md sections 2, 5, 8, 9, 11, 12
  • docs/preregistration/pm-wave-1-rice-prioritization.md sections 1, 3, 5, 8, 10
  • docs/preregistration/pm-wave-1-amendment-D3-edge-cases-20261005.md sections 1, 2
  • docs/preregistration/pm-wave-1-amendment-Q1-rice-titles-20261005.md section 8.5
  • docs/preregistration/pm-wave-1-amendment-1a-i-ask-backlog-in-message-20261010.md section 7
  • docs/preregistration/pm-wave-1-amendment-1a-i-main-run-conditions-20261011.md sections 3, 4, 7, 11.3, 12
  • docs/preregistration/pm-wave-1-amendment-1a-i-review-fixes-20261012.md sections 1, 3, 4