Work out what an invoice actually comes to — line items, discount, tax and shipping — before you commit it to a PDF.
3 × 450 = 1,350 − 50 discount = 1,300 + 20% tax 260 + 25 shipping = 1,58520% tax is applied to the discounted subtotal, not the original line total. That ordering is what most tax authorities expect.
Every compliant invoice follows the same arithmetic order: extend each line (quantity × unit price), subtract any discount, apply tax to that discounted subtotal, then add charges like shipping. Changing the order changes the answer, which is why invoices get disputed over a few cents.
The subtle one is tax timing. If you discount first and tax second, you charge tax on what the customer actually pays. Tax the original amount and you over-bill your client by the tax on the discount — a small error that shows up immediately in an audit or a bookkeeper reconciliation.
Shipping is usually not taxable in the same way as goods, so it is added after tax here. Some jurisdictions tax shipping too; if yours does, add it to the subtotal instead and note the treatment on the invoice so the client’s AP team does not query it.
When the number above is right, take it straight into the invoice generator — the fields carry across, so you are not retyping the same figures and introducing a typo on the way.
Apply the discount first, then tax the reduced subtotal. This is the standard treatment for trade discounts in most VAT, GST and sales tax regimes, and it means the customer pays tax only on what they are actually charged.
Extend each line with its own discount applied, sum the lines, and tax the sum. The result matches an invoice-level discount whenever the taxed rate is the same across lines, so either approach is defensible as long as the invoice states which one you used.
This one applies a single rate across the invoice. If your invoice mixes rates — for example goods at 20% and books at 0% — total each rate group separately and add the tax amounts before the final total.
No. The arithmetic runs in your browser and the numbers never leave the page. There is no account, no upload and no stored history.