The order of the calculation
1
Subtotal
Add up every line amount.
2
Discount
Subtract the discount. A percent discount is taken against the pre-discount subtotal.
3
Base for tax
subtotal − discount. If a discount is larger than the subtotal, the base floors at zero rather than going negative.4
Tax
Apply each named tax rate to that same base. Taxes never compound.
5
Total
base + all taxes.Discounts
A 10% discount on a 216`.
Taxes
Add as many named rates as you need. Each row has a Tax name (such asVAT) and a rate as a percentage (such as 20). A row only counts once both fields are filled.
Taxes do not compound
This is the rule that trips people up. Every tax line is calculated on the same post-discount base. A second tax is never applied on top of the first. Subtotal $1,000, no discount, two taxes:
If taxes compounded, the total would be
1,000 × 1.20 × 1.05 = $1,260.00. TimeTracker does not do that.
A full worked example
Bluebird Coffee’s March invoice at Northwind Studio:
Note that the VAT is on 2,160. Tax always follows the discount.
Currency
The currency locks
The Currency field is editable until the invoice has a line. After that it is greyed out. To change it, remove every line, or start a new invoice. This exists so an invoice can never end up holding lines priced in a currency it no longer uses.Exchange rates
If a selected line is priced in a different currency from the invoice, an Exchange rates section appears in the builder:Some selected lines are billed in a different currency than this invoice (USD). Enter the rate to convert each into USD.You get one field per source currency, labelled for example EUR → USD rate.
How the rate is applied
The rate is a multiplier: one unit of the source currency equals this many units of the invoice currency. Ana Ferreira bills at €80/hour. The invoice is in USD. You enter1.08.
The line is stored in USD, and the rate
1.08 is frozen onto it.
The rate is frozen
The exchange rate is snapshotted onto the invoice line when the invoice is created. Using a different rate on a later invoice never re-prices an earlier one. See /rates/rate-snapshots.Rounding
Money is rounded once, at the end, using half-up rounding, to the currency’s own number of decimal places.
Nothing is rounded partway through, so the subtotal, discount and tax on an invoice always add up to the total exactly.
Expense markup
A billable expense on an invoice is billed at its amount plus its markup:amount × (1 + markup% ÷ 100)
A 230`. The markup is set on the expense, not on the invoice. See /expenses/billable-expenses.
What TimeTracker does not do
TimeTracker records the tax you tell it to charge. It is not a tax determination engine – check your own obligations.
Permissions
Common questions
Is tax applied before or after the discount?
Is tax applied before or after the discount?
After. The base for every tax line is
subtotal − discount.Can I put a discount on one line only?
Can I put a discount on one line only?
No. The discount applies to the whole invoice. For a per-line reduction, adjust the line itself or add a negative-value manual line.
What if the discount is larger than the subtotal?
What if the discount is larger than the subtotal?
The base floors at zero. The invoice never goes negative.
Can I have two tax rates?
Can I have two tax rates?
Yes, as many as you need. They all apply to the same post-discount base.
Can I change the currency after adding lines?
Can I change the currency after adding lines?
No. Remove every line first, or start a new invoice.
Does the exchange rate I enter get saved for next time?
Does the exchange rate I enter get saved for next time?
It is frozen onto this invoice’s lines. The next invoice asks again, so you always confirm the rate you are using.
Why does a JPY invoice have no decimals?
Why does a JPY invoice have no decimals?
Because the yen has no minor unit. Each currency is rounded to its own number of decimal places.
Troubleshooting
Related guides
Currencies and exchange rates
Currency across the whole product.
Create an invoice
Where discount and tax are entered.
Record a payment
Payment currency must match.
Rate snapshots
Why a frozen rate matters.
Invoice statuses
How the balance is derived.
Invoicing troubleshooting
Every message in one place.