All rules

Number without a source

unsourced-numberchaff testJapanese / English

A number the reader has no way to check (checked by an AI)

Example

Flagged
Nine in ten users are happy with this feature.
What chaff prints

No machine decides this one. npx chaffjs test has an AI read the passage.

Fixed
In a survey of 120 users in September, 108 (nine in ten) said they were happy with this feature.

How to fix

Add the basis in parentheses — period, comparison, sample size.

Why it matters

A number the reader cannot check is not evidence.

What it does not flag

No machine decides this. chaff test narrows the text to sentences with numbers, and an AI reads only those.

Turning it off or relaxing it

Silence this one spot (in the document)
<!-- stet: unsourced-number — reason -->
Relax it for the team (the reason is kept as a comment in chaff.yaml)
npx chaffjs relax unsourced-number --why "reason"
Turn it off for the team (chaff.yaml)
rules: unsourced-number: off
Technical details
Layer
L4
Status
stable
Severity
warning
Languages
Japanese and English
Suited to
business

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
relaxedinfo

For a check that reads meaning, the level is how serious a finding is.

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
business/proposal, business/report, business/email, business/press-release, business/meeting-notes
Not suited to, and not run in
technical/spec, technical/readme, blog/tech, blog/essay, blog/owned-media, 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

{reason}

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