Word suggestion algorithm
Status: Approved | 2025
Author: Victor Ma

The word suggestion list.
The goal of any crossword editor software is to make it as easy as possible to create a good crossword puzzle. To that end, all crossword editors have a feature called a word suggestion list. This is a dynamic list of words that fit the current clue. It helps the user find words that fit the clues on their grid.
In order to generate the word suggestions, crossword editors use a word suggestion algorithm.
Comparison of word suggestion algorithms
Here is a comparison of the word suggestion algorithms that we use or are considering using:
Algorithm |
Status |
Scope |
Dead-end words |
Speed |
Complexity |
|---|---|---|---|---|---|
No longer used as a standalone word suggestion algorithm. |
Clue-level. |
Common. |
Very fast. |
Medium. |
|
Our current word suggestion algorithm. |
Clue-level. |
Uncommon. |
Fast. |
Medium. |
|
Unimplemented. |
Grid-level. |
None. |
Slow. |
High. |
Prior Art
The following is true about most crossword editors:
They use a grid-level word suggestion algorithm.
It takes a while for the word suggestion list to populate.
They have a fillability indicator.
They have a cell constraint heat map.
They have a most-constrained-clue button.
Open source crossword editors:
Ingrid’s word suggestion algorithm is well-documented, but complex.
Exet’s word suggestion algorithm simply looks for words that match the current filter.
Terminology
Term |
Definition |
|---|---|
Current cell |
The cell that the cursor is on. |
Current clue |
The clue that the cursor is on. |
Current filter |
The filter for the current clue. |
Secondary clue |
The clue that intersects the current clue, at the current cell. |
Secondary filter |
The filter for the secondary clue. |
Intersecting clue |
A clue that intersects a given clue. |
Intersecting clues |
All the clues that intersect a given clue. |
Word suggestion list |
The UI element that shows a list of words that fit the current clue. |
Word suggestion algorithm |
An algorithm that generates word suggestions for a given clue or grid. |
Dead-end word |
A word suggestion that results in an unfillable grid. |
Grid fill |
A one-to-one mapping from the clues of a grid to words. |