Compute a tax figure with tested code
computeComputes a tax figure with fixed, tested code instead of mental arithmetic. Use this for any figure an engine below covers; never compute that figure yourself. Pass only the facts the user gave: the engine applies the tax rules itself (allowances, standard deductions, bands, caps) and never asks you to decide a rule. Returns the result, every step, each rate used with its skill, section and quoted line, the engine's assumptions, skills_used with each skill's approval label (state it exactly as given) and a receipt id. Every engine takes tax_year and refuses a year it has no figures for. Facts marked * are required; an optional fact you leave out takes its default, and the answer states that as an assumption. If the engine returns missing_rule or needs_input, tell the user exactly what is missing or ask them for the fact. Never call again with guessed or altered facts to get a number, and never compute the figure yourself instead. Engines:
nl_vpb_2026 [NL]: Netherlands corporate income tax (vennootschapsbelasting) for 2026 on a BV/NV's taxable amount (after loss offset and exemptions). Facts: taxable_amount* (number), tax_year* (2026).
uk_ani_pension_target_2026_27 [GB]: UK 2026-27: how much to pay (net) into a relief-at-source personal pension to bring adjusted net income down to a limit. Targets: personal_allowance_taper (GBP 100,000), child_benefit_charge_nil (GBP 60,000), tax_free_childcare (limit not served by any skill: always returns missing_rule until a skill serves it). Facts: total_taxable_income* (number), existing_gross_ras_contributions (number, default 0), gross_gift_aid (number, default 0), target* (personal_allowance_taper|child_benefit_charge_nil|tax_free_childcare), tax_year* (2026-27).
uk_paye_take_home_2026_27 [GB]: UK employee annual income tax (rUK rates: England, Wales, Northern Ireland) and employee Class 1 NIC (category A) on salary for 2026-27, and take-home pay. Annual basis. Facts: annual_salary* (number), region* (england|wales|northern_ireland|scotland), nic_category (string, default A), other_income (number, default 0), gross_pension_contributions_ras (number, default 0), tax_year* (2026-27).
ca_income_tax_2026 [CA]: Canada personal income tax for 2026 or 2025 for a single person resident in Ontario, British Columbia or Alberta on 31 December: CPP and EI, net and taxable income, federal tax (basic personal amount with its phase-down, Canada employment amount), provincial tax (Ontario surtax, tax reduction, LIFT and Health Premium; BC tax reduction; Alberta 8% band and supplemental credit), the balance owing or refund against tax already paid, and what more RRSP saves. Quebec, dividends, a spouse or dependants, age 65 or over, and employment plus self-employment together are refused. Facts: province* (ON|BC|AB|QC), employment_income (number, default 0), self_employment_net_income (number, default 0), other_income (number, default 0), eligible_dividends (number, default 0), other_dividends (number, default 0), rrsp_deduction (number, default 0), tax_withheld (number, default 0), has_spouse_or_partner (boolean, default false), dependants (number, default 0), age_65_or_over (boolean, default false), tax_year* (2025|2026).
ca_cpp_ei_employee_2026 [CA]: Canada (outside Quebec) employee CPP (base + first additional), CPP2 and EI premiums for a full calendar year 2026 with one employer. Facts: annual_pensionable_earnings* (number), province* (string), months_employed (number, default 12), tax_year* (2026).
au_sbito_2026_27 [AU]: Australia 2026-27 small business income tax offset for an individual resident: 16% of the tax on net small business income, capped at $1,000, aggregated turnover under $5m. Facts: taxable_income* (number), net_small_business_income* (number), aggregated_turnover* (number), tax_year* (2026-27).
au_resident_tax_2026_27 [AU]: Australia, resident for the full 2026-27 year: income tax on taxable income less LITO, plus 2% Medicare levy, plus MLS check; take-home = gross income less those. Facts: gross_income* (number), other_deductions (number, default 0), has_salary_or_wage_income* (boolean), actual_work_expenses_claimed (number, default 0), has_private_hospital_cover* (boolean), has_help_debt (boolean, default false), tax_year* (2026-27).
ie_self_employed_2025_2026 [IE]: Ireland, self-employed sole trader, tax year 2025 or 2026: income tax (bands, personal, earned income and employee credits, pension relief), USC, PRSI Class S, the Form 11 balance, and the minimum preliminary tax for the next year (lowest of 90% of next year, 100% of this year, 105% of the year before for direct debit). Facts: tax_year* (2025|2026), status* (single|married_one_income|married_two_incomes|single_parent), trading_profit* (number), capital_allowances (number, default 0), other_income (number, default 0), other_income_is_paye (boolean), spouse_income (number), spouse_income_is_paye (boolean), paye_income_tax_deducted (number), paye_usc_deducted (number), pension_contributions (number, default 0), age (number), age_65_plus (boolean, default false), medical_card (boolean, default false), home_carer_credit (boolean, default false), preliminary_tax_paid (number, default 0), next_year_liability_estimate (number), pays_by_direct_debit (boolean, default false), liability_year_before (number).
ie_income_tax_usc_2026 [IE]: Ireland 2026: income tax (after personal + PAYE credits) and USC for a single PAYE employee for the full year, cumulative basis. Facts: gross_pay* (number), employee_pension_contribution (number, default 0), status* (string), age_70_or_full_medical_card (boolean, default false), tax_year* (2026).
mt_household_comparison_2026 [MT]: Malta resident married couple, basis year 2026 (year of assessment 2027) or basis year 2025 (year of assessment 2026): compares the joint computation on the married table, separate computation (article 49A or 50) with each spouse on the single or parent table, and either of those with spouse B's part-time self-employment profit taxed at the final 10% (article 90A, up to EUR 12,000), and says which gives the least tax. Facts: spouse_a_chargeable_income* (number), spouse_b_chargeable_income* (number), married_resident_living_together* (boolean), children (number), eu_eea_or_long_term_resident (boolean), children_born_and_resident_in_malta (number), separate_computation_available (boolean), spouse_a_parent (boolean), spouse_b_parent (boolean), spouse_b_part_time_profit (number, default 0), part_time_eligible (boolean), separate_route (article_50|article_49A), spouse_b_part_time_in_own_right (boolean), income_or_deductions_to_allocate (boolean, default false), credits_or_other_deductions (boolean, default false), tax_year* (2025|2026).
mt_income_tax_2026 [MT]: Malta resident income tax on chargeable income for basis year 2026 (year of assessment 2027) or basis year 2025 (year of assessment 2026): picks the single, married or parent table, including the 2026 qualifying-child tables, from the person's facts. Facts: chargeable_income* (number), resident* (boolean), status* (single|married_joint|parent|single_parent_sole_custody), children (number), eu_eea_or_long_term_resident (boolean), children_born_and_resident_in_malta (number), tax_paid (number, default 0), tax_year* (2025|2026).
de_est_tariff_2026 [DE]: Germany 2026 income tax from the § 32a EStG tariff on taxable income (zu versteuerndes Einkommen), Grundtarif or splitting. Excludes solidarity surcharge and church tax. Facts: taxable_income_zve* (number), assessment* (single|joint), tax_year* (2026).
pt_ss_independent_2026 [PT]: Portugal 2026: monthly social security contribution of a self-employed worker (quarterly regime) from the quarter's declared service/goods income; applies to the declaration month and the next two. Facts: quarter_services_income* (number), quarter_goods_income (number, default 0), is_eni_or_eirl (boolean, default false), base_adjustment_pct (number, default 0), exempt (boolean, default false), tax_year* (2026).
us_federal_income_tax_2026 [US]: US federal individual income tax on Form 1040 for tax year 2025 or 2026: AGI, standard or itemized deduction, the simplified QBI deduction, bracket tax with the 0%/15%/20% rates on qualified dividends and long-term gains, the child tax credit, self-employment tax, Additional Medicare Tax and net investment income tax, plus the estimated-tax safe harbour and due dates. Refuses the alternative minimum tax when it cannot be shown to be zero, QBI above the threshold, the child tax credit above its phase-out start, and 2025 married filing separately. Facts: filing_status* (single|married_filing_jointly|married_filing_separately|head_of_household), wages (number, default 0), w2_social_security_wages (number), w2_medicare_wages (number), self_employment_net_profit (number, default 0), self_employed_retirement_and_health_deductions (number, default 0), other_adjustments (number, default 0), interest (number, default 0), ordinary_dividends (number, default 0), qualified_dividends (number, default 0), short_term_capital_gains (number, default 0), long_term_capital_gains (number, default 0), other_ordinary_income (number, default 0), itemized_deductions (number), itemized_state_and_local_taxes (number), cash_charitable_gifts (number, default 0), dependents_under_17 (number, default 0), materially_participates (boolean), prior_year_tax (number), prior_year_agi (number), tax_year* (2025|2026).
us_se_tax [US]: US self-employment tax (Schedule SE regular method) for tax year 2025 or 2026: 92.35% of net profit, 12.4% social security up to the wage base less W-2 SS wages, 2.9% Medicare uncapped. Excludes the 0.9% Additional Medicare Tax (Form 8959). Facts: schedule_c_net_profit* (number), w2_social_security_wages (number, default 0), tax_year* (2025|2026).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"engine": "<engine>",
"facts": "<facts>"
},
"name": "compute"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| facts | Yes | The engine's facts by name, e.g. {"annual_salary": 60000, "region": "england"}. Amounts are plain numbers in the engine's currency. | |
| engine | Yes | The engine name, from the list in this description (or start's `engine.name`). | |
| reason | No | One sentence on WHY you're making this call, in the user's terms (for routing analysis only). Optional. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| what | No | needs_input: the fact to ask for. missing_rule: the figure no skill serves. | |
| steps | No | ||
| engine | No | ||
| result | No | label, value, currency and every computed line. | |
| schema | No | ||
| status | Yes | ||
| message | No | ||
| receipt | No | id (sha256 of engine, version, facts and result), engine_version, computed_at. | |
| tax_year | No | The tax year the figures are for. | |
| assumptions | No | ||
| instruction | No | On a refusal: what to do next. Follow it. | |
| next_action | No | ||
| skills_used | No | slug, label ('Approved by [name]' or 'Not yet approved'), approval. Read live. | |
| constants_used | No | name, value, slug, section, quote: each figure and the skill line it came from. | |
| engine_version | No |