KeyForge Adaptive Practice

Lessons built from the keys you're actually slow on.

Ordinary typing practice makes you type ordinary English. English letter frequency being what it is, roughly 70% of your keystrokes land on just nine letters — E, T, A, O, I, N, S, H, R — which you almost certainly already type well. The keys costing you speed barely appear.

KeyForge inverts that. It measures every key independently and builds lessons around your worst one. This page documents exactly how, so none of it has to be taken on trust.

Why per-key rather than general practice. The largest published typing study found that specific letter pairs — particularly those typed by different hands or different fingers — predict overall speed better than general measures do, and a motion-capture study found that consistent finger-to-key mapping separates fast typists from slow ones regardless of how many fingers they use. Both point the same way: speed lives in specific transitions, so practice should target them. Figures and citations are on the research page.

Confidence: the core score

Every letter carries a confidence score. It answers one question: are you typing this key at target speed, cleanly?

rawConfidence = targetTime / max(avgLatency, 50ms) confidence = rawConfidence × (1 − errorRate × 0.5)

Scores are then smoothed so one fumbled keystroke can't swing them:

newConfidence = oldConfidence × 0.6 + confidence × 0.4

1.0 is the mastery line. At or above it you're hitting target speed on that key; below it, the key is still costing you.

Progressive unlock

KeyForge starts with six letters and adds more only as you earn them. A new letter appears when every currently unlocked letter reaches confidence ≥ 1.0 — not on a timer, and not on lesson count.

enitrlsodacupghmbyfvwkxzqj

The order is English frequency: e n i t r l s o d a c u p g h m b y f v w k x z q j. Highlighted keys above are the six you begin with.

A newly unlocked letter starts at confidence 0.0, which makes it instantly the weakest key — so it becomes the focused key and dominates the next few lessons. That's intended: new letters get drilled hardest, exactly when they need it.

The focused key

The focused key is simply the lowest-confidence unlocked letter, recalculated after every lesson. Word generation weights toward it, so practice text is dense in whatever is currently worst.

How practice words are generated

Words are filtered to your unlocked letters, then chosen real-word-first:

Unlocked keysReal words availableReal-word share
4 — e n i t8~94%
5 — e n i t r14~93%
6 — e n i t r l27~92%
7 — + a83~91%
9 — + o s310~88%
11 — + d a c821~86%

The corpus is 6,531 frequency-ranked English words, built from public domain texts, ranked by lowercase-as-written occurrence (which filters proper nouns) and required to appear across multiple independent works (which filters book-specific vocabulary).

With only four letters unlocked you'll see real words repeat — tin, net, tie, inn. That's deliberate. Repeating real words beats inventing fake ones, because muscle memory for real letter sequences is what transfers to real typing.

Pseudo-words are a fallback, not the default. When the unlocked set genuinely can't spell enough English, a Markov bigram model generates pronounceable filler weighted toward the focused key. That path accounts for roughly 6–14% of words depending on stage.

Learning rate

Confidence tells you whether a key is slow. Learning rate tells you whether it's getting better — a different and more useful question.

After each lesson KeyForge stores a per-key sample (hits, misses, average latency), keeping the last 50. Given at least 5 samples it runs a linear regression over the most recent 20 to produce a slope. A negative slope means latency is falling: the key is improving. A flat slope on a low-confidence key means whatever you're doing isn't working, and technique needs to change rather than repetition continuing.

Reading the heatmap

SignalMeaningWhat to do
Confidence ≥ 1.0At or above target speedNothing — it's holding you back no longer
0.7 – 1.0Close, usually a hesitation not an errorKeep drilling; it will clear on its own
Below 0.7Genuinely slow or error-proneSlow down deliberately and fix the finger assignment
Low confidence, flat learning rateRepetition isn't workingCheck you're using the correct finger — usually a wrong-hand or wrong-finger habit
No scoreFewer than 3 samplesType more; it needs data

Verifying this yourself