Speedtype Lab / Language

8 min read

Why English and Marathi WPM Should Be Compared Separately

See how script, input method, Unicode handling, and the five-character WPM unit affect fair comparisons between English and Marathi sessions.

Written and reviewed by SaurabhLast reviewed August 18, 2026

Evidence checked: Unicode normalization, scorer behavior, and bilingual passage rules. Product behavior and limitations are described for the current release.

The same label can hide different input work

Speedtype displays WPM for English and Marathi with the same five-character formula. That makes the arithmetic consistent, but it does not make the typing tasks equivalent.

English is commonly entered as a sequence of Latin characters. Marathi is displayed in Devanagari and may be produced through an InScript layout, phonetic transliteration, another IME, or an on-screen method. One visible unit can involve composition steps that differ by method and operating system.

For that reason, the useful comparison is usually English with earlier English under the same setup, and Marathi with earlier Marathi under the same setup. A direct English-versus-Marathi ranking can reflect the input method as much as the user's typing control.

What Speedtype counts

Before scoring, the app normalizes text with Unicode NFKC and converts a few visually equivalent spacing and quotation characters. It then uses JavaScript Array.from to process the normalized string.

Array.from iterates Unicode code points. A code point is not always the same as a user-perceived grapheme, printed letter, or physical key press. Devanagari text can include a base character plus combining marks that form one visible cluster.

This boundary is important:

  • WPM uses attempted characters tracked by the input workflow.
  • The compared input and passage are processed as normalized code points.
  • The formula divides the attempted total by five.
  • The app does not convert Devanagari clusters into a language-specific word unit.
  • The app does not estimate how many physical keys an input method required.

The result is internally reproducible, but it is not a language-neutral measure of physical effort.

A small script example

Consider the Marathi word मराठी. A reader sees one word. Under Unicode, the visible sequence is represented by multiple code points, including vowel signs. An input method may also require a sequence of Latin keys or dedicated layout positions before the browser emits the final text.

Speedtype receives the browser's resulting input value. It does not observe every intermediate composition event as a final passage character. Two users can therefore produce the same displayed word through different physical actions.

That does not make the result useless. It defines what the result measures: accepted text output under one browser and input method. Record those conditions when tracking Marathi progress.

Normalization helps only with equivalent representation

NFKC normalization can make certain compatibility representations comparable. Speedtype also converts non-breaking spaces to normal spaces and common curly quotes to straight quotes.

Normalization does not:

  • transliterate Marathi into English;
  • ignore a missing vowel sign;
  • repair spelling;
  • merge arbitrary grapheme clusters into one count;
  • translate punctuation;
  • make two different input methods equally demanding.

An unresolved code-point difference remains an error. Capitalization also remains significant in English, as documented in case-sensitive grading.

Keep two baselines

Create separate recording tables.

For English, record:

FieldExample condition
LanguageEnglish
LayoutUS QWERTY
DeviceLaptop keyboard
Duration1 minute
DifficultyBasic

For Marathi, record:

FieldExample condition
LanguageMarathi
Input methodName and mode of the IME
DeviceSame laptop keyboard
Duration1 minute
DifficultyBasic

The entries in the example condition column are illustrations, not recommended settings. Replace them with the actual setup and preserve it across measured sessions.

Use the seven-session baseline separately for each language. Do not average the English and Marathi medians into one overall score.

Difficulty is also language-specific

Speedtype provides Basic, Moderate, and Advanced groups in both languages. These are editorial labels used to organize the current passage library. They have not been calibrated as equivalent tests across scripts.

A Marathi Basic passage can still require input-method sequences unfamiliar to a learner. An English Advanced passage can contain longer sentences without the same composition behavior. The labels are useful for choosing variety within a language, not for proving cross-language parity.

The exact library and review gates are documented in how passages are written and reviewed.

A fair comparison protocol

When comparing two English sessions or two Marathi sessions:

  1. Use the same device and keyboard.
  2. Use the same browser where practical.
  3. Keep the language and difficulty unchanged.
  4. Keep the duration unchanged.
  5. For Marathi, keep the same input method and mode.
  6. Record whether suggestions, autocorrection, or composition assistance changed.
  7. Record all result fields, not only net WPM.
  8. Compare several sessions rather than one maximum.

For a behavior test, try entering the same short fragment twice after Reset. For a performance baseline, use full timed passages and the predefined session count.

Composition and live error display

Browsers can hold text in a composition state while an IME is assembling a character sequence. The app sees events around that composition process, and behavior can differ across browsers and input methods.

A useful defect report distinguishes a real spelling mismatch from a composition-display issue. Include:

  • the displayed target fragment;
  • the input method name;
  • the Latin or layout keys used, if known;
  • the final visible text;
  • when the error mark appeared;
  • whether it cleared after composition ended;
  • browser and operating system.

A screenshot of two visually identical strings can be insufficient because the underlying Unicode sequences may differ. Copying both target and input into the report, without private information, is more useful.

How to read the result

Gross WPM shows attempted activity converted to five-character units. Net WPM deducts unresolved errors. Accuracy shows correct attempted characters as a percentage of attempts. Those formulas stay the same across languages, but the interpretation remains conditional on script and input method.

Read the worked WPM examples for the arithmetic and the result-card guide for a combined interpretation.

Speedtype results are informal practice measurements. They are not language certification, translation assessment, or proof that one script is inherently faster. Open Practice, choose one language, and preserve the conditions before using the score as a personal reference.

Reproduce it, then report the mismatch

Product documentation is useful only while it matches the app. Keep the settings and smallest input sequence that expose a difference, and include those facts in a correction report.