All rules

Number in words differs from its figure

number-word-figure-mismatchon by defaultJapanese / English

A number in words with a different figure in brackets, as "six (7) months"

Example

Flagged
The Buyer shall pay Fifty Thousand Dollars ($5,000) within thirty (13) days of delivery.
What chaff prints
1:21 "Fifty Thousand Dollars ($5,000)" says 50,000 in words and 5,000 in figures 1:60 "thirty (13)" says 30 in words and 13 in figures
Fixed
The Buyer shall pay Fifty Thousand Dollars ($50,000) within thirty (30) days of delivery.
What chaff prints
no finding
chaff.yaml used for this example
genre: legal/contract

How to fix

Check which number is meant, and make the words and the figure say the same number.

Why it matters

Contracts and formal documents write a number twice, in words and in figures ("thirty (30) days", "Fifty Thousand Dollars ($50,000)"), so that it cannot be misread or altered. When the two disagree ("thirty (13) days", "Fifty Thousand Dollars ($5,000)"), the document does not say which one holds, and the difference becomes a dispute. It happens when one of the two is edited, or when a template's figures are replaced and its words are not. The number words (forty-five, one hundred and five, Fifty Thousand; Japanese numerals, formal ones such as 壱 弐 参 拾 萬 included) are read as a number and compared with the figure in the brackets right after them.

What it does not flag

Words and a figure that agree ("six (6) months", "Fifty Thousand Dollars ($50,000)") are not reported. A bracket holding anything but a figure ("(Section 6)", "(the Term)"), a figure after a word that is not a number ("Section (6)"), a number word inside another word ("often (2)"), words that are not one well-formed number ("five five (55)", "thousand (1,000)") and a year in brackets after a small number ("two (2026)") are not read. A cheque-style amount ("Fifty Thousand and 00/100 Dollars") and fractions ("one-half (1/2)") are not read.

Turning it off or relaxing it

Silence this one spot (in the document)
<!-- stet: number-word-figure-mismatch — reason -->
Relax it for the team (the reason is kept as a comment in chaff.yaml)
npx chaffjs relax number-word-figure-mismatch --why "reason"
Turn it off for the team (chaff.yaml)
rules: number-word-figure-mismatch: off
Technical details
Layer
L1
Status
stable
Severity
warning
Languages
Japanese and English
Suited to
business, technical, blog, legal, docs, academic, literature, speech

Levels

Set a level for this rule under rules in chaff.yaml. With nothing set, it runs at the level its genre gives it (see By genre below).

stricterror
normalwarning
relaxedwarning

This rule has no limit to count to. A level sets how a finding is marked: relaxed keeps the finding and marks it a step lower.

By genre

Runs by default in
technical/spec, technical/readme, blog/tech, blog/essay, blog/owned-media, business/proposal, business/report, business/email, business/press-release, business/meeting-notes, legal/contract, legal/statute, legal/judgment, legal/patent, docs/manual, docs/faq, docs/glossary, academic/paper, literature/fiction, literature/essay, literature/poetry, literature/play, speech/address, speech/transcript

Genres

Message

"{written}" says {words} in words and {figure} in figures

This page is built from the rule's definition file:packages/chaff/rules/number-word-figure-mismatch.yaml