{
  "$comment": "Machine-readable companion to https://valem.run/calculators/australia/car-tax. Formula, inputs, outputs, engine-verified test vectors, cited sources and the re-runnable Valem ModelSpec behind the page.",
  "url": "https://valem.run/calculators/australia/car-tax",
  "dataUrl": "https://valem.run/calculators/australia/car-tax.json",
  "license": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "Australia registration model by Valem (https://valem.run/calculators/australia/car-tax), CC BY 4.0.",
    "note": "Covers the model — the expression of each rule and the arrangement of the catalog. The rates and thresholds themselves are law and are not licensed by anyone; the cited sources are where they come from."
  },
  "verificationUrl": "https://valem.run/calculators/australia/car-tax/verify",
  "country": "australia",
  "countryName": "Australia",
  "formula": "car-tax",
  "formulaName": "Registration",
  "title": "Car Registration Cost — Australia (rego)",
  "answer": "Australian rego is a base fee plus a tare-weight motor-vehicle tax plus compulsory third-party insurance (CTP).",
  "lang": "en",
  "currency": "AUD",
  "taxYear": "2025",
  "verification": {
    "claim": "shape-only",
    "statement": "The rates in this model are illustrative. Its 2 self-test cases confirm the engine reproduces the shape of the charge, but the schedule is not the official one, so the amount will not match a real bill. The cited sources name the document that would replace it.",
    "selfTestCases": 2,
    "ratesAreIllustrative": true,
    "sourcesCheckedOn": "2026-08-02"
  },
  "sources": [
    {
      "label": "Service NSW rego",
      "url": "https://www.service.nsw.gov.au",
      "checked": "2026-08-02"
    }
  ],
  "terminalOutput": "total",
  "inputs": [
    {
      "name": "tareWeight",
      "type": "number",
      "label": "Tare weight (kg)",
      "minimum": 0
    }
  ],
  "outputs": [
    {
      "name": "weightComponent",
      "type": "number",
      "formula": "$round(tareWeight * $const.perKg, 2)"
    },
    {
      "name": "total",
      "type": "number",
      "label": "Annual rego",
      "format": "currency",
      "formula": "$round($const.baseFee + $const.ctp + weightComponent, 2)"
    }
  ],
  "testCases": [
    {
      "description": "C1 NSW 1,400 kg",
      "given": {
        "tareWeight": 1400
      },
      "expect": {
        "weightComponent": 490,
        "total": 1025
      }
    },
    {
      "description": "C2 1,600 kg",
      "given": {
        "tareWeight": 1600
      },
      "expect": {
        "weightComponent": 560,
        "total": 1095
      }
    }
  ],
  "spec": {
    "id": "car-tax-australia",
    "version": "1.0.0",
    "schema": {
      "type": "object",
      "properties": {
        "tareWeight": {
          "type": "number",
          "minimum": 0
        },
        "weightComponent": {
          "type": "number",
          "readOnly": true
        },
        "total": {
          "type": "number",
          "readOnly": true
        }
      }
    },
    "constants": {
      "baseFee": 85,
      "ctp": 450,
      "perKg": 0.35
    },
    "defaultValues": [
      {
        "path": "$",
        "expr": "{ 'tareWeight': 1400 }"
      }
    ],
    "derivations": [
      {
        "path": "$.weightComponent",
        "expr": "$round(tareWeight * $const.perKg, 2)"
      },
      {
        "path": "$.total",
        "expr": "$round($const.baseFee + $const.ctp + weightComponent, 2)"
      }
    ],
    "constraints": [],
    "metaDerivations": [],
    "viewDefinition": {
      "renderer": "builtin",
      "defaultView": "main",
      "views": [
        {
          "id": "main",
          "label": "Registration",
          "layout": "vertical",
          "components": [
            {
              "id": "illustrativeNotice",
              "type": "alert",
              "variant": "warning",
              "label": "Illustrative rates — not the official schedule",
              "text": "'Vehicle registration in Australia is set by each state and territory, and combines a base fee, a weight-based motor-vehicle tax and compulsory third-party insurance priced by vehicle and driver. The figures here show the shape of that cost, not your state’s published schedule. Check your state road authority (Service NSW, VicRoads, Transport and Main Roads) for the amount you will actually pay.'"
            },
            {
              "id": "tare",
              "type": "numericField",
              "label": "Tare weight (kg)",
              "bind": "$.tareWeight"
            },
            {
              "id": "tiles",
              "type": "group",
              "layout": "horizontal",
              "components": [
                {
                  "id": "totalTile",
                  "type": "statTile",
                  "label": "Annual rego",
                  "bind": "$.total",
                  "format": "currency",
                  "currency": "AUD"
                }
              ]
            },
            {
              "id": "note",
              "type": "staticText",
              "text": "'Australia: annual registration (rego) = base fee + a tare-weight motor-vehicle tax + compulsory third-party insurance (CTP). Illustrative NSW-style rates; NSW/VIC/QLD differ. Estimate, not advice.'"
            },
            {
              "id": "sources",
              "type": "sourceList",
              "label": "Sources",
              "items": [
                {
                  "label": "Service NSW rego",
                  "url": "https://www.service.nsw.gov.au",
                  "date": "2026-08-02"
                }
              ]
            }
          ]
        }
      ]
    },
    "tests": [
      {
        "description": "C1 NSW 1,400 kg",
        "given": {
          "$.tareWeight": 1400
        },
        "expect": {
          "$.weightComponent": 490,
          "$.total": 1025
        }
      },
      {
        "description": "C2 1,600 kg",
        "given": {
          "$.tareWeight": 1600
        },
        "expect": {
          "$.weightComponent": 560,
          "$.total": 1095
        }
      }
    ]
  }
}
