About TypeDaily
How the typing test works, how WPM and accuracy are scored, and how the leaderboard stays fair.
TypeDaily is a free typing test built around one habit: practising a little every day. Take a 1-minute test, 5-minute test or 15-minute test, keep your daily streak alive, unlock achievements and see how you compare on the leaderboard.
How a test works
- Choose a difficulty (easy, medium or hard) and a length. A passage is drawn at random for that combination.
- The timer starts on your first keystroke, not when the page loads, so you can read the first line before you begin.
- The test ends when time runs out or when you finish the passage, whichever comes first.
- Pasting is disabled. Tab loads a new passage and Esc restarts the current one.
How scoring works
Typing is compared word by word. If you slip on one letter, that word is marked wrong — not every letter after it.
- WPM follows the standard convention that a "word" is five characters. It counts the characters of every correctly typed word plus the space after it, divided by five, divided by the minutes elapsed.
- Raw WPM counts everything you typed, mistakes included.
- Accuracy is the share of typed characters that match the passage. Letters you skip by pressing space early count as misses.
- Errors is the number of words that don't match. A word you're still typing isn't counted as an error until it stops matching the passage.
Keeping the leaderboard fair
Your browser never sends a score. When a signed-in test starts, the server issues a one-time test session and records the moment you type your first key. When the test ends, your browser sends only the text you typed; the server scores it against the passage using its own clock.
- Each test session can be submitted once.
- Results that arrive more than 10 seconds after the timer should have ended are rejected.
- Results above 300 WPM are rejected as automated.
Leaderboard ties go to whoever reached the score first. If you spot a score that looks wrong, please let us know.
Streaks and achievements
Finish at least one saved test on a calendar day to extend your streak. Days are counted in your own timezone. Achievements unlock automatically for speed (50, 75 and 100+ WPM), accuracy (90%, 95% and 100%), streaks (7 and 30 days) and milestones such as your first and hundredth test.
Open source
TypeDaily is built with Next.js, PostgreSQL and Prisma. The source code is on GitHub.