Keep in mind that you are responsible for the correctness of your data, and the output should be used for estimating taxes or as an aid when doing your taxes, not as a definitive source of truth.
You can edit your Tax Presets by going to Settings -> Taxes.
Found an issue with a built-in preset? Maybe you want to share your own one? Go to our Github repository and create an issue or pull request.
Tax presets are bound to a single country, currency, and currency date offset. Multiple presets can share the same settings, and they will all be accumulated on a single report.
For each transaction on the account that has a tax preset applied, defined tax rules will be evaluated. This includes Buy
, Sell
, Dividend / Interest / Rent
and Others
. Whenever an Apply Tax
statement is encountered, the current revenue
, expense
, and tax
are accumulated within a selected Tax Group
. You can modify the revenue
and expense
with the Set
statement. The tax
is calculated as rate * (revenue - expense)
.
Tax Group
is optional, but you might want to group taxes from stock sales separately from taxes on dividends. They can also be nested similarly to Tags, by using the /
symbol - eg. Dividends/US
. The great thing is that tax groups are global, so different tax presets can use the same tax group as long as the country, currency, and offset match.
It is recommended to create a few separate Tax Presets if the tax situation varies across accounts. For example, you can have a single preset for all your investment accounts and separate presets for various tax-sheltered accounts. However, if the calculation logic is very similar, you can use just a single preset and check for tags to apply different logic.
Use the built-in snippets for a great starting point. For example, to calculate taxes on stock sales, use the "Stock Sales Income" snippet, which will add some pre-made statements for you.
Presets are built using statements. The most basic one is the If
statement. It allows you to check the properties of the currently evaluated transaction, and if the conditions match, the nested statements will be executed. If they don't match, the next else
or else if
block will be checked.
To insert a new statement, hover over the space before, after or between existing statements and click the blue divider that shows up and select a statement or preset from the menu.
To insert a new "If" block, hover over the space before, after or between existing if/else and click the grey divider that shows up
Each statement and If block has a menu, which you can use to Copy, Cut, Duplicate and Delete them.
Once you Copy or Cut a statement, you can paste it the same way you add new statements - a Paste option will show up there.
You can copy & paste between two different Tax Presets and even between two different projects.
When complex conditions are needed, you can wrap the first condition within an And/Or block and combine multiple conditions this way.
Calculations will only be helpful if you understand the numbers. There are a couple of ways that you can inform your future self:
Preset Note - Every preset can have a richly formatted note that will be displayed in the Taxes Due Report. It's the best place to set the context for the numbers.
Add Note statement - You can add multiple notes to tax events. They will be displayed in the Notes
column of the Taxes Due report for each transaction with tax applied.
Comment statement - You can add richly formatted comments within the rules to better describe the logic.