A rate of change the two values do not give
change-rate-mismatchon by defaultJapanese / English
A rate of change the two values in one sentence or table row do not give
Example
How to fix
Check which of the two values and the rate is right, and correct the others.
Why it matters
When one sentence gives the earlier value, the current one and the rate of change ("1,200 companies, up 20% from 1,000"), readers trust the rate without checking it. It goes wrong when one figure is updated and the others are not, or when the rate is copied from last year's text. When a sentence has one earlier value (marked by "from" or "compared with"), one current value in the same unit, and one percentage with a word of direction (up, decline), chaff computes the rate from the two values and compares. The two values may also stand together right before the rate ("rose from $1.0 million last year to $1.5 million, an increase of 50%", "$1.0 million in 2025 and $1.5 million in 2026, up 50%"; with years, the earlier year's value is the earlier one). The rate may also come first, with the value reached and then the earlier one ("rose 10.0% to $2,640 million from $2,400 million"). Each value may be rounded to its last written digit ($12 million is anything from $11.5 million to $12.5 million). Tables are read too. When the headings name one column of the earlier value (Prior year), one of the current value (Current year) and one of the rate (YoY, Change (%)), or two columns are each headed by one year (FY2025, FY2026; the earlier year's column holds the earlier value), each row's rate is computed from its two values and compared. A rate marked -, −, ▲ or △ is a decrease. A column headed only "Change" or "Growth" is read as a rate only where its cells carry %.
What it does not flag
A sentence with two rates that each have a word of direction, with no value marked as the earlier one (by a word or a year), with another subject between the values and the rate ("…, and costs rose 20%") or between the two values ("$1,000 in 2025 and costs were $1,500 in 2026"), with no single current value in the same unit, or with no word of direction beside the rate is not compared. A change given with one value ("up 20% year on year"), percentage points and "times" are not read. A rate the rounding of the values can reach is not reported. In a table, nothing is compared when the headings do not name one column for each part or name different units for the two periods (thousand yen, million yen); nor is a row whose value or rate cell is not a number (—, 1.0pt, (5.0)% in brackets), whose values are negative or percentages, whose two values are written with different units, or whose earlier value is zero.
Turning it off or relaxing it
Technical details
- Layer
- L3
- Status
- stable
- Severity
- warning
- Languages
- Japanese and English
- Suited to
- business, technical, blog, legal, docs, academic, literature, speech
- Reads from the document
- structure
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).
| strict | error |
|---|---|
| normal | warning |
| relaxed | info |
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, speech/address, speech/transcript
- Turned off by the genre in
- literature/fiction, literature/essay, literature/poetry, literature/play
Message
"{rate}%" is written, but the two values give {computed}%
This page is built from the rule's definition file:packages/chaff/rules/change-rate-mismatch.yaml