On eight Stripe passages, a 0-9 Score put Roll secret at 8.86 and the other six at 2.42 or below

This topic was created 19 days ago, and the information it contains may have evolved or changed since then.

On eight Stripe passages this desk sent to jev-1.13.0, a 0-9 Score put the Roll secret steps at 8.86 and the other six at 2.42 or below. Pairwise Choice ranked rotating the API key third, and the majority graph had a cycle.

Nathan LeClaire posted on October 12, 2026, at 02:41 UTC, a ranking tip for Jev. He wrote that a Score such as “Is this content relevant to this query?” is tempting, and that a Choice, “Which is the most relevant?”, over pairs, then something like Bradley-Terry, seems better. The attached graphic is two panels. The Score panel crosses out “How relevant is this? 0-10” and piles eight balls between 7 and 9. The Choice panel spreads A through H on a Bradley-Terry axis, marks H as number one, and shows 11 of 28 duels. His bio names TypeSafe.

deekay wrote that he was already scoring, because it is easier to picture, and that he would rethink relevance sorting. LeClaire replied, “try it, don’t sleep on Bradley-Terry. i’m getting good vibes.” Dan Raviv asked for a built-in. LeClaire asked @CompleteSkeptic whether he could build it. Tobias Petry asked for a TypeSafe ranking primitive: n values in ranked order, 1.0 for the winner, and a score in [0, 1] for how likely each other value had been to win. LeClaire tagged Ted Kalaw with “free product idea.” Opened the same day, the primitives pages still list Choice, Score, and Noul. The re-ranking cookbook still sorts a shortlist by one Noul per candidate.

Nick posted that he could add the method to question-kit. At 07:39 UTC he linked commit 25a3b71 and wrote that he would publish tomorrow. The package is MIT, version 0.2.0, author Nick Gideo. That commit lists rankByScore and rankPairwise under Unreleased. rankPairwise sends one two-option Choice per pair in a single request, alternates which item is offered first, and fits Bradley-Terry with Hunter’s MM algorithm and prior 0.1. The method comment says that in their evals, sorting a Score by its expected level ordered lists about as well as rankPairwise, and better on some, for fewer questions.

Didier Lopes wrote that pairwise Jev was one of the best uses he had found, and that he had built an Elo leaderboard of tickers from multi-agent fundamental pitches. The quote has no table. Vladimir Kalnitsky wrote that pairwise comparison, at least in testing, shows whether the ordering is associative and transitive. Darin wrote that a dense cluster is a sign of rubric weakness. John Kovacs wrote that sorting on a relevance score still feels cleaner until two near ties flip under Bradley-Terry.

jsort already ranks a file from pairwise Noul judgments and a Bradley-Terry scale. TypeSafe’s Score page says a Score is a position on levels you describe, and that levels that are only numbers leave the model with nothing to match. The API accepts at most 10 levels. This desk used “0” through “9” for the numeric Score, so that scale stands in for the graphic’s 0-10.

This desk wrote two lists of eight passages, labeled A through H, against the query “How do I rotate a Stripe webhook signing secret?” H is the Roll secret steps. G is the signing-secret page and the note that rolling invalidates the old secret. The intended order is H, G, F, E, D, C, B, A. That order is this desk’s. The texts are not a retrieval corpus. Calls went to POST https://api.typesafe.ai/v1/systemone with model jev-latest. Every response named jev-1.13.0 and returned HTTP 200. Each list used two requests: 24 per-item questions, then 28 pairwise Choices. First-offered option and the Bradley-Terry fit followed question-kit.

The Stripe shortlist keeps every passage on Stripe keys or webhooks. A is the trap: it rotates the API secret key.

ItemNumeric 0-9Descriptive 0-3NoulPairwise strengthSoft wins of 7
H Roll secret8.862.980.962.466.92
G Signing-secret page8.072.380.511.696.08
F HMAC verification2.421.010.02-0.053.46
A API secret key1.740.930.030.304.05
E Create endpoint1.740.970.020.103.71
B stripe listen1.581.000.02-0.602.54
D HTTPS and retries0.620.910.01-1.660.96
C Restrict events0.500.790.01-2.230.28

The 0-9 Score on that list ran from 8.86 to 0.50. The two rotation items sat at 8.86 and 8.07. The other six sat at 2.42 or below. Spearman against the intended order is 0.690. The graphic’s pile between 7 and 9 did not show up on these eight texts.

The four-level Score put H at 2.98 and G at 2.38. The other six sat between 0.79 and 1.01, on the “related, but does not answer” rung. Spearman 0.738. That middle band is the cluster Darin’s reply is about.

The Noul left H at 0.96 and G at 0.51. The other six sat at 0.03 or below. Spearman 0.357. That is the cookbook shape: one yes/no per candidate, then sort.

Pairwise Choice ordered H, G, A, E, F, B, D, C. Spearman 0.548. H beat G at probability 0.92. A, the API-key trap, ranked third, with 4.05 soft wins of 7. The majority graph had a cycle through A, F, and E: A over F 0.89, F over E 0.58, E over A 0.70. Score cannot report that cycle. Desk clocks on the two requests were 455 ms and 419 ms.

A second list mixed in Lisbon weather and a PostgreSQL password reset. Numeric and descriptive Score both ordered H, G, F, E, D, A, C, B, Spearman 0.929. The 0-9 scores were 8.87, 8.01, 3.81, 1.81, 0.45, 0.43, 0.06, 0.02. The Noul again left six items at 0.01 or 0.02. Pairwise ordered H, G, F, E, A, D, C, B, Spearman 0.857, with no cycle. “Click here for more information” beat the Stripe refund paragraph at 0.65.

Four calls used 9,664 input tokens and 2,374 output tokens. At $0.042 per million input tokens, output free, that is $0.000406. The pairwise request asked 28 questions. The per-item request asked eight of each type. Migtronix’s reply in the thread was that this is how you get charged for input tokens.

On these two lists the descriptive Score Spearman was higher than pairwise Bradley-Terry. question-kit’s unreleased note already prints that ranking for its own evals. Pairwise Choice ranked the API-key trap third and returned a cycle. TypeSafe has not shipped a ranking primitive.

This site's reading

Editorial notes evaluating claims against primary sources, contextualizing findings alongside related implementations, and defining technical terms.

Verify

Primary post is @dotpem, Nathan LeClaire, October 12, 2026, 02:41 UTC, status 2109474543249264878. The text says ranking by a Score such as "Is this content relevant to <xyz>?" is tempting, and that a Choice pairwise comparison plus Bradley-Terry seems better. The attached graphic is two panels. The Score panel crosses out "How relevant is this? 0-10" and piles eight balls between 7 and 9, with G on top and a box that asks "#1?". The Choice panel spreads A through H on a Bradley-Terry axis, marks H as #1, and shows a slider at 11 of 28 duels. His bio names TypeSafe.

At 05:29 UTC, @flexdinesh wrote that he was scoring and would rethink relevance sorting. LeClaire replied at 05:30 UTC, status 2109517129460719949: try it, don't sleep on Bradley-Terry, good vibes. @RavivDan asked for a built-in. LeClaire replied "@CompleteSkeptic can i build it ?". @NickGideo, 06:29 UTC, said he could add it to question-kit, branch order-v2-and-core-updates. At 07:39 UTC he posted commit 25a3b7147433437374ce969ba547538ba0922321 and wrote that he would publish tomorrow. That commit is MIT, package question-kit 0.2.0, author Nick Gideo. The changelog lists rankByScore and rankPairwise under Unreleased. rankPairwise asks one two-option Choice per pair in one request, alternates which item is offered first, and fits Bradley-Terry with Hunter's MM algorithm and prior 0.1. The method comment says that in their evals, sorting a Score by expected level ordered lists about as well as rankPairwise, and better on some, for fewer questions.

@tobias_petry, 06:37 UTC, asked for a TypeSafe ranking primitive: n values in ranked order, 1.0 for the winner, and a score in [0, 1] for how likely each other value had been to win. LeClaire replied "@tedkalaw free product idea". Opened October 12, 2026, the primitives pages still list Choice, Score, and Noul. The re-ranking cookbook still scores one Noul per candidate.

@didier_lopes, 06:40 UTC, wrote that he had used pairwise Jev for an Elo leaderboard of tickers from multi-agent fundamental pitches, and that he would probably write more. LeClaire wrote "please do!". The quote has no table. @darin_gordon wrote that a dense cluster is a sign of rubric weakness. @klntsky wrote that pairwise comparison helps test whether the ordering is associative and transitive. @jj_kovacs wrote that sorting on a relevance score still feels cleaner until two near ties flip under Bradley-Terry.

This desk sent two self-written lists of eight passages against the query "How do I rotate a Stripe webhook signing secret?" to POST https://api.typesafe.ai/v1/systemone, model jev-latest. Every response named jev-1.13.0 and returned HTTP 200. TypeSafe Score accepts at most 10 levels, so the numeric Score used "0" through "9". The descriptive Score used four levels: unrelated; related but does not answer; answers part; answers exactly. The Noul asked whether the item answers how to rotate that secret. Pairwise Choice asked all 28 pairs in one request, with first-offered option alternating as in question-kit's firstOf. Bradley-Terry used the same Hunter MM fit and prior 0.1. The intended order H, G, F, E, D, C, B, A is this desk's ranking of those eight texts.

Stripe shortlist, all eight about Stripe keys or webhooks. Numeric Score: H 8.86, G 8.07, F 2.42, A 1.74, E 1.74, B 1.58, D 0.62, C 0.50. Spearman against the intended order 0.690. Descriptive Score order H, G, F, B, E, A, D, C, Spearman 0.738. The six items after G sat between 0.79 and 1.01 on a 0-3 scale. Noul: H 0.96, G 0.51, A 0.03, B 0.02, E 0.02, F 0.02, C 0.01, D 0.01, Spearman 0.357. Pairwise Bradley-Terry order H, G, A, E, F, B, D, C, Spearman 0.548. Soft wins for H 6.92 of 7, G 6.08 of 7, A 4.05 of 7. H beat G at 0.92. The majority graph had one cycle, A then F then E: A over F 0.89, F over E 0.58, E over A 0.70. Request clocks 455 ms and 419 ms. Tokens 2,516 / 372 and 2,400 / 815.

Mixed list, with Lisbon weather and a PostgreSQL password reset. Numeric and descriptive Score both ordered H, G, F, E, D, A, C, B, Spearman 0.929. Numeric scores 8.87, 8.01, 3.81, 1.81, 0.45, 0.43, 0.06, 0.02. Noul: H 0.97, G 0.46, and the other six at 0.01 or 0.02, Spearman 0.738. Pairwise order H, G, F, E, A, D, C, B, Spearman 0.857, no cycle. A beat D at 0.65. Clocks 479 ms and 426 ms. Tokens 2,384 / 372 and 2,364 / 815.

Four calls, 9,664 input tokens and 2,374 output tokens. At $0.042 per million input tokens, output free, that is $0.000406. No request body, key, or request id is printed here.

Compare

The two lists are eight passages this desk wrote. They are not a retrieval corpus and they have no nDCG. The intended order is this desk's. Spearman is against that order, n = 8.

TypeSafe's CLERC cookbook ranks by one Noul per candidate. jsort ranks by pairwise Noul plus Bradley-Terry; CommonLit Pearson r 0.824 against one Noul at 0.754. Hindsight's listwise Choice on LoCoMo prints recall@1 0.94 against 0.87 for one call per candidate. question-kit's unreleased note says rankByScore ordered about as well as rankPairwise on their evals. On these two lists the descriptive Score Spearman was 0.929 and 0.738, and pairwise Bradley-Terry was 0.857 and 0.548.

Terms

Pairwise Choice ranking
One two-option Choice per pair, 'which is more relevant', then a Bradley-Terry fit on the probabilities. This desk asked all 28 pairs for eight items in one request.
Bradley-Terry here
Hunter's MM algorithm on soft wins, prior 0.1, log-strengths centered on a geometric mean of 1. A gap of 1 means the higher item wins about 73 percent of a head-to-head.
Stripe shortlist
Eight passages this desk wrote about Stripe keys or webhooks, including Roll secret, the signing-secret page, HMAC verification, and a trap that rotates the API secret key instead.

Sources

  1. Nathan LeClaire, October 12
  2. Nathan LeClaire, Bradley-Terry reply
  3. deekay
  4. Dan Raviv
  5. Nathan LeClaire, built-in reply
  6. Nick, question-kit branch
  7. Tobias Petry
  8. Didier Lopes
  9. Darin
  10. Vladimir Kalnitsky
  11. Nathan LeClaire, ranking primitive
  12. Nick, rankPairwise commit
  13. John Kovacs
  14. question-kit commit 25a3b71
  15. TypeSafe Score
  16. TypeSafe Choice
  17. TypeSafe re-ranking cookbook