Every fragment tea-bot has ever served, ranked by the one difficulty measure that is not circular: its position in the bot’s own prompt list. What players did with it comes second, and only once there is enough of it to mean anything.
Two rules, both of which the previous version of this page broke
syll is the objective difficultytea-bot draws prompts from prompts.txt, a file of 9,217 three-letter fragments ordered easiest to hardest. The line number is the difficulty: ing is line 1. That number is fixed by the bot before anyone plays, so it cannot be bent by who happened to draw the prompt.
Lines 9,166 and up exist in the file but sit past the bot’s selection ceiling — 52 prompts it can never choose.
An observed solve rate is printed only once a prompt has at least 20 attempts in the current scope. Below that you get the raw count and the words “not enough data” — never a percentage, and never a zero.
On this data that is a brutal filter: 140 of 10,540 prompts clear it in multiplayer. The old site applied no floor at all, then bucketed prompts by array index, and so labelled 2,729 of its 2,750 prompts “Easy”.
tea-bot writes a turn to the log only when the turn ends. Rejected and invalid guesses are never recorded at all, so this rate measures turns survived inside the timer, not first-guess accuracy.
A player who typed nine wrong words and then a right one appears here identically to one who got it first try. That is why solve rate sits in the nineties nearly everywhere, and why solve time is the measure worth reading.
Median solve time and sample size, over ten bands of the syll index
Multiplayer · prompts grouped into ten bands of the objective syll index. Hollow points are bands with fewer than 100 timed solves behind them.
Attempts behind each band
Across the 8 bands with at least 100 timed solves, median solve time runs 3.6 s to 6.2 s — a 1.7× spread, while the solve rate stays between 87.3% and 97.8% throughout. Almost every prompt eventually gets answered, so how often one was survived separates them barely at all. Ranking by that is how the old site put 2,729 of 2,750 prompts in a single “Easy” bucket.
Provisional bands (fewer than 100 timed solves): 8–9k (n=92), 9k+ (n=4).
| syll band | Prompts | Attempts | Solved | Solve rate | Median solve |
|---|---|---|---|---|---|
| 1–1,000 | 1,000 | 14,507 | 14,189 | 97.8% | 3.7 s (n=14,189) |
| 1,001–2,000 | 906 | 6,127 | 5,928 | 96.8% | 3.8 s (n=5,928) |
| 2,001–3,000 | 799 | 1,627 | 1,534 | 94.3% | 3.6 s (n=1,534) |
| 3,001–4,000 | 792 | 1,567 | 1,410 | 90.0% | 3.8 s (n=1,410) |
| 4,001–5,000 | 932 | 2,725 | 2,471 | 90.7% | 3.7 s (n=2,471) |
| 5,001–6,000 | 692 | 1,120 | 993 | 88.7% | 4.0 s (n=993) |
| 6,001–7,000 | 623 | 1,081 | 979 | 90.6% | 4.6 s (n=979) |
| 7,001–8,000 | 256 | 361 | 315 | 87.3% | 6.2 s (n=315) |
| 8,001–9,000 | 105 | 117 | 92 | 78.6% | 7.0 s (n=92) |
| 9,001–9,217 | 6 | 6 | 4 | 66.7% | 6.4 s (n=4) |
1,683 matching · sorted by attempts
| Prompt | syll | Attempts | Solve rate | Median solve |
|---|---|---|---|---|
| irq | 6,351Very HardVery Hard | 2 | not enough datan = 2 | 2.5 sn = 2 |
| isz | 6,388Very HardVery Hard | 2 | not enough datan = 2 | 3.5 sn = 2 |
| iwo | 5,416Very HardVery Hard | 2 | not enough datan = 2 | 9.2 sn = 2 |
| ixh | 7,379Very HardVery Hard | 2 | not enough datan = 2 | 8.1 sn = 2 |
| iye | 5,156Very HardVery Hard | 2 | not enough datan = 2 | 8.5 sn = 2 |
| izu | 6,352Very HardVery Hard | 2 | not enough datan = 2 | 8.9 sn = 2 |
| izy | 5,477Very HardVery Hard | 2 | not enough datan = 2 | 1.7 sn = 1 |
| jaa | 7,069Very HardVery Hard | 2 | not enough datan = 2 | 8.5 sn = 2 |
| jef | 5,517Very HardVery Hard | 2 | not enough datan = 2 | 2.0 sn = 2 |
| jeh | 5,661Very HardVery Hard | 2 | not enough datan = 2 | 8.9 sn = 2 |
| jia | 6,629Very HardVery Hard | 2 | not enough datan = 2 | 9.7 sn = 1 |
| jid | 5,684Very HardVery Hard | 2 | not enough datan = 2 | 2.3 sn = 2 |
| jiu | 7,057Very HardVery Hard | 2 | not enough datan = 2 | 9.0 sn = 2 |
| jiv | 5,579Very HardVery Hard | 2 | not enough datan = 2 | 2.0 sn = 2 |
| joo | 6,434Very HardVery Hard | 2 | not enough datan = 2 | 6.4 sn = 2 |
| jra | 6,202Very HardVery Hard | 2 | not enough datan = 2 | 4.6 sn = 2 |
| jue | 7,048Very HardVery Hard | 2 | not enough datan = 2 | 9.2 sn = 2 |
| kbl | 6,777Very HardVery Hard | 2 | not enough datan = 2 | 8.8 sn = 2 |
| kch | 5,764Very HardVery Hard | 2 | not enough datan = 2 | 4.3 sn = 2 |
| kco | 6,085Very HardVery Hard | 2 | not enough datan = 2 | 3.0 sn = 2 |
| keg | 5,071Very HardVery Hard | 2 | not enough datan = 2 | 1.9 sn = 2 |
| kfe | 6,293Very HardVery Hard | 2 | not enough datan = 2 | 9.2 sn = 1 |
| kfo | 5,404Very HardVery Hard | 2 | not enough datan = 2 | 3.5 sn = 2 |
| kiw | 5,496Very HardVery Hard | 2 | not enough datan = 2 | 4.1 sn = 2 |
| kko | 5,419Very HardVery Hard | 2 | not enough datan = 2 | 2.4 sn = 2 |
| kph | 6,602Very HardVery Hard | 2 | not enough datan = 2 | 10.9 sn = 2 |
| ksk | 5,735Very HardVery Hard | 2 | not enough datan = 2 | 12.4 sn = 2 |
| kuc | 6,292Very HardVery Hard | 2 | not enough datan = 2 | 9.0 sn = 2 |
| kwh | 6,323Very HardVery Hard | 2 | not enough datan = 2 | 5.8 sn = 2 |
| kwr | 6,346Very HardVery Hard | 2 | not enough datan = 2 | 2.6 sn = 2 |
| kyn | 6,417Very HardVery Hard | 2 | not enough datan = 2 | 9.1 sn = 2 |
| kyo | 6,008Very HardVery Hard | 2 | not enough datan = 2 | 8.5 sn = 2 |
| kyp | 5,529Very HardVery Hard | 2 | not enough datan = 2 | 4.6 sn = 2 |
| kyt | 5,679Very HardVery Hard | 2 | not enough datan = 2 | 3.9 sn = 2 |
| laa | 5,220Very HardVery Hard | 2 | not enough datan = 2 | 2.2 sn = 2 |
| lck | 7,080Very HardVery Hard | 2 | not enough datan = 2 | 5.0 sn = 2 |
| ldv | 8,063Very HardVery Hard | 2 | not enough datan = 2 | 8.0 sn = 2 |
| lgy | 5,572Very HardVery Hard | 2 | not enough datan = 2 | 3.3 sn = 2 |
| lkh | 5,230Very HardVery Hard | 2 | not enough datan = 2 | 2.9 sn = 2 |
| lll | 6,713Very HardVery Hard | 2 | not enough datan = 2 | 4.7 sn = 2 |
| lmg | 7,064Very HardVery Hard | 2 | not enough datan = 2 | 7.9 sn = 2 |
| lmy | 5,154Very HardVery Hard | 2 | not enough datan = 2 | 8.9 sn = 2 |
| lna | 5,022Very HardVery Hard | 2 | not enough datan = 2 | 8.3 sn = 2 |
| lnu | 5,543Very HardVery Hard | 2 | not enough datan = 2 | 1.8 sn = 2 |
| lpm | 6,806Very HardVery Hard | 2 | not enough datan = 2 | 7.8 sn = 2 |
| lsb | 7,173Very HardVery Hard | 2 | not enough datan = 2 | 6.7 sn = 1 |
| lsf | 6,990Very HardVery Hard | 2 | not enough datan = 2 | 15.1 sn = 2 |
| lsw | 6,190Very HardVery Hard | 2 | not enough datan = 2 | 9.3 sn = 2 |
| luj | 6,338Very HardVery Hard | 2 | not enough datan = 2 | 5.9 sn = 2 |
| lvy | 7,118Very HardVery Hard | 2 | not enough datan = 2 | 14.2 sn = 2 |
10,400 of 10,540 prompts sit below the 20-attempt floor and show no rate. Among the 140 that clear it, solve rates average 98.0% across a 85%–100% range — a narrow band, which is why the syll index and not the rate is the primary sort. Sorting by solve rate or median solve time ranks only prompts at or above the floor; below it the numbers are still printed with their n, but a one-sample median is not a ranking.
4,429 prompts are Unrated — not easy, just absent from prompts.txt. 4,422 of them are the wrong length for the list, which only covers 3-letter fragments; custom games can set any prompt length. The other 7 are 3-letter oddities: Cyrillic homoglyph spoofs that look like Latin letters, blanks-mode prompts carrying a wildcard character, and a little junk. Show them
Three modes are missing on purpose. Red, Green and Yellow Tea score whole rounds rather than turns, so tea-bot logs them as round submissions: no response time, and — unlike turns — rejected words are kept. Their “solved” means first-guess validity, not surviving the timer. Folding two different definitions into one rate would be worse than leaving them out, so they are left out.