Rank letters by frequency

Paste any text and get a frequency table for its letters. Switch Scope to All Characters for a full distribution, toggle Match Case, set Group Size for letter n-grams, and pick column display and sort. The transform runs in your browser; nothing uploads. For words instead of letters, see word frequency.

Input
Line 1:1 LF cloud_done Saved locally
Result Letter Frequency
0 lines 0 chars

Letter frequency, configurable to the column

The default Scope is Letters Only: the input is lowercased and matched against [a-z]/g, so digits, punctuation, and whitespace do not count. Switch to All Characters and every character (including spaces and punctuation) is included. Turn on Match Case to keep A and a separate (the regex becomes [A-Za-z]).

Group Size controls n-gram length. Default 1 = single letters. 2 = bigrams (consecutive letter pairs). Up to 6. The bigram pass runs against the already-filtered character list, so "a b" with letters-only scope produces ab as one bigram (the space is not in the list).

Output formatting matches word frequency: Show Count (on by default), Show % (off), Show Total (off), and Sort (default By Count; alternatives are Alphabetical and Insertion Order). The output is tab-separated, easy to paste into a spreadsheet.

How to use rank letters by frequency

  1. 1Paste or type your text into the input panel on the left.
  2. 2The frequency table appears in the output panel, sorted by count.
  3. 3Switch Scope to All Characters if you want spaces and punctuation included.
  4. 4Set Group Size to 2 or higher for letter n-grams.
  5. 5Toggle Show % or Show Total to add columns.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun a saved workflow Plus

What this tool actually does

Scope = Letters Only or All Characters

Default Letters Only matches [a-z] on the lowercased input (or [A-Za-z] when Match Case is on). All Characters uses every character of the input including spaces, punctuation, digits, and Unicode glyphs.

Match Case toggle

Default off: input is lowercased so A and a collapse. On: case is preserved and they appear as separate rows. The toggle interacts with Scope (letters-only switches between [a-z] and [A-Za-z]).

Group Size 1 to 6 for letter n-grams

Default 1 = single letters. 2 = bigrams. 3 = trigrams. Up to 6. The window slides over the filtered character list one position at a time, so "abc" with size 2 produces ab and bc.

Output columns and sort

Show Count (default on) prepends the count column. Show % (default off) adds a percent-of-total column. Show Total (default off) appends a final Total: N line. Sort defaults to By Count; switch to Alphabetical or Insertion Order to change row order.

Tab-separated, no row cap

Output rows are joined with tabs (count, optional percent, then the letter or n-gram). Unlike word frequency, there is no 200-row cap on the output, but for letters that is rarely a concern (the alphabet is finite).

Worked example

Twenty-six letters in the pangram, sorted by count descending. The most common letter is o at 4 occurrences. Switch Scope to All Characters and a row for (space) appears, typically near the top.

Input
the quick brown fox jumps over the lazy dog
Output
4	o
3	e
3	u
3	h
2	r
2	t
2	n
1	q
1	i
1	c
1	k
1	b
1	w
1	f
1	x
1	j
1	m
1	p
1	v
1	l
1	a
1	z
1	y
1	d
1	g
1	s

Settings reference

Option Effect on output
Scope = Letters Only (default) Match [a-z] (or [A-Za-z] with case on).
Scope = All Characters Every character of the input, including whitespace and punctuation.
Match Case (default off) On: A and a are separate. Off: collapsed.
Group Size (default 1) n-gram length, 1 to 6.
Show Count (default on) Prepend a count column.
Show % (default off) Prepend a percent-of-total column.
Show Total (default off) Append a final Total: N line.
Sort (default By Count) By Count, Alphabetical, or Insertion Order.

FAQ

Does it count spaces and punctuation?
Only when Scope is All Characters. The default Letters Only uses the regex [a-z] (or [A-Za-z] with Match Case on), so non-letters are excluded.
How do I keep A and a separate?
Turn on Match Case. The regex switches to [A-Za-z] and the input is no longer lowercased before counting.
Can I get bigrams or trigrams?
Yes. Set Group Size to 2 for bigrams, 3 for trigrams, up to 6. Each consecutive run of N letters becomes one row.
Are non-Latin letters counted in Letters Only mode?
No. The regex is [a-z] (or [A-Za-z]), which is ASCII Latin only. Switch Scope to All Characters if you want Greek, Cyrillic, or accented Latin letters in the table.
Is the input sent anywhere?
No. The tally runs in your browser. Nothing uploads, nothing is logged.