Advanced Tax Setup and Tax Codes
Most US clients don't need to handle tax at all, but for clients billing in Canada, overseas, or anywhere with multi-component tax requirements (GST, PST, VAT, and similar), BaseBuilders supports an advanced tax structure beyond simple tax rates. This article covers tax rounding methods, enabling advanced tax, building tax rates and tax codes, and applying and overriding tax at the project and invoice level.
Here is a short walkthrough showing how to set up a combo tax code: Demo
Tax Rounding Methods
Before getting into advanced tax, it's worth understanding how BaseBuilders rounds tax, since this can cause invoices to differ by a cent or two depending on the method used:
- Round at the subtotal — all billable amounts are subtotaled first, tax is calculated on that subtotal, and the result is rounded to the nearest cent.
- Round at each line item — tax is calculated and rounded on each individual line item, then those rounded amounts are added together.
The two methods will often produce results that are a penny or two apart, though they'll sometimes match exactly. If you use Xero, note that Xero requires rounding at the line item level, so that's the method to choose if Xero is your accounting integration.
Basic vs. Advanced Tax
By default, BaseBuilders uses a basic tax interface where you set up simple tax rates. Behind the scenes, these basic rates are actually functioning as tax codes — just simplified to a single rate each.
Advanced Tax Setup can be turned on to unlock the full distinction between tax rates and tax codes, letting you build more complex, multi-component tax structures. Once you've made changes under advanced tax, you won't be able to toggle back to basic without first undoing those changes.
Tax Rates
Tax rates are the individual building blocks — for example, GST, PST, or VAT — each with its own percentage. Since tax rates can vary by jurisdiction (PST varies by Canadian province, for example), you can create as many tax rates as you need, each named however makes sense internally (for example, "BC" for a 7% British Columbia PST rate).
Each tax rate has two names:
- An internal name, for your own reference.
- A print label, which is what actually appears on the invoice (for example, printing as "PST" even if you named the rate something more specific internally).
Tax Codes
Once your tax rates exist, you build tax codes from them. A tax code is what actually gets applied to an invoice, and can be made up of one or more rate components:
- A simple tax code might apply a single rate at 100% of the billed amount — for example, a GST-only code charging 5% on everything billed.
- A combination tax code can apply multiple components at different portions of the billed amount — for example, 5% GST on 100% of the amount, plus 7% PST on only 30% of the amount (reflecting how certain provincial tax rules only apply PST to a portion of billings).
You can add as many components to a tax code as needed if a situation requires a third or fourth tax.
Non-Taxable, Exempt, and Zero-Rated
Beyond standard taxed codes, you can create codes such as Non-Taxable and Exempt. These are kept distinct because non-taxable, exempt, and zero-rated are treated differently for accounting and reporting purposes, even though they may look similar on an invoice.
Applying a Tax Code to a Project
On a project's billing settings, you select which tax code applies — for example, a combination code applying both GST and PST. This becomes the default tax code for new invoices generated from that project.
Taxes on an Invoice
When an invoice is generated (for example, through Rocket Billing), it calculates tax based on the project's assigned tax code, applied across the relevant fees and expenses. Each tax component (such as GST and PST) prints as its own labeled line, using the print labels set up on the tax rates.
Overriding Tax at the Line Item Level
Beyond simply turning tax on or off, advanced tax lets you override which tax code applies to individual line items on an invoice:
- A line item can be set to a different tax code entirely — for example, marking one line item as Exempt, or GST-only instead of the full combination code.
- A line item can be set to No Tax.
When a line item's tax is overridden from the project's default, it's visually marked (shown with a box around it) to indicate it no longer matches the default. This gives you full line-by-line control beyond whatever the project's base tax code specifies.
Behind the scenes, BaseBuilders effectively sorts billed amounts into separate buckets by which tax rate applies to them, taxes each bucket at its own rate, and sums the results into the tax totals shown on the invoice.
What Gets Taxed by Default
Under a project's Billing Options, you decide which categories of billing are taxed by default: Expenses, Services, Project Fees, and Pass-Throughs. Each of these can be toggled on or off — when on, items in that category default to taxed, though individual line items can still be overridden on the invoice itself as described above.
Taxability is set at the category level, not per phase — there's no option to tax some phases' fees and not others. If project fees are taxed, that applies across all phases; it isn't adjustable phase by phase.
Best Practice
If you bill in a jurisdiction with multi-component tax requirements (such as Canadian GST/PST), use Advanced Tax Setup rather than trying to approximate it with basic tax rates — building proper tax codes from individual tax rates lets BaseBuilders calculate split or partial taxation (like PST on only a portion of billings) correctly rather than requiring manual adjustment. Choose your rounding method based on your accounting software's requirements (line-item rounding for Xero) rather than switching back and forth, since the two methods can produce small discrepancies between systems if mismatched.
Summary
Advanced Tax Setup splits simple tax rates into reusable tax rates (individual percentages with an internal name and a print label) and tax codes (built from one or more rate components, which can apply to a full or partial portion of billed amounts). Tax codes are assigned at the project level and can include Non-Taxable, Exempt, or standard taxed variants. Invoices apply the project's default tax code, but individual line items can be overridden to a different code or to no tax, with overridden items visually flagged. Which billing categories (Expenses, Services, Project Fees, Pass-Throughs) are taxed by default is set under a project's Billing Options, applying uniformly across all phases rather than phase by phase. Tax rounding can be set to round at the subtotal or at each line item, with Xero requiring the line-item method.