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

  1. Choose a difficulty (easy, medium or hard) and a length. A passage is drawn at random for that combination.
  2. The timer starts on your first keystroke, not when the page loads, so you can read the first line before you begin.
  3. The test ends when time runs out or when you finish the passage, whichever comes first.
  4. 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.