All rules

A relative date that does not match its base date

relative-date-mismatchon by defaultJapanese / English

A date given as "two weeks later, on May 16" that is not that far away

Example

Flagged
Applications close on May 1, 2026. Two weeks later, on May 16, 2026, results are sent.
What chaff prints
1:56 Two weeks later from May 1, 2026 is May 15, 2026, but the date is given as May 16, 2026
Fixed
Applications close on May 1, 2026. Two weeks later, on May 15, 2026, results are sent.
What chaff prints
no finding

How to fix

Check which is right, the base date, the length or the date, and make the rest agree.

Why it matters

When a relative length and a date are written together ("Applications open on May 1, 2026. Two weeks later, on May 16, 2026, …"), the reader cannot tell which is right. It happens when a schedule moves and only the date or only the length is changed. The date right after "N days later" or "N weeks earlier" is compared with the nearest earlier date in the same sentence (or in the previous sentence when the sentence opens with the relative length), plus or minus the length. A day word in an email or minutes ("next Monday (October 12)", "tomorrow (October 7)") is compared with the day it counts to from the date field at the head of the email or the minutes ("Date:"). A week may start on Monday or on Sunday, and "next Monday" may be the coming Monday; only a date that fits none of these readings is reported.

What it does not flag

Only a date right after the relative length (with "on" or punctuation between) is checked. A relative length with no date before it in the same sentence (or the previous one, when the sentence opens with it), a Japanese length counted from a start it names itself after a clause break (…まで存続し、今井が死亡した年の翌年から起算して38年後), and units other than days, weeks, months and years ("3 business days later"), are left alone. A day word ("next Monday", "tomorrow") is left alone when the document has no date field at its head, when no date follows the word, in a quoted reply, and in a section whose heading names a date ("## October 1 meeting").

Turning it off or relaxing it

Silence this one spot (in the document)
<!-- stet: relative-date-mismatch — reason -->
Relax it for the team (the reason is kept as a comment in chaff.yaml)
npx chaffjs relax relative-date-mismatch --why "reason"
Turn it off for the team (chaff.yaml)
rules: relative-date-mismatch: off
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
dates

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).

normalwarning
relaxedinfo

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

{relative} from {base} is {expected}, but the date is given as {target}

Rewrite depth (chaff fix-plan --depth): light — words and sentences; the structure and the voice stay

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