{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://klarfort.com/tools/car-loan-calculator/schema.json",
  "title": "Car loan, lease and ownership calculator",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "currency": {
      "type": "string",
      "title": "Currency",
      "description": "Currency",
      "enum": [
        "USD",
        "EUR",
        "GBP",
        "JPY",
        "CHF",
        "CAD",
        "AUD",
        "CNY",
        "INR",
        "MXN",
        "BRL",
        "SGD",
        "HKD",
        "SEK",
        "NOK",
        "DKK",
        "NZD",
        "ZAR",
        "KRW",
        "TRY",
        "PLN",
        "CZK",
        "HUF",
        "AED",
        "THB",
        "IDR",
        "MYR",
        "PHP"
      ],
      "default": "USD"
    },
    "purchasePrice": {
      "type": "number",
      "title": "Petrol vehicle purchase price",
      "description": "Petrol vehicle purchase price",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 30000
    },
    "downPayment": {
      "type": "number",
      "title": "Cash deposit",
      "description": "Cash deposit",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 5000
    },
    "annualRate": {
      "type": "number",
      "title": "Annual interest rate (%)",
      "description": "Annual interest rate (%)",
      "minimum": 0,
      "maximum": 100,
      "default": 6
    },
    "loanMonths": {
      "type": "integer",
      "title": "New vehicle loan months",
      "description": "New vehicle loan months",
      "minimum": 1,
      "maximum": 600,
      "default": 60
    },
    "horizonMonths": {
      "type": "integer",
      "title": "Comparison horizon months",
      "description": "Comparison horizon months",
      "minimum": 1,
      "maximum": 600,
      "default": 60
    },
    "powertrain": {
      "type": "string",
      "title": "Vehicle for buy and lease comparison",
      "description": "Vehicle for buy and lease comparison",
      "enum": [
        "petrol",
        "ev"
      ],
      "default": "petrol"
    },
    "annualDepreciationPercent": {
      "type": "number",
      "title": "New vehicle annual depreciation (%)",
      "description": "New vehicle annual depreciation (%)",
      "minimum": 0,
      "maximum": 100,
      "default": 15
    },
    "annualInsurance": {
      "type": "number",
      "title": "New vehicle annual insurance",
      "description": "New vehicle annual insurance",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 1200
    },
    "annualMaintenance": {
      "type": "number",
      "title": "New vehicle annual maintenance",
      "description": "New vehicle annual maintenance",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 600
    },
    "annualDistance": {
      "type": "number",
      "title": "Annual distance (km)",
      "description": "Annual distance (km)",
      "minimum": 0,
      "maximum": 1000000,
      "default": 15000
    },
    "petrolLitresPer100": {
      "type": "number",
      "title": "Petrol litres per 100 km",
      "description": "Petrol litres per 100 km",
      "minimum": 0,
      "maximum": 100,
      "default": 7
    },
    "petrolPrice": {
      "type": "number",
      "title": "Petrol price per litre",
      "description": "Petrol price per litre",
      "minimum": 0,
      "maximum": 100,
      "default": 1.5
    },
    "evKWhPer100": {
      "type": "number",
      "title": "EV kWh per 100 km",
      "description": "EV kWh per 100 km",
      "minimum": 0,
      "maximum": 200,
      "default": 18
    },
    "electricityPrice": {
      "type": "number",
      "title": "Electricity price per kWh",
      "description": "Electricity price per kWh",
      "minimum": 0,
      "maximum": 100,
      "default": 0.2
    },
    "evPricePremium": {
      "type": "number",
      "title": "EV price difference above petrol",
      "description": "EV price difference above petrol",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 5000
    },
    "chargerCost": {
      "type": "number",
      "title": "Upfront EV charger cost",
      "description": "Upfront EV charger cost",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 1000
    },
    "currentCarValue": {
      "type": "number",
      "title": "Current car trade-in value",
      "description": "Current car trade-in value",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 10000
    },
    "currentLoanBalance": {
      "type": "number",
      "title": "Current car loan balance",
      "description": "Current car loan balance",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 5000
    },
    "currentLoanRate": {
      "type": "number",
      "title": "Current car annual loan rate (%)",
      "description": "Current car annual loan rate (%)",
      "minimum": 0,
      "maximum": 100,
      "default": 5
    },
    "currentLoanMonths": {
      "type": "integer",
      "title": "Current loan remaining months",
      "description": "Current loan remaining months",
      "minimum": 1,
      "maximum": 600,
      "default": 24
    },
    "currentDepreciationPercent": {
      "type": "number",
      "title": "Current car annual depreciation (%)",
      "description": "Current car annual depreciation (%)",
      "minimum": 0,
      "maximum": 100,
      "default": 10
    },
    "currentAnnualInsurance": {
      "type": "number",
      "title": "Current car annual insurance",
      "description": "Current car annual insurance",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 900
    },
    "currentAnnualMaintenance": {
      "type": "number",
      "title": "Current car annual maintenance",
      "description": "Current car annual maintenance",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 1200
    },
    "leaseMonthly": {
      "type": "number",
      "title": "Monthly lease quote for this horizon",
      "description": "Monthly lease quote for this horizon",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 450
    },
    "leaseUpfront": {
      "type": "number",
      "title": "Lease upfront payment",
      "description": "Lease upfront payment",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 2000
    },
    "leaseEndFee": {
      "type": "number",
      "title": "Lease end fee",
      "description": "Lease end fee",
      "minimum": 0,
      "maximum": 1000000000,
      "default": 300
    },
    "leaseAnnualDistance": {
      "type": "number",
      "title": "Lease annual km allowance",
      "description": "Lease annual km allowance",
      "minimum": 0,
      "maximum": 1000000,
      "default": 15000
    },
    "leaseExcessDistanceFee": {
      "type": "number",
      "title": "Lease charge per excess km",
      "description": "Lease charge per excess km",
      "minimum": 0,
      "maximum": 100,
      "default": 0.15
    }
  },
  "required": [
    "currency",
    "purchasePrice",
    "downPayment",
    "annualRate",
    "loanMonths",
    "horizonMonths",
    "powertrain",
    "annualDepreciationPercent",
    "annualInsurance",
    "annualMaintenance",
    "annualDistance",
    "petrolLitresPer100",
    "petrolPrice",
    "evKWhPer100",
    "electricityPrice",
    "evPricePremium",
    "chargerCost",
    "currentCarValue",
    "currentLoanBalance",
    "currentLoanRate",
    "currentLoanMonths",
    "currentDepreciationPercent",
    "currentAnnualInsurance",
    "currentAnnualMaintenance",
    "leaseMonthly",
    "leaseUpfront",
    "leaseEndFee",
    "leaseAnnualDistance",
    "leaseExcessDistanceFee"
  ]
}