addedInput schema / properties / asset
Added value: +{
+ "default": "shares",
+ "description": "What was sold: 'shares' (shares and funds) or 'property' (real estate). Rules differ by asset in many countries",
+ "enum": [
+ "shares",
+ "property"
+ ],
+ "type": "string"
+}
changedInput schema / properties / capitalLosses / description
Previous value: -"Capital losses to offset, in AUD — applied against the gross gain before any discount"New value: +"Capital losses to offset — applied before any discount; FI: from this year or carried forward (five years)"
changedInput schema / properties / costBase / description
Previous value: -"Cost base in AUD — what the asset cost, including eligible incidental costs"New value: +"What the asset cost, in local currency, including eligible incidental costs. Required except for FI, where omitting it uses the deemed acquisition cost (pass FI buying and selling costs as saleExpenses)"
addedInput schema / properties / country
Added value: +{
+ "default": "AU",
+ "description": "2-letter ISO code of a covered country (upper case); defaults to AU",
+ "enum": [
+ "AE",
+ "AR",
+ "AT",
+ "AU",
+ "BE",
+ "BG",
+ "BR",
+ "CA",
+ "CH",
+ "CL",
+ "CN",
+ "CO",
+ "CY",
+ "CZ",
+ "DE",
+ "DK",
+ "EE",
+ "EG",
+ "ES",
+ "FI",
+ "FR",
+ "GB",
+ "GH",
+ "GR",
+ "GT",
+ "HK",
+ "HR",
+ "HU",
+ "ID",
+ "IE",
+ "IL",
+ "IN",
+ "IS",
+ "IT",
+ "JM",
+ "JP",
+ "KE",
+ "KR",
+ "LI",
+ "LK",
+ "LT",
+ "LU",
+ "LV",
+ "MT",
+ "MU",
+ "MX",
+ "MY",
+ "NG",
+ "NL",
+ "NO",
+ "NZ",
+ "PH",
+ "PK",
+ "PL",
+ "PT",
+ "QA",
+ "RO",
+ "RS",
+ "RU",
+ "SA",
+ "SE",
+ "SG",
+ "SI",
+ "SK",
+ "TR",
+ "TW",
+ "TZ",
+ "UA",
+ "UG",
+ "US",
+ "ZA"
+ ],
+ "type": "string"
+}
changedInput schema / properties / heldMoreThan12Months / description
Previous value: -"True when the asset was held over 12 months, which halves the taxable gain (the 50% CGT discount)"New value: +"True when the asset was held at least 12 months (e.g. the AU 50% discount, the US long-term rate). Shorthand for holdingMonths: true = 12, false = 0"
addedInput schema / properties / holdingMonths
Added value: +{
+ "description": "Whole months the asset was held; overrides heldMoreThan12Months",
+ "minimum": 0,
+ "type": "integer"
+}
changedInput schema / properties / income / description
Previous value: -"Other taxable income for the year in AUD (salary etc.) — sets the marginal rate the gain stacks on"New value: +"Other taxable income for the year, in local currency — sets the marginal rate where the gain is taxed as income (e.g. AU, US short-term). Required where the rule needs it; the answer says so"
addedInput schema / properties / otherCapitalIncome
Added value: +{
+ "default": 0,
+ "description": "FI: other capital income this year (dividends, rent, other gains) — decides how much of the gain falls above the 30 000 € threshold",
+ "minimum": 0,
+ "type": "number"
+}
changedInput schema / properties / proceeds / description
Previous value: -"Sale price of the asset in AUD"New value: +"Sale price of the asset, in local currency"
addedInput schema / properties / saleExpenses
Added value: +{
+ "default": 0,
+ "description": "FI: brokerage, fees and other costs of buying and selling",
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / taxYear
Added value: +{
+ "description": "FI: calendar tax year like '2026'; omit for the current year",
+ "pattern": "^\\d{4}$",
+ "type": "string"
+}
addedInput schema / properties / totalProceedsThisYear
Added value: +{
+ "description": "FI: the year's total sale prices, this sale included, for the 1 000 € small-disposals rule; omit when this is the only sale",
+ "minimum": 0,
+ "type": "number"
+}
addedInput schema / properties / yearsHeld
Added value: +{
+ "description": "FI: whole years owned — 10 or more raises the deemed acquisition cost from 20% to 40% of the price",
+ "minimum": 0,
+ "type": "number"
+}
changedInput schema / required
Previous value: -[
- "income",
- "proceeds",
- "costBase",
- "heldMoreThan12Months"
-]New value: +[
+ "proceeds"
+]
addedOutput schema / properties / assumptions
Added value: +{
+ "description": "Assumptions the answer depends on — relay them with the figure",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
changedOutput schema / properties / cgtPayable / description
Previous value: -"Extra tax caused by the gain (AUD)"New value: +"Extra tax caused by the gain, in local currency; null when rule-only"
changedOutput schema / properties / cgtPayable / type
Previous value: -"number"New value: +[
+ "number",
+ "null"
+]
addedOutput schema / properties / costDeducted
Added value: +{
+ "description": "FI: the cost deducted from the price",
+ "type": "number"
+}
changedOutput schema / properties / country / description
Previous value: -"Always AU — this tool is Australia-only"New value: +"Country estimated (2-letter ISO code)"
removedOutput schema / properties / country / enum
Removed value: -[
- "AU"
-]
addedOutput schema / properties / currency
Added value: +{
+ "description": "Currency of every monetary field",
+ "type": "string"
+}
changedOutput schema / properties / discountApplied / description
Previous value: -"Whether the 50% discount halved the taxable gain"New value: +"Whether a discount or inclusion rate reduced the taxable gain (e.g. the AU 50% discount). Always false for FI"
addedOutput schema / properties / exemptionApplied
Added value: +{
+ "description": "Annual exempt amount or allowance used, where there is one",
+ "type": [
+ "number",
+ "null"
+ ]
+}
changedOutput schema / properties / grossGain / description
Previous value: -"Proceeds minus cost base, floored at 0 (AUD)"New value: +"Proceeds minus cost (FI: minus the larger of actual or deemed cost). Floored at 0, local currency"
changedOutput schema / properties / grossGain / type
Previous value: -"number"New value: +[
+ "number",
+ "null"
+]
addedOutput schema / properties / loss
Added value: +{
+ "description": "FI: the loss on this sale, if any (only ever from the actual cost)",
+ "type": "number"
+}
addedOutput schema / properties / lossDeductible
Added value: +{
+ "description": "FI: whether that loss can be deducted",
+ "type": "boolean"
+}
changedOutput schema / properties / lossOffset / description
Previous value: -"Capital losses actually applied (AUD)"New value: +"Capital losses actually applied"
changedOutput schema / properties / lossOffset / type
Previous value: -"number"New value: +[
+ "number",
+ "null"
+]
addedOutput schema / properties / method
Added value: +{
+ "description": "FI: whether the actual cost or the deemed acquisition cost was deducted",
+ "enum": [
+ "actual",
+ "deemed"
+ ],
+ "type": "string"
+}
addedOutput schema / properties / notes
Added value: +{
+ "description": "FI: rules that decided the answer, in plain words",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
addedOutput schema / properties / reason
Added value: +{
+ "description": "Why no figure was computed (rule-only), in plain words",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / relatedFact
Added value: +{
+ "additionalProperties": false,
+ "description": "One sourced background fact about the country's capital gains tax; the figures do not depend on it. Absent when no sourced fact fits.",
+ "properties": {
+ "context": {
+ "description": "Present on a state or provincial answer: the fact is about the country as a whole",
+ "enum": [
+ "national"
+ ],
+ "type": "string"
+ },
+ "country": {
+ "description": "2-letter ISO code of the country the fact is about",
+ "type": "string"
+ },
+ "detail": {
+ "description": "Longer supporting detail, when the corpus has it",
+ "type": "string"
+ },
+ "fact": {
+ "description": "The fact, in one or two sentences",
+ "type": "string"
+ },
+ "kind": {
+ "description": "'origin' = when the tax began and what it replaced; 'anniversary' = the same, on the anniversary of its start date; 'story' = a dated story from the facts corpus",
+ "enum": [
+ "origin",
+ "story",
+ "anniversary"
+ ],
+ "type": "string"
+ },
+ "more": {
+ "description": "The tool that returns the full sourced fact set for this country",
+ "enum": [
+ "tax_facts"
+ ],
+ "type": "string"
+ },
+ "sourceName": {
+ "description": "Who the fact is sourced to",
+ "type": "string"
+ },
+ "sourceUrl": {
+ "description": "Link to that source — always present",
+ "type": "string"
+ },
+ "topic": {
+ "description": "Which tax the fact is about",
+ "enum": [
+ "gst",
+ "income",
+ "company",
+ "cgt",
+ "super",
+ "studentloan",
+ "general"
+ ],
+ "type": "string"
+ },
+ "verifiedDate": {
+ "description": "ISO date the fact was last checked against its source, when recorded",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "topic",
+ "country",
+ "fact",
+ "sourceName",
+ "sourceUrl",
+ "more"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / rule
Added value: +{
+ "description": "The country's rule as written, for relaying — especially when status is rule-only",
+ "properties": {
+ "annualExemption": {
+ "type": "string"
+ },
+ "holdingPeriod": {
+ "type": "string"
+ },
+ "mainResidence": {
+ "type": "string"
+ },
+ "notes": {
+ "type": "string"
+ },
+ "rule": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / smallDisposalsExempt
Added value: +{
+ "description": "FI: true when the year's sale prices total 1 000 € or less, making every gain tax-free",
+ "type": "boolean"
+}
addedOutput schema / properties / sourceUrl
Added value: +{
+ "description": "https link to the authority page the rate was verified against. Present only on rate answers backed by a verified ledger row — absent (never empty) otherwise, so its presence is itself the claim",
+ "type": "string"
+}
addedOutput schema / properties / status
Added value: +{
+ "description": "'computed' = a figure; 'rule-only' = the rule text and the reason no figure is given (cgtPayable and taxableGain are then null)",
+ "enum": [
+ "computed",
+ "rule-only"
+ ],
+ "type": "string"
+}
addedOutput schema / properties / step
Added value: +{
+ "description": "Which holding-period step applied, when the rule has steps",
+ "type": [
+ "string",
+ "null"
+ ]
+}
changedOutput schema / properties / taxYear / description
Previous value: -"Financial year whose brackets were used"New value: +"Tax year whose rules were used, when the rule is year-based"
changedOutput schema / properties / taxYear / type
Previous value: -"string"New value: +[
+ "string",
+ "null"
+]
changedOutput schema / properties / taxableGain / description
Previous value: -"Gain added on top of other income (AUD)"New value: +"Gain the tax was charged on; null when rule-only"
changedOutput schema / properties / taxableGain / type
Previous value: -"number"New value: +[
+ "number",
+ "null"
+]
changedOutput schema / required
Previous value: -[
- "country",
- "taxYear",
- "grossGain",
- "lossOffset",
- "discountApplied",
- "taxableGain",
- "cgtPayable",
- "source",
- "dataVerifiedOn",
- "mayBeStale",
- "disclaimer"
-]New value: +[
+ "country",
+ "status",
+ "taxYear",
+ "grossGain",
+ "lossOffset",
+ "discountApplied",
+ "taxableGain",
+ "cgtPayable",
+ "source",
+ "dataVerifiedOn",
+ "mayBeStale",
+ "disclaimer"
+]