Obolus.taxcompare - Compare net income
taxcompareCompare annual gross, net pay, taxes, and employee social contributions across two or more supported countries. Use shared_gross for the same offer and local_median_gross for country-market benchmarks. Provide tax_year and at least two countries. Use berechne for detailed single-country payroll.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | Adult age in the selected tax year. | |
| period | No | Period for salary_ct. Use annual when salary_ct is the annual gross salary. Use monthly when salary_ct is one monthly gross salary; taxcompare annualizes it before comparing countries. annual_gross is always annual and ignores this field. | annual |
| regions | No | Country-keyed tax regions, for example CH: ZH. Omitted regions use country defaults, reported in calculation_profile. | |
| children | No | Number of children or dependents used as a broad comparison assumption. Country-specific child allowance and credit rules are simplified for comparability. | |
| currency | Yes | Input and output currency: EUR, USD, CHF, CAD, AUD, GBP, or lower-case equivalents. Results normalize currency codes to lower-case. Unlike berechne, taxcompare prefers salary_ct for salary input and returns major currency units. | |
| tax_year | Yes | Tax year, for example 2026. The same tax year is applied to every selected country. | |
| countries | Yes | List of country tax systems to compare. Use at least two countries for a comparison. Supported values: DE, AT, CH, US, UK, IE, CA, AU. | |
| salary_ct | No | Preferred salary input for MCP calls. Salary in minor units for the selected period, for example 5000000 for EUR 50,000. With period=annual this is annual salary; with period=monthly this is monthly salary and Obolus annualizes it for the comparison. Required for shared_gross mode unless annual_gross is provided as a legacy alias. | |
| gross_mode | No | Comparison basis. Use shared_gross for the same user-provided annual gross across all countries. Use local_median_gross for country-specific editorial median gross benchmarks. Defaults to shared_gross when omitted. | shared_gross |
| person_type | No | Broad household assumption for comparison. single maps to joint_assessment=false; married maps to joint_assessment=true unless joint_assessment is provided explicitly. For precise country-specific filing details, use berechne. | single |
| annual_gross | No | Backward-compatible annual gross salary alias in major currency units, not cents. Prefer salary_ct. Example: 50000 means 50,000 in the selected currency. Required for shared_gross mode only when salary_ct is not provided; optional and ignored when omitted for local_median_gross. | |
| joint_assessment | No | Broad joint filing / joint assessment assumption for comparable country-level estimates. For precise country-specific filing details, use berechne. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| results | Yes | Country-level comparison results with gross salary, net salary, income/payroll tax, social contributions, total deductions, and effective burden. | |
| summary | Yes | Normalized annual major-unit amounts for every country result. Use key and country together to render stable comparison cards or tables. | |
| tax_year | Yes | Tax year actually used for every country result. | |
| warnings | Yes | Non-blocking warnings associated with this comparison. | |
| source_url | Yes | Canonical Obolus TaxCompare URL for this result. | |
| assumptions | Yes | Normalized comparison inputs used for the calculation, including age, tax year, countries, gross mode, salary, and household assumptions. | |
| gross_inputs | Yes | Annual gross salary input used for each country, keyed by country code and expressed in the selected major currency. In shared_gross mode these values are usually identical; in local_median_gross mode they differ by country benchmark. | |
| calculated_at | Yes | UTC timestamp when this response was assembled. | |
| localized_cta | Yes | Localized labels for opening the visual TaxCompare report. | |
| visual_report | Yes | Deep link to TaxCompare with the tool input, countries, year, and agent attribution prefilled. | |
| method_version | Yes | Calculation method or benchmark method version used for this response. | |
| ranking_by_net | Yes | Countries ranked by estimated annual net salary, highest net first. Use this for 'where do I keep more money' and 'rank by net income' answers. | |
| comparison_basis | Yes | Basis used for the comparison: shared_gross for the same gross salary in each country, or local_median_gross for country-specific median benchmarks. | |
| contract_version | Yes | Obolus public contract version used to shape this response. | |
| orientation_note | Yes | Reminder that the result is an orientation estimate, not professional advice. | |
| tax_data_version | Yes | Tax-data or backend-engine revision used for this response. | |
| benchmark_sources | No | Country-level benchmark source metadata used in local_median_gross mode, keyed by country code. | |
| benchmark_method_version | No | Editorial benchmark method version used when comparison_basis is local_median_gross. |