All rules

A due date before the issue date

due-before-issueon by defaultJapanese / English

A due date or other later date that falls before the date it must follow

Example

Flagged
Issued: November 30, 2026 Payment due: November 25, 2026
What chaff prints
3:14 The due date November 25, 2026 is before the issue date November 30, 2026
Fixed
Issued: November 30, 2026 Payment due: December 25, 2026
What chaff prints
no finding

How to fix

Check which is right, the issue date or the due date, and correct the other.

Why it matters

When the payment due date of an invoice or the expiry of a quote is before its issue date, the document is overdue on arrival and the reader has to ask which date is right. It happens when last month's invoice is reused and only one date is changed. The date on a line starting with an issue word (Issued, Invoice date) is compared with the date on a line starting with a due word (Payment due, Valid until), and an earlier due date is pointed out. Minutes are read the same way. An action item due before the meeting it was set in is overdue when it is written down. The dates in the due column, or after "due" in a list item, of an action-items section are compared with the date on the "Date" line near the top. A property listing is read the same way. An "Available from" date before the "Listed" date has passed when the listing goes up. A job posting is read the same way. An "Application deadline" before the "Posted" date has passed when the posting goes up. An earnings release is read the same way. An "Earnings call" before the "Reporting period" ends would discuss results for a period that has not closed; a line stating a period is compared by the period's last day. A checkup or lab report is read the same way. A "Report date" before the "Examination date" or the "Collection date" reports results that did not exist yet. A product warranty is read the same way. A "Registration deadline" before the "Purchase date" has passed when the product is bought. A hotel or car rental booking is read the same way. A "Check-out" before the "Check-in", or a "Drop-off" before the "Pick-up", leaves before arriving; a "Free cancellation until" date after the check-in or the pick-up lets the booking be cancelled free once it has started, so one of the dates is wrong. The finding is on whichever of the two dates is written second. The pairs of dates that must come in order are listed, pair by pair, in the language's vocabulary. A loan or an installment plan is read the same way. A "First payment date" before the "Contract date" has passed when the contract is signed. A recall notice is read the same way. A deadline for replacement or refund requests before the "Notice date" has passed when the notice goes out. A payslip is read the same way. A "Pay date" before the "Pay period" starts pays for a period that has not begun. A trip or an expense report is read the same way. A "Return" before the "Departure" comes back before leaving. A purchase order or a delivery note is read the same way. A "Delivery date" before the "Order date" delivers goods not yet ordered. An academic transcript or a certificate of graduation or completion is read the same way. A "Date of graduation" or "Date of completion" before the "Date of enrolment" ends the course before it began, and a "Date of issue" before the graduation or completion date certifies a graduation that has not happened yet. An annual earnings and tax withholding statement is read the same way. An "Issue date" before the "Tax year" ends, or before the "Leaving date", states the year's amounts before they are final. A packing list or a commercial invoice is read the same way. An "Arrival date" or "Estimated arrival" before the "On-board date" arrives before the goods are shipped. An itemized medical bill is read the same way. A "Date issued" before the "Date of visit" bills a visit that has not happened yet, and a "Date of discharge" before the "Date of admission" leaves hospital before arriving. A tenancy's deposit settlement is read the same way. A "Move-out date" before the "Move-in date" leaves before moving in, and a "Notice date" after the "Move-out date" gives notice once the tenant has already left. A car's service record is read the same way. A "Next inspection due" before the "Service date" has passed when the car is serviced. A construction or renovation quote is read the same way. A "Completion date" or "Handover date" before the "Start date" or "Construction start" finishes the work before it begins. A phone bill or a service contract is read the same way. A "Service end date" or "Contract end date" before the "Service start date" or "Contract start date" ends the service before it began. A price list, a coupon or a policy is read the same way. A "Valid until" or an "Expiry date" before the "Valid from" or the "Effective date" ends before it begins. A bank statement whose period is written as two lines is read the same way. A "Period end" before the "Period start" ends the period before it begins. An insurance or benefit claim is read the same way. A "Date of claim" before the "Date of incident" claims for a loss that has not happened yet. A treasurer's report or an income and expenditure statement is read the same way. An audit date before the "Fiscal year" or the "Financial year" ends audits accounts that have not closed. When one table's header names both columns of a pair, as a points statement's "Date" and "Expires" do, the two dates of each row are compared. Points that expire before the date they were earned have lapsed on arrival. A row is never compared with another row or another table. A property sale's settlement statement is read the same way. A "Settlement date" or "Closing date" before the "Contract date" pays and hands over the property before the sale is agreed. A banquet or meeting room quote runs the other way. A "Valid until" date after the "Event date" lets the quote be accepted once the event is over.

What it does not flag

A date without a word at the head of its line (a due date in a sentence), a date without its year, and a line with two dates are not compared. With two issue dates, the first is used. A due date eight lines or more from the issue date, and a line that says the deadline has passed (overdue, expired), are read as reporting on a deadline rather than setting this document's own, and are not compared. Only a document whose title names it as minutes (Minutes, Meeting notes) is read as minutes. In minutes, a date outside an action-items section (a heading with Action items or the like), an item marked done (a Done cell, done in brackets or at the end of the line, a checked box), a section reviewing the previous meeting's items, and a deadline without a year that falls early in the next year (Jan 10 at a December meeting) are not compared. In a listing, a move-in date without a date (Available now), a date without its year, a line saying immediately, and a date forty lines or more from the listing date are not compared. In a job posting, a deadline without a date (Open until filled) and a date without its year are not compared; a bare "Posted" pairs only with an application deadline, not with the dates of a blog post or release notes. In an earnings release, a document without a reporting period line, a call date without its year, a line naming another call (Previous call) and a bare "Release date" or "Conference call" are not compared. In a checkup or lab report, only a report date (Report date, Date reported) is compared, not a bare "Issue date", since an admission ticket or a lab order is issued before the test or collection date it names. In a warranty, a deadline without a date, a date without its year, and "Register by" followed directly by the date without a colon are not compared. In a booking, a same-day check-in and check-out (a day use), a cancellation deadline on the check-in day, a line with only a time (from 3:00 PM) and a date without its year are not compared; a bare "Return" is not read as a drop-off, since an order's return window uses it too. Words of different pairs are not compared either (a check-out and a cancellation deadline, a drop-off and a check-in). It is off for statutes, judgments, patents, FAQs, glossaries, and the academic, literature and speech genres. It runs on contracts and manuals, which set their own dates and deadlines, as a warranty does. In a loan or an installment plan, a first payment date is compared only with the contract date (Contract date, Agreement date), not with the issue date or an application date, since a change or refinancing form is signed after the current schedule began. In a recall notice, only a replacement, refund or exchange deadline is compared; a date without its year and a bare "Requests accepted until" or "Deadline for requests" are not, since a notice that a window has closed states the deadline that has passed. In a payslip, a pay date is compared only with the start of the pay period; a pay date within the period (paid on the 25th for the whole month), one on the period's first day and a date without its year are not reported. In a trip, a return is compared only with the departure; a same-day return (a day trip) and a date without its year are not compared, and a "Return date" is not read as the trip's return, since a guide's return date for forms comes before the departure. In a purchase order or a delivery note, a delivery date is compared only with the order date (Order date, PO date); a same-day delivery and a date without its year are not compared, and a bare "Due date" is not read as a delivery date, since an invoice uses it for the payment due date. In a transcript, a graduation or completion date is compared only with the enrolment date (Date of enrolment, Date of admission), and the issue date only with the graduation or completion date, never with the enrolment date; a same-day date and a date without its year are not compared. Where both dates of a pair are written on several lines (an education history listing one school per row), a later date is pointed out only when it is also before the earlier date written closest to it; a later date written once (an issue date below the records) is compared with the first. In a tax statement, the issue date (Issue date, Date of issue) is compared only with the end of the tax year (Tax year) and the leaving date (Leaving date, Date of leaving); a same-day date and a date without its year are not compared, and a "Period covered" is not read as the tax year, since an invoice billed in advance is issued at the start of the period it covers. In a packing list or a commercial invoice, an arrival date (Arrival date, Estimated arrival, ETA) is compared only with the shipment date (On-board date, Shipment date), never with the invoice date, since an invoice may be dated before or after shipment; an estimated date is read only as the later side, and a same-day arrival and a date without its year are not compared. In a medical bill, the issue date (Date issued) is compared only with the date of visit; a same-day issue and a date without its year are not compared. In a hospital stay, a discharge date is compared only with the admission date; a same-day discharge is not reported, and a "Date of admission" is compared with a discharge date and with a graduation date as two separate pairs. In a tenancy, a move-out date (Move-out date, Planned move-out date) is compared with the move-in date and, separately, with the notice date (Notice date, Date of notice); a same-day date and a date without its year are not compared, a planned date is read only as the later side, and a "Planned move-in date" is not read as the move-in date, since a vacancy notice's planned move-in comes after the previous tenant's move-out. In a car's service record, the next inspection (Next inspection, Next inspection due, Next service due) is compared only with the service date (Service date, Date of service); a same-day date and a date without its year are not compared, and a "Last inspection date" is not read as the later side, since the last inspection comes before this service. A lab report's "Test date" or "Report date" is not paired with it. In a construction or renovation document, a completion or handover date (Completion date, Expected completion, Handover date) is compared only with the start (Work start, Construction start, Start date); a same-day date and a date without its year are not compared. A bare "Start date" is compared with a completion date only, never with a "Handover date", since it also heads a new hire's first day, and a handover can come before that; a transcript's "Date of completion" is not read as the end of the works. In a service period, the end date (Service end date, End of service, Contract end date) is compared only with the start date (Service start date, Start of service, Contract start date); a same-day end and a date without its year are not compared, and a bare "Start date" or "End date" is not read, since a project plan or a timesheet uses them too. In a price list, a coupon or a policy, the end of the validity (Valid until, Valid to, Expiry date, Expires) is compared only with its start (Valid from, Effective date, Effective from); a same-day date and a date without its year are not compared, and "Expires" is read only at the head of a line followed by a colon or the date, not in a sentence (your password expires). "Valid until" and "Expires" are still compared with the issue date, as a separate pair. In a statement whose period is written as two lines, the end (Period end, Statement period end) is compared only with the start (Period start, Statement period start); a same-day date and a date without its year are not compared. In an insurance claim, the incident date (Date of incident, Date of loss, Incident date, Date of injury) is compared only with the claim date (Date of claim, Claim date); a same-day claim and a date without its year are not compared. In a treasurer's report, an audit date (Audited, Date audited, Audit date, Date of audit) is compared only with the end of the fiscal or financial year; a same-day date, a period without its year and a year written without its dates (Financial year 2025–26) are not compared. An approval or report date (Approved, Report date) is not compared with the year's end, since a budget is approved before its year begins and an interim report is dated inside the year. An audit signature line (one date, a role such as Auditor or Honorary Auditor, and a name, nothing else, as in Jane Doe, Honorary Auditor, April 12, 2026) is read as the audit date, however far below the year it is, since a signature closes the document; a line with two dates or no name, another role (Chair), and a sentence (examined by the auditors on …) are not. An audit or approval date without a word at the head of its line (the date on a signature line, an approval at the annual general meeting in a sentence) is not compared either.

Turning it off or relaxing it

Silence this one spot (in the document)
<!-- stet: due-before-issue — reason -->
Relax it for the team (the reason is kept as a comment in chaff.yaml)
npx chaffjs relax due-before-issue --why "reason"
Turn it off for the team (chaff.yaml)
rules: due-before-issue: off
Technical details
Layer
L3
Status
stable
Severity
error
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).

normalerror
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, docs/manual
Turned off by the genre in
legal/statute, legal/judgment, legal/patent, docs/faq, docs/glossary, academic/paper, literature/fiction, literature/essay, literature/poetry, literature/play, speech/address, speech/transcript

Genres

Message

The due date {due} is before the issue date {issued}

The action item's due date {due} is before the meeting date {meeting}

"{later_label}" {later} is before "{earlier_label}" {earlier}

"{later_label}" {later} is before the end of the "{earlier_label}", {earlier}

"{later_label}" {later} is before the start of the "{earlier_label}", {earlier}

This page is built from the rule's definition file:packages/chaff/rules/due-before-issue.yaml