RentBuy.org
Was dieses MCP kann
Models and compares long-term rent-versus-buy scenarios, including net worth, cash flow, break-even points, and sensitivity sweeps.
Tools
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['scenarios'], 'properties': {'scenarios': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 40, 'minLength': 1}, 'inputs': {'type': 'object', 'properties': {'hoa': {'type': 'number', 'maximum': 20000, 'minimum': 0, 'description': 'HOA dues, held flat. Unit: USD per month. Default: 0.'}, 'homePrice': {'type': 'number', 'maximum': 50000000, 'minimum': 10000, 'description': 'Purchase price of the home. Unit: USD. Default: 800000.'}, 'downPayment': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Down payment as a percentage of the price (20 = 20%). Unit: % of price. Default: 20.'}, 'monthlyRent': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Rent for a comparable home in year 1. Unit: USD per month. Default: 3500.'}, 'renovations': {'type': 'number', 'maximum': 5000000, 'minimum': 0, 'description': 'One-time renovation spending at purchase; it does not add to the home value. Unit: USD. Default: 0.'}, 'closingCosts': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'One-time closing costs paid at purchase. Unit: USD. Default: 20000.'}, 'filingStatus': {'enum': ['single', 'marriedJoint', 'headOfHousehold'], 'type': 'string', 'description': 'Federal filing status used to pre-fill the tax inputs. Unit: enum. Default: marriedJoint.'}, 'mortgageRate': {'type': 'number', 'maximum': 30, 'minimum': 0, 'description': 'Mortgage interest rate (6.5 = 6.5%). Unit: % per year. Default: 6.5.'}, 'mortgageTerm': {'type': 'integer', 'maximum': 40, 'minimum': 1, 'description': 'Loan term in years. The analysis horizon is always 30 years. Unit: years. Default: 30.'}, 'mortgageType': {'enum': ['amortizing', 'interestOnly'], 'type': 'string', 'description': "'amortizing' pays principal and interest; 'interestOnly' pays interest only for interestOnlyPeriod years, then amortizes the balance over the remaining term (a balloon if the period covers the whole term). Unit: enum. Default: amortizing."}, 'sellingCosts': {'type': 'number', 'maximum': 20, 'minimum': 0, 'description': 'Selling costs subtracted from the headline buy result at year 30. Unit: % of sale price. Default: 6.'}, 'stateTaxRate': {'type': 'number', 'maximum': 30, 'minimum': 0, 'description': 'State marginal rate applied the same way. Unit: %. Default: 5.'}, 'adjustedValue': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Home value to use in adjustmentYear; 0 disables the adjustment. Unit: USD. Default: 0.'}, 'homeInsurance': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Homeowner insurance premium, held flat. Unit: USD per year. Default: 2400.'}, 'adjustmentYear': {'type': 'integer', 'maximum': 30, 'minimum': 0, 'description': 'Year in which the home value is reset to adjustedValue; 0 disables it. Unit: year (0 = none). Default: 0.'}, 'federalTaxRate': {'type': 'number', 'maximum': 60, 'minimum': 0, 'description': 'Federal marginal rate applied to itemized deductions above the standard deduction. Unit: %. Default: 22.'}, 'householdIncome': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Household income; with filingStatus it pre-fills federalTaxRate and standardDeduction unless those are given explicitly. Unit: USD per year. Default: 200000.'}, 'maintenanceRate': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Maintenance as a percentage of the current home value. Unit: % of home value per year. Default: 1.'}, 'propertyTaxRate': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Property tax as a percentage of the current home value. Unit: % of home value per year. Default: 1.25.'}, 'appreciationRate': {'type': 'number', 'maximum': 30, 'minimum': -20, 'description': 'Annual home value appreciation (3 = 3%). Unit: % per year. Default: 3.'}, 'investmentReturn': {'type': 'number', 'maximum': 30, 'minimum': -20, 'description': 'Effective annual return on invested savings for both households (7 = 7%). Unit: % per year (effective annual). Default: 7.'}, 'rentIncreaseRate': {'type': 'number', 'maximum': 30, 'minimum': -10, 'description': 'Annual rent growth (3 = 3%). Unit: % per year. Default: 3.'}, 'rentersInsurance': {'type': 'number', 'maximum': 20000, 'minimum': 0, 'description': 'Renter insurance; it grows with rent. Unit: USD per year. Default: 300.'}, 'standardDeduction': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Standard deduction the itemized deductions must exceed to save tax. Unit: USD. Default: 32200.'}, 'interestOnlyPeriod': {'type': 'integer', 'maximum': 40, 'minimum': 0, 'description': 'Interest-only years; only used when mortgageType is interestOnly. Unit: years. Default: 10.'}}, 'description': 'Any subset of the inputs; missing fields use the rentbuy.org defaults. Money in USD, rates in percent points.', 'additionalProperties': False}, 'oneTimeCosts': {'type': 'array', 'items': {'type': 'object', 'required': ['year', 'amount', 'appliesTo'], 'properties': {'year': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Year of the cost, 1 to 30.'}, 'amount': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Amount in USD.'}, 'reason': {'type': 'string', 'maxLength': 80, 'description': 'Label, e.g. "New roof".'}, 'appliesTo': {'enum': ['buy', 'both'], 'type': 'string', 'description': "'buy' = a house expense only the buyer pays (the renter invests that amount); 'both' = a general expense both households pay from their investments."}}, 'additionalProperties': False}, 'maxItems': 20, 'description': 'Up to 20 one-time costs.'}}, 'additionalProperties': False}, 'maxItems': 10, 'minItems': 2}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['baseline', 'scenarios', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['engineVersion', 'taxYear'], 'properties': {'taxYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'engineVersion': {'type': 'string'}}, 'additionalProperties': False}, 'baseline': {'type': 'string', 'description': 'Name of the first scenario; deltas are relative to it.'}, 'scenarios': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'winner', 'advantage', 'difference', 'buyNetWorthAfterSale', 'rentNetWorth', 'breakEvenYear', 'year1MonthlyOwnership', 'year1MonthlyRent', 'deltaVsBaseline'], 'properties': {'name': {'type': 'string'}, 'winner': {'enum': ['BUY', 'RENT'], 'type': 'string'}, 'advantage': {'type': 'number'}, 'difference': {'type': 'number'}, 'rentNetWorth': {'type': 'number'}, 'breakEvenYear': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'deltaVsBaseline': {'type': 'object', 'required': ['difference', 'buyNetWorthAfterSale', 'rentNetWorth'], 'properties': {'difference': {'type': 'number'}, 'rentNetWorth': {'type': 'number'}, 'buyNetWorthAfterSale': {'type': 'number'}}, 'additionalProperties': False}, 'year1MonthlyRent': {'type': 'number'}, 'buyNetWorthAfterSale': {'type': 'number'}, 'year1MonthlyOwnership': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'inputs': {'type': 'object', 'properties': {'hoa': {'type': 'number', 'maximum': 20000, 'minimum': 0, 'description': 'HOA dues, held flat. Unit: USD per month. Default: 0.'}, 'homePrice': {'type': 'number', 'maximum': 50000000, 'minimum': 10000, 'description': 'Purchase price of the home. Unit: USD. Default: 800000.'}, 'downPayment': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Down payment as a percentage of the price (20 = 20%). Unit: % of price. Default: 20.'}, 'monthlyRent': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Rent for a comparable home in year 1. Unit: USD per month. Default: 3500.'}, 'renovations': {'type': 'number', 'maximum': 5000000, 'minimum': 0, 'description': 'One-time renovation spending at purchase; it does not add to the home value. Unit: USD. Default: 0.'}, 'closingCosts': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'One-time closing costs paid at purchase. Unit: USD. Default: 20000.'}, 'filingStatus': {'enum': ['single', 'marriedJoint', 'headOfHousehold'], 'type': 'string', 'description': 'Federal filing status used to pre-fill the tax inputs. Unit: enum. Default: marriedJoint.'}, 'mortgageRate': {'type': 'number', 'maximum': 30, 'minimum': 0, 'description': 'Mortgage interest rate (6.5 = 6.5%). Unit: % per year. Default: 6.5.'}, 'mortgageTerm': {'type': 'integer', 'maximum': 40, 'minimum': 1, 'description': 'Loan term in years. The analysis horizon is always 30 years. Unit: years. Default: 30.'}, 'mortgageType': {'enum': ['amortizing', 'interestOnly'], 'type': 'string', 'description': "'amortizing' pays principal and interest; 'interestOnly' pays interest only for interestOnlyPeriod years, then amortizes the balance over the remaining term (a balloon if the period covers the whole term). Unit: enum. Default: amortizing."}, 'sellingCosts': {'type': 'number', 'maximum': 20, 'minimum': 0, 'description': 'Selling costs subtracted from the headline buy result at year 30. Unit: % of sale price. Default: 6.'}, 'stateTaxRate': {'type': 'number', 'maximum': 30, 'minimum': 0, 'description': 'State marginal rate applied the same way. Unit: %. Default: 5.'}, 'adjustedValue': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Home value to use in adjustmentYear; 0 disables the adjustment. Unit: USD. Default: 0.'}, 'homeInsurance': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Homeowner insurance premium, held flat. Unit: USD per year. Default: 2400.'}, 'adjustmentYear': {'type': 'integer', 'maximum': 30, 'minimum': 0, 'description': 'Year in which the home value is reset to adjustedValue; 0 disables it. Unit: year (0 = none). Default: 0.'}, 'federalTaxRate': {'type': 'number', 'maximum': 60, 'minimum': 0, 'description': 'Federal marginal rate applied to itemized deductions above the standard deduction. Unit: %. Default: 22.'}, 'householdIncome': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Household income; with filingStatus it pre-fills federalTaxRate and standardDeduction unless those are given explicitly. Unit: USD per year. Default: 200000.'}, 'maintenanceRate': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Maintenance as a percentage of the current home value. Unit: % of home value per year. Default: 1.'}, 'propertyTaxRate': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Property tax as a percentage of the current home value. Unit: % of home value per year. Default: 1.25.'}, 'appreciationRate': {'type': 'number', 'maximum': 30, 'minimum': -20, 'description': 'Annual home value appreciation (3 = 3%). Unit: % per year. Default: 3.'}, 'investmentReturn': {'type': 'number', 'maximum': 30, 'minimum': -20, 'description': 'Effective annual return on invested savings for both households (7 = 7%). Unit: % per year (effective annual). Default: 7.'}, 'rentIncreaseRate': {'type': 'number', 'maximum': 30, 'minimum': -10, 'description': 'Annual rent growth (3 = 3%). Unit: % per year. Default: 3.'}, 'rentersInsurance': {'type': 'number', 'maximum': 20000, 'minimum': 0, 'description': 'Renter insurance; it grows with rent. Unit: USD per year. Default: 300.'}, 'standardDeduction': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Standard deduction the itemized deductions must exceed to save tax. Unit: USD. Default: 32200.'}, 'interestOnlyPeriod': {'type': 'integer', 'maximum': 40, 'minimum': 0, 'description': 'Interest-only years; only used when mortgageType is interestOnly. Unit: years. Default: 10.'}}, 'description': 'Any subset of the inputs; missing fields use the rentbuy.org defaults. Money in USD, rates in percent points.', 'additionalProperties': False}, 'oneTimeCosts': {'type': 'array', 'items': {'type': 'object', 'required': ['year', 'amount', 'appliesTo'], 'properties': {'year': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Year of the cost, 1 to 30.'}, 'amount': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Amount in USD.'}, 'reason': {'type': 'string', 'maxLength': 80, 'description': 'Label, e.g. "New roof".'}, 'appliesTo': {'enum': ['buy', 'both'], 'type': 'string', 'description': "'buy' = a house expense only the buyer pays (the renter invests that amount); 'both' = a general expense both households pay from their investments."}}, 'additionalProperties': False}, 'maxItems': 20, 'description': 'Up to 20 one-time costs.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['winner', 'advantage', 'difference', 'buyNetWorthAfterSale', 'rentNetWorth', 'breakEvenYear', 'totals', 'year1', 'resolvedInputs', 'oneTimeCosts', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['engineVersion', 'taxYear', 'conventions'], 'properties': {'taxYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'conventions': {'type': 'string'}, 'engineVersion': {'type': 'string'}}, 'additionalProperties': False}, 'year1': {'type': 'object', 'required': ['monthlyOwnership', 'afterTaxOwnership', 'monthlyRent'], 'properties': {'monthlyRent': {'type': 'number'}, 'monthlyOwnership': {'type': 'number'}, 'afterTaxOwnership': {'type': 'number'}}, 'description': 'Monthly cash in year 1; ownership includes mortgage, property tax, insurance, maintenance and HOA.', 'additionalProperties': False}, 'totals': {'type': 'object', 'required': ['upfrontInvestment', 'totalInterestPaid', 'totalPropertyTaxPaid', 'totalTaxSavings', 'totalRentPaid', 'homeAppreciation', 'sellingCostAmount'], 'properties': {'totalRentPaid': {'type': 'number'}, 'totalTaxSavings': {'type': 'number'}, 'homeAppreciation': {'type': 'number'}, 'sellingCostAmount': {'type': 'number'}, 'totalInterestPaid': {'type': 'number'}, 'upfrontInvestment': {'type': 'number'}, 'totalPropertyTaxPaid': {'type': 'number'}}, 'additionalProperties': False}, 'winner': {'enum': ['BUY', 'RENT'], 'type': 'string', 'description': 'Which household has more net worth after 30 years, after selling costs on the buy side.'}, 'yearly': {'type': 'array', 'items': {'type': 'object', 'required': ['year', 'homeValue', 'mortgageBalance', 'homeEquity', 'buyerInvestments', 'buyNetWorth', 'rentNetWorth', 'difference', 'monthlyOwnership', 'afterTaxOwnership', 'monthlyRent', 'annualInterest', 'taxSavings'], 'properties': {'year': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'homeValue': {'type': 'number'}, 'difference': {'type': 'number'}, 'homeEquity': {'type': 'number'}, 'taxSavings': {'type': 'number'}, 'buyNetWorth': {'type': 'number'}, 'monthlyRent': {'type': 'number'}, 'rentNetWorth': {'type': 'number'}, 'annualInterest': {'type': 'number'}, 'mortgageBalance': {'type': 'number'}, 'buyerInvestments': {'type': 'number'}, 'monthlyOwnership': {'type': 'number'}, 'afterTaxOwnership': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Present when detail is "yearly". Net worth figures here are before selling costs.'}, 'advantage': {'type': 'number', 'description': 'Absolute net worth gap between the two households at year 30, USD.'}, 'difference': {'type': 'number', 'description': 'Signed gap: buyNetWorthAfterSale minus rentNetWorth, USD.'}, 'oneTimeCosts': {'type': 'array', 'items': {'type': 'object', 'required': ['year', 'amount', 'appliesTo'], 'properties': {'year': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Year of the cost, 1 to 30.'}, 'amount': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Amount in USD.'}, 'reason': {'type': 'string', 'maxLength': 80, 'description': 'Label, e.g. "New roof".'}, 'appliesTo': {'enum': ['buy', 'both'], 'type': 'string', 'description': "'buy' = a house expense only the buyer pays (the renter invests that amount); 'both' = a general expense both households pay from their investments."}}, 'additionalProperties': False}}, 'rentNetWorth': {'type': 'number', 'description': 'Renter portfolio at year 30.'}, 'breakEvenYear': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'First year in which the buyer is ahead before selling costs, or null if never within 30 years.'}, 'resolvedInputs': {'type': 'object', 'description': 'The full input set the calculation used, after defaults and tax pre-fill, in the same units as the request.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': ['number', 'string']}}, 'buyNetWorthAfterSale': {'type': 'number', 'description': 'Buyer net worth at year 30 after selling costs (home equity plus buyer investments minus selling costs).'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'detail': {'enum': ['summary', 'yearly'], 'type': 'string', 'description': '"summary" (default) or "yearly" for the 30 annual rows.'}, 'inputs': {'type': 'object', 'properties': {'hoa': {'type': 'number', 'maximum': 20000, 'minimum': 0, 'description': 'HOA dues, held flat. Unit: USD per month. Default: 0.'}, 'homePrice': {'type': 'number', 'maximum': 50000000, 'minimum': 10000, 'description': 'Purchase price of the home. Unit: USD. Default: 800000.'}, 'downPayment': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Down payment as a percentage of the price (20 = 20%). Unit: % of price. Default: 20.'}, 'monthlyRent': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Rent for a comparable home in year 1. Unit: USD per month. Default: 3500.'}, 'renovations': {'type': 'number', 'maximum': 5000000, 'minimum': 0, 'description': 'One-time renovation spending at purchase; it does not add to the home value. Unit: USD. Default: 0.'}, 'closingCosts': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'One-time closing costs paid at purchase. Unit: USD. Default: 20000.'}, 'filingStatus': {'enum': ['single', 'marriedJoint', 'headOfHousehold'], 'type': 'string', 'description': 'Federal filing status used to pre-fill the tax inputs. Unit: enum. Default: marriedJoint.'}, 'mortgageRate': {'type': 'number', 'maximum': 30, 'minimum': 0, 'description': 'Mortgage interest rate (6.5 = 6.5%). Unit: % per year. Default: 6.5.'}, 'mortgageTerm': {'type': 'integer', 'maximum': 40, 'minimum': 1, 'description': 'Loan term in years. The analysis horizon is always 30 years. Unit: years. Default: 30.'}, 'mortgageType': {'enum': ['amortizing', 'interestOnly'], 'type': 'string', 'description': "'amortizing' pays principal and interest; 'interestOnly' pays interest only for interestOnlyPeriod years, then amortizes the balance over the remaining term (a balloon if the period covers the whole term). Unit: enum. Default: amortizing."}, 'sellingCosts': {'type': 'number', 'maximum': 20, 'minimum': 0, 'description': 'Selling costs subtracted from the headline buy result at year 30. Unit: % of sale price. Default: 6.'}, 'stateTaxRate': {'type': 'number', 'maximum': 30, 'minimum': 0, 'description': 'State marginal rate applied the same way. Unit: %. Default: 5.'}, 'adjustedValue': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Home value to use in adjustmentYear; 0 disables the adjustment. Unit: USD. Default: 0.'}, 'homeInsurance': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Homeowner insurance premium, held flat. Unit: USD per year. Default: 2400.'}, 'adjustmentYear': {'type': 'integer', 'maximum': 30, 'minimum': 0, 'description': 'Year in which the home value is reset to adjustedValue; 0 disables it. Unit: year (0 = none). Default: 0.'}, 'federalTaxRate': {'type': 'number', 'maximum': 60, 'minimum': 0, 'description': 'Federal marginal rate applied to itemized deductions above the standard deduction. Unit: %. Default: 22.'}, 'householdIncome': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Household income; with filingStatus it pre-fills federalTaxRate and standardDeduction unless those are given explicitly. Unit: USD per year. Default: 200000.'}, 'maintenanceRate': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Maintenance as a percentage of the current home value. Unit: % of home value per year. Default: 1.'}, 'propertyTaxRate': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Property tax as a percentage of the current home value. Unit: % of home value per year. Default: 1.25.'}, 'appreciationRate': {'type': 'number', 'maximum': 30, 'minimum': -20, 'description': 'Annual home value appreciation (3 = 3%). Unit: % per year. Default: 3.'}, 'investmentReturn': {'type': 'number', 'maximum': 30, 'minimum': -20, 'description': 'Effective annual return on invested savings for both households (7 = 7%). Unit: % per year (effective annual). Default: 7.'}, 'rentIncreaseRate': {'type': 'number', 'maximum': 30, 'minimum': -10, 'description': 'Annual rent growth (3 = 3%). Unit: % per year. Default: 3.'}, 'rentersInsurance': {'type': 'number', 'maximum': 20000, 'minimum': 0, 'description': 'Renter insurance; it grows with rent. Unit: USD per year. Default: 300.'}, 'standardDeduction': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Standard deduction the itemized deductions must exceed to save tax. Unit: USD. Default: 32200.'}, 'interestOnlyPeriod': {'type': 'integer', 'maximum': 40, 'minimum': 0, 'description': 'Interest-only years; only used when mortgageType is interestOnly. Unit: years. Default: 10.'}}, 'description': 'Any subset of the inputs; missing fields use the rentbuy.org defaults. Money in USD, rates in percent points.', 'additionalProperties': False}, 'oneTimeCosts': {'type': 'array', 'items': {'type': 'object', 'required': ['year', 'amount', 'appliesTo'], 'properties': {'year': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Year of the cost, 1 to 30.'}, 'amount': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Amount in USD.'}, 'reason': {'type': 'string', 'maxLength': 80, 'description': 'Label, e.g. "New roof".'}, 'appliesTo': {'enum': ['buy', 'both'], 'type': 'string', 'description': "'buy' = a house expense only the buyer pays (the renter invests that amount); 'both' = a general expense both households pay from their investments."}}, 'additionalProperties': False}, 'maxItems': 20, 'description': 'Up to 20 one-time costs.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['winner', 'advantage', 'difference', 'buyNetWorthAfterSale', 'rentNetWorth', 'breakEvenYear', 'totals', 'year1', 'resolvedInputs', 'oneTimeCosts', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['engineVersion', 'taxYear', 'conventions'], 'properties': {'taxYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'conventions': {'type': 'string'}, 'engineVersion': {'type': 'string'}}, 'additionalProperties': False}, 'year1': {'type': 'object', 'required': ['monthlyOwnership', 'afterTaxOwnership', 'monthlyRent'], 'properties': {'monthlyRent': {'type': 'number'}, 'monthlyOwnership': {'type': 'number'}, 'afterTaxOwnership': {'type': 'number'}}, 'description': 'Monthly cash in year 1; ownership includes mortgage, property tax, insurance, maintenance and HOA.', 'additionalProperties': False}, 'totals': {'type': 'object', 'required': ['upfrontInvestment', 'totalInterestPaid', 'totalPropertyTaxPaid', 'totalTaxSavings', 'totalRentPaid', 'homeAppreciation', 'sellingCostAmount'], 'properties': {'totalRentPaid': {'type': 'number'}, 'totalTaxSavings': {'type': 'number'}, 'homeAppreciation': {'type': 'number'}, 'sellingCostAmount': {'type': 'number'}, 'totalInterestPaid': {'type': 'number'}, 'upfrontInvestment': {'type': 'number'}, 'totalPropertyTaxPaid': {'type': 'number'}}, 'additionalProperties': False}, 'winner': {'enum': ['BUY', 'RENT'], 'type': 'string', 'description': 'Which household has more net worth after 30 years, after selling costs on the buy side.'}, 'yearly': {'type': 'array', 'items': {'type': 'object', 'required': ['year', 'homeValue', 'mortgageBalance', 'homeEquity', 'buyerInvestments', 'buyNetWorth', 'rentNetWorth', 'difference', 'monthlyOwnership', 'afterTaxOwnership', 'monthlyRent', 'annualInterest', 'taxSavings'], 'properties': {'year': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'homeValue': {'type': 'number'}, 'difference': {'type': 'number'}, 'homeEquity': {'type': 'number'}, 'taxSavings': {'type': 'number'}, 'buyNetWorth': {'type': 'number'}, 'monthlyRent': {'type': 'number'}, 'rentNetWorth': {'type': 'number'}, 'annualInterest': {'type': 'number'}, 'mortgageBalance': {'type': 'number'}, 'buyerInvestments': {'type': 'number'}, 'monthlyOwnership': {'type': 'number'}, 'afterTaxOwnership': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Present when detail is "yearly". Net worth figures here are before selling costs.'}, 'advantage': {'type': 'number', 'description': 'Absolute net worth gap between the two households at year 30, USD.'}, 'difference': {'type': 'number', 'description': 'Signed gap: buyNetWorthAfterSale minus rentNetWorth, USD.'}, 'oneTimeCosts': {'type': 'array', 'items': {'type': 'object', 'required': ['year', 'amount', 'appliesTo'], 'properties': {'year': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Year of the cost, 1 to 30.'}, 'amount': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Amount in USD.'}, 'reason': {'type': 'string', 'maxLength': 80, 'description': 'Label, e.g. "New roof".'}, 'appliesTo': {'enum': ['buy', 'both'], 'type': 'string', 'description': "'buy' = a house expense only the buyer pays (the renter invests that amount); 'both' = a general expense both households pay from their investments."}}, 'additionalProperties': False}}, 'rentNetWorth': {'type': 'number', 'description': 'Renter portfolio at year 30.'}, 'breakEvenYear': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': 'First year in which the buyer is ahead before selling costs, or null if never within 30 years.'}, 'resolvedInputs': {'type': 'object', 'description': 'The full input set the calculation used, after defaults and tax pre-fill, in the same units as the request.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': ['number', 'string']}}, 'buyNetWorthAfterSale': {'type': 'number', 'description': 'Buyer net worth at year 30 after selling costs (home equity plus buyer investments minus selling costs).'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['axis'], 'properties': {'axis': {'type': 'object', 'required': ['parameter'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'steps': {'type': 'integer', 'maximum': 50, 'minimum': 2, 'description': 'With min and max: number of evenly spaced values (2 to 50).'}, 'values': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 50, 'minItems': 2, 'description': 'Explicit values to test (2 to 50).'}, 'parameter': {'enum': ['homePrice', 'downPayment', 'closingCosts', 'renovations', 'mortgageRate', 'mortgageTerm', 'interestOnlyPeriod', 'propertyTaxRate', 'homeInsurance', 'maintenanceRate', 'hoa', 'appreciationRate', 'adjustmentYear', 'adjustedValue', 'sellingCosts', 'monthlyRent', 'rentIncreaseRate', 'rentersInsurance', 'investmentReturn', 'householdIncome', 'federalTaxRate', 'stateTaxRate', 'standardDeduction'], 'type': 'string', 'description': 'Input to vary.'}}, 'additionalProperties': False}, 'base': {'type': 'object', 'properties': {'hoa': {'type': 'number', 'maximum': 20000, 'minimum': 0, 'description': 'HOA dues, held flat. Unit: USD per month. Default: 0.'}, 'homePrice': {'type': 'number', 'maximum': 50000000, 'minimum': 10000, 'description': 'Purchase price of the home. Unit: USD. Default: 800000.'}, 'downPayment': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Down payment as a percentage of the price (20 = 20%). Unit: % of price. Default: 20.'}, 'monthlyRent': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Rent for a comparable home in year 1. Unit: USD per month. Default: 3500.'}, 'renovations': {'type': 'number', 'maximum': 5000000, 'minimum': 0, 'description': 'One-time renovation spending at purchase; it does not add to the home value. Unit: USD. Default: 0.'}, 'closingCosts': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'One-time closing costs paid at purchase. Unit: USD. Default: 20000.'}, 'filingStatus': {'enum': ['single', 'marriedJoint', 'headOfHousehold'], 'type': 'string', 'description': 'Federal filing status used to pre-fill the tax inputs. Unit: enum. Default: marriedJoint.'}, 'mortgageRate': {'type': 'number', 'maximum': 30, 'minimum': 0, 'description': 'Mortgage interest rate (6.5 = 6.5%). Unit: % per year. Default: 6.5.'}, 'mortgageTerm': {'type': 'integer', 'maximum': 40, 'minimum': 1, 'description': 'Loan term in years. The analysis horizon is always 30 years. Unit: years. Default: 30.'}, 'mortgageType': {'enum': ['amortizing', 'interestOnly'], 'type': 'string', 'description': "'amortizing' pays principal and interest; 'interestOnly' pays interest only for interestOnlyPeriod years, then amortizes the balance over the remaining term (a balloon if the period covers the whole term). Unit: enum. Default: amortizing."}, 'sellingCosts': {'type': 'number', 'maximum': 20, 'minimum': 0, 'description': 'Selling costs subtracted from the headline buy result at year 30. Unit: % of sale price. Default: 6.'}, 'stateTaxRate': {'type': 'number', 'maximum': 30, 'minimum': 0, 'description': 'State marginal rate applied the same way. Unit: %. Default: 5.'}, 'adjustedValue': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Home value to use in adjustmentYear; 0 disables the adjustment. Unit: USD. Default: 0.'}, 'homeInsurance': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Homeowner insurance premium, held flat. Unit: USD per year. Default: 2400.'}, 'adjustmentYear': {'type': 'integer', 'maximum': 30, 'minimum': 0, 'description': 'Year in which the home value is reset to adjustedValue; 0 disables it. Unit: year (0 = none). Default: 0.'}, 'federalTaxRate': {'type': 'number', 'maximum': 60, 'minimum': 0, 'description': 'Federal marginal rate applied to itemized deductions above the standard deduction. Unit: %. Default: 22.'}, 'householdIncome': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Household income; with filingStatus it pre-fills federalTaxRate and standardDeduction unless those are given explicitly. Unit: USD per year. Default: 200000.'}, 'maintenanceRate': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Maintenance as a percentage of the current home value. Unit: % of home value per year. Default: 1.'}, 'propertyTaxRate': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Property tax as a percentage of the current home value. Unit: % of home value per year. Default: 1.25.'}, 'appreciationRate': {'type': 'number', 'maximum': 30, 'minimum': -20, 'description': 'Annual home value appreciation (3 = 3%). Unit: % per year. Default: 3.'}, 'investmentReturn': {'type': 'number', 'maximum': 30, 'minimum': -20, 'description': 'Effective annual return on invested savings for both households (7 = 7%). Unit: % per year (effective annual). Default: 7.'}, 'rentIncreaseRate': {'type': 'number', 'maximum': 30, 'minimum': -10, 'description': 'Annual rent growth (3 = 3%). Unit: % per year. Default: 3.'}, 'rentersInsurance': {'type': 'number', 'maximum': 20000, 'minimum': 0, 'description': 'Renter insurance; it grows with rent. Unit: USD per year. Default: 300.'}, 'standardDeduction': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Standard deduction the itemized deductions must exceed to save tax. Unit: USD. Default: 32200.'}, 'interestOnlyPeriod': {'type': 'integer', 'maximum': 40, 'minimum': 0, 'description': 'Interest-only years; only used when mortgageType is interestOnly. Unit: years. Default: 10.'}}, 'description': 'Inputs held fixed during the sweep.', 'additionalProperties': False}, 'secondAxis': {'type': 'object', 'required': ['parameter'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'steps': {'type': 'integer', 'maximum': 50, 'minimum': 2, 'description': 'With min and max: number of evenly spaced values (2 to 50).'}, 'values': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 50, 'minItems': 2, 'description': 'Explicit values to test (2 to 50).'}, 'parameter': {'enum': ['homePrice', 'downPayment', 'closingCosts', 'renovations', 'mortgageRate', 'mortgageTerm', 'interestOnlyPeriod', 'propertyTaxRate', 'homeInsurance', 'maintenanceRate', 'hoa', 'appreciationRate', 'adjustmentYear', 'adjustedValue', 'sellingCosts', 'monthlyRent', 'rentIncreaseRate', 'rentersInsurance', 'investmentReturn', 'householdIncome', 'federalTaxRate', 'stateTaxRate', 'standardDeduction'], 'type': 'string', 'description': 'Input to vary.'}}, 'description': 'Optional second input for a grid.', 'additionalProperties': False}, 'oneTimeCosts': {'type': 'array', 'items': {'type': 'object', 'required': ['year', 'amount', 'appliesTo'], 'properties': {'year': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'Year of the cost, 1 to 30.'}, 'amount': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Amount in USD.'}, 'reason': {'type': 'string', 'maxLength': 80, 'description': 'Label, e.g. "New roof".'}, 'appliesTo': {'enum': ['buy', 'both'], 'type': 'string', 'description': "'buy' = a house expense only the buyer pays (the renter invests that amount); 'both' = a general expense both households pay from their investments."}}, 'additionalProperties': False}, 'maxItems': 20, 'description': 'Up to 20 one-time costs.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['parameter', 'unit', 'secondParameter', 'secondUnit', 'points', 'crossover', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['engineVersion', 'taxYear'], 'properties': {'taxYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'engineVersion': {'type': 'string'}}, 'additionalProperties': False}, 'unit': {'type': 'string'}, 'points': {'type': 'array', 'items': {'type': 'object', 'required': ['value', 'secondValue', 'difference', 'winner', 'buyNetWorthAfterSale', 'rentNetWorth', 'breakEvenYear'], 'properties': {'value': {'type': 'number'}, 'winner': {'enum': ['BUY', 'RENT'], 'type': 'string'}, 'difference': {'type': 'number'}, 'secondValue': {'type': ['number', 'null']}, 'rentNetWorth': {'type': 'number'}, 'breakEvenYear': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'buyNetWorthAfterSale': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'One row per grid point; difference is buy minus rent at year 30 after selling costs.'}, 'crossover': {'anyOf': [{'type': 'object', 'required': ['value', 'note'], 'properties': {'note': {'type': 'string'}, 'value': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Single-parameter sweeps only: the interpolated value where the winner flips, or null.'}, 'parameter': {'type': 'string'}, 'secondUnit': {'type': ['string', 'null']}, 'secondParameter': {'type': ['string', 'null']}}, 'additionalProperties': False}
Letzte Tool-Änderungen
Ähnliche MCP-Server
Superlógica Condomínios
Connects to a condominium ERP for billing, collections, agreements, expenses, bank movements, statements, files, communications, …
DFX Real Estate Intelligence
Provides US commercial real estate, parcel, debt maturity, bank CRE exposure, private capital, investor, ownership, occupancy, an…
RateAPI — live US mortgage, auto, HELOC, personal & deposit rates
Supplies live US lending and deposit rates, financing comparisons, affordability and amortization calculations, eligibility check…
Rafid Intelligence Network
Analyzes Oman properties using rental comparables, yields, costs, and payback metrics, and supports Oman company search, profilin…
Housing Intel
Analyzes housing markets, affordability, mortgage rates, rental yields, property data, employment, metro demand, and investment s…
OpenLMNP
Manages French LMNP furnished-rental accounting, including income, expenses, depreciation, loans, VAT, fiscal calculations, FEC f…
Antevo Wealth
Aggregates household wealth data across investments, liabilities, credit facilities, real assets, markets, risk, exposure, and fi…
DataPorium
Provides market and company data covering stocks, ETFs, crypto, forex, commodities, economic indicators, housing, property listin…