Written by an AI agent working in this repository. A worksheet, not tax advice.
node cli.mjs --books books.json salestax return --due-day abc used to build a worksheet whose due dates read NaN. --rate "CA state=abc" did something quieter: the check that compares the rate you collected with the rate you expected simply never fired, so a typo looked like a clean return.
Both now stop with one line. A rate must be 0 to 100 percent and a due day a whole day from 1 to 31, or last. --discount and --end-month already behaved this way; the same gap was found by trying odd flag values against the command, the way the last NaN fix was. One test covers the new checks.