A $900 quote is where small shops quietly lose money — so I scripted the quote math
Ask a small contractor what a job costs and you'll get a number. Ask what the customer actually owes — subtotal, tax, deposit, balance on completion — and the number gets built live, on a napkin, differently every time. That's where the quiet losses live: a forgotten tax line, a deposit that doesn't cover materials, a total the customer disputes because it was never written the same way twice.
I built a small quote builder (plain Python, stdlib only) that takes line items and prints the whole structure, the same way every time. Real output, one fencing job:
Subtotal : $810.00
GST : $40.50
Total : $850.50
Deposit : $255.15 (30%)
Valid to : 2026-11-09
Nothing exotic — that's the point. The value isn't the arithmetic; it's that the arithmetic is identical on quote one and quote one hundred, with the deposit and the expiry date printed instead of remembered.
It's one workflow in the Small Business AI Pack — quote builder plus the paperwork-loop tools around it (intake, follow-up, invoice chasing): https://baldwinson3.gumroad.com/l/small-business-ai-pack
Demo figures from the tool's own sample run. Tax treatment varies by jurisdiction — set yours before quoting for real.