Rent vs Buy Calculator · Schema

Raw schema.

Same JSON the GET /v1/general-utility/rent-vs-buy-calculator/schema endpoint returns — formatted for reading. Use it to codegen typed clients or document the contract.

rent-vs-buy-calculator.schema.json
{
  "tool": "rent-vs-buy-calculator",
  "domain": "general-utility",
  "version": "1.0.0",
  "name": "Rent vs Buy Calculator",
  "description": "Compare the long-term financial outcome of buying vs renting and investing the difference. Highly flexible, globally customizable with market presets.",
  "standard": null,
  "inputs": [
    {
      "key": "market",
      "label": "Market Preset",
      "help": "Sets regional defaults for appreciation, rent growth, investment return, property taxes, stamp duty, and rental deposit norms.",
      "type": "enum",
      "options": [
        "india",
        "united_states",
        "europe",
        "united_kingdom",
        "canada",
        "australia"
      ],
      "default": "india"
    },
    {
      "key": "currency",
      "label": "Currency",
      "type": "enum",
      "options": [
        "INR",
        "USD",
        "EUR",
        "GBP",
        "CAD",
        "AUD"
      ],
      "default": "INR"
    },
    {
      "key": "property_price",
      "label": "Property Purchase Price",
      "required": true,
      "unit": "currency",
      "type": "number",
      "min": 100,
      "max": 1000000000,
      "step": 1000,
      "default": 8000000
    },
    {
      "key": "down_payment_pct",
      "label": "Down Payment %",
      "required": true,
      "unit": "%",
      "type": "number",
      "min": 0,
      "max": 100,
      "step": 0.1,
      "default": 20
    },
    {
      "key": "loan_interest_rate",
      "label": "Loan Interest Rate",
      "required": true,
      "unit": "%",
      "type": "number",
      "min": 0.1,
      "max": 30,
      "step": 0.05,
      "default": 8.5
    },
    {
      "key": "loan_tenure_years",
      "label": "Loan Tenure (Years)",
      "required": true,
      "unit": "yr",
      "type": "integer",
      "min": 1,
      "max": 50,
      "step": 1,
      "default": 20
    },
    {
      "key": "monthly_rent",
      "label": "Monthly Rent",
      "required": true,
      "unit": "currency",
      "type": "number",
      "min": 1,
      "max": 5000000,
      "step": 100,
      "default": 25000
    },
    {
      "key": "comparison_period_years",
      "label": "Comparison Period",
      "type": "enum",
      "options": [
        "5",
        "10",
        "15",
        "20",
        "30"
      ],
      "default": "10"
    },
    {
      "key": "property_appreciation_rate",
      "label": "Property Appreciation Rate",
      "required": true,
      "unit": "%/yr",
      "type": "number",
      "min": -20,
      "max": 40,
      "step": 0.1,
      "default": 6
    },
    {
      "key": "rent_growth_rate",
      "label": "Rent Inflation Rate",
      "required": true,
      "unit": "%/yr",
      "type": "number",
      "min": -10,
      "max": 30,
      "step": 0.1,
      "default": 7
    },
    {
      "key": "investment_return_rate",
      "label": "Alternative Investment Return",
      "required": true,
      "unit": "%/yr",
      "type": "number",
      "min": 0,
      "max": 50,
      "step": 0.1,
      "default": 9
    },
    {
      "key": "property_tax_rate",
      "label": "Property Tax Rate",
      "required": true,
      "unit": "%/yr",
      "type": "number",
      "min": 0,
      "max": 10,
      "step": 0.01,
      "default": 0.5
    },
    {
      "key": "maintenance_costs_rate",
      "label": "Maintenance & Insurance Rate",
      "required": true,
      "unit": "%/yr",
      "type": "number",
      "min": 0,
      "max": 10,
      "step": 0.05,
      "default": 1
    },
    {
      "key": "buying_transaction_costs_pct",
      "label": "Buying Costs (Stamp duty etc.)",
      "required": true,
      "unit": "%",
      "type": "number",
      "min": 0,
      "max": 25,
      "step": 0.1,
      "default": 5
    },
    {
      "key": "selling_transaction_costs_pct",
      "label": "Selling Costs (Brokerage etc.)",
      "required": true,
      "unit": "%",
      "type": "number",
      "min": 0,
      "max": 15,
      "step": 0.1,
      "default": 3
    },
    {
      "key": "rent_deposit_months",
      "label": "Rental Deposit Months",
      "required": true,
      "unit": "mo",
      "type": "integer",
      "min": 0,
      "max": 12,
      "step": 1,
      "default": 2
    },
    {
      "key": "one_time_renting_costs",
      "label": "One-time Renting Costs",
      "required": true,
      "unit": "currency",
      "type": "number",
      "min": 0,
      "max": 1000000,
      "step": 100,
      "default": 10000
    }
  ],
  "outputs": [
    {
      "key": "verdict",
      "label": "Verdict",
      "type": "string"
    },
    {
      "key": "recommendation",
      "label": "Recommendation",
      "type": "string"
    },
    {
      "key": "financial_benefit",
      "label": "Financial Benefit",
      "type": "number",
      "precision": 0
    },
    {
      "key": "buyer_final_net_worth",
      "label": "Buyer Final Net Worth",
      "type": "number",
      "precision": 0
    },
    {
      "key": "renter_final_net_worth",
      "label": "Renter Final Net Worth",
      "type": "number",
      "precision": 0
    },
    {
      "key": "buyer_future_property_value",
      "label": "Future Property Value",
      "type": "number",
      "precision": 0
    },
    {
      "key": "buyer_remaining_loan_balance",
      "label": "Remaining Loan Balance",
      "type": "number",
      "precision": 0
    },
    {
      "key": "renter_final_portfolio_value",
      "label": "Alternative Investment Value",
      "type": "number",
      "precision": 0
    },
    {
      "key": "total_buyer_payments",
      "label": "Total Out-of-Pocket (Buy)",
      "type": "number",
      "precision": 0
    },
    {
      "key": "total_renter_payments",
      "label": "Total Out-of-Pocket (Rent)",
      "type": "number",
      "precision": 0
    },
    {
      "key": "comparison_table",
      "label": "Year-by-Year Financial Comparison",
      "type": "string",
      "render": "code"
    },
    {
      "key": "assumptions_note",
      "label": "Assumptions & Notes",
      "type": "string",
      "render": "lines"
    }
  ],
  "endpoint": "/v1/general-utility/rent-vs-buy-calculator"
}