Business simulation games →
Play 8 business roles, predict consequences, compare paths and download your decision reviews.
Bring mortgage estimates, rental analysis and business-listing checks into your own app. Powered by the same calculation models as our free tools.
OpenAPI 3.1 specification ↗ Use the calculators
/api/v1/calculators/mortgage, /rental-property or /business under the same prefix. Every documented field is required. Unknown fields and numeric strings are rejected.Retry-After interval and use backoff; do not retry in a tight loop.Existing website calculators continue to calculate in the visitor’s tab. They do not send visitor inputs to this API.
This sends the documented sample numbers to the API. No account or key required.
POST /api/v1/calculators/mortgage
Monthly payment components, loan fees and cash needed. Fixed fully amortizing loans only; USDA Guaranteed requires a 30-year term.
curl https://losttofound.org/api/v1/calculators/mortgage \
-H 'Content-Type: application/json' \
--data '{
"price": 350000,
"downPercent": 10,
"rate": 6.71,
"years": 30,
"loanType": "conventional",
"vaUse": "first",
"financeFee": true,
"taxPercent": 1.1,
"annualInsurance": 1800,
"monthlyHoa": 0,
"pmiPercent": 0.5,
"maintenancePercent": 1,
"closingPercent": 3,
"extraCash": 1500,
"reserveMonths": 3,
"savings": 0,
"grossIncome": 0,
"monthlyDebts": 0,
"customUpfrontFee": 0,
"customMonthlyInsurance": 0
}'| Field | Type / bounds | Meaning |
|---|---|---|
price | number · 1 to 10000000 | Home purchase price in USD. |
downPercent | number · 0 to 100 | Down payment as a percentage of purchase price. Enter 10 for 10%. |
rate | number · 0 to 30 | Annual loan interest rate in percentage points. Enter 6.71 for 6.71%, not 0.0671. This is the interest rate, not APR. No rate lookup or lender quote is performed. |
years | integer · 1 to 40 | Fully amortizing fixed loan term in whole years. USDA must be 30. |
loanType | conventional, fha, va, usda, jumbo, other | Loan program used to estimate fees and initial mortgage insurance. Selecting a program does not establish eligibility. |
vaUse | first, subsequent, exempt | VA funding fee scenario: first use, subsequent use, or exempt. Used only for VA loans; exemption is not verified. |
financeFee | boolean | True adds the modeled upfront loan program or custom fee to the loan; false includes it in upfront cash. Does not finance closing costs or extraCash. |
taxPercent | number · 0 to 100 | Annual property tax as a percentage of purchase price. Enter 1.1 for 1.1%. |
annualInsurance | number · 0 to 1000000000 | Annual home insurance premium in USD, excluding mortgage insurance. |
monthlyHoa | number · 0 to 1000000000 | Monthly homeowners association dues in USD. |
pmiPercent | number · 0 to 100 | Annual PMI as a percentage of the base loan before financed fees. Enter 0.5 for 0.5%. Used for conventional or jumbo loans with less than 20% down. |
maintenancePercent | number · 0 to 100 | Annual upkeep savings as a percentage of purchase price. Enter 1 for 1%. Included in the monthly ownership budget and reserves. |
closingPercent | number · 0 to 100 | Closing costs and prepaids as a percentage of purchase price. Enter 3 for 3%. Exclude the separately modeled upfront loan fee and extraCash. |
extraCash | number · 0 to 1000000000 | One time inspection, moving and setup allowance in USD. Added to upfront cash; exclude costs already in closingPercent. |
reserveMonths | number · 0 to 120 | Number of months of the full modeled ownership budget to retain as cash, including upkeep. A planning cushion, not a lender requirement. |
savings | number · 0 to 1000000000 | Savings available for this purchase plan in USD. Used to calculate the remaining savings gap. |
grossIncome | number · 0 to 1000000000 | Annual household income before taxes in USD. Enter 0 to leave the debt to income result unavailable. |
monthlyDebts | number · 0 to 1000000000 | Monthly recurring debt payments in USD, excluding this mortgage. Used only in the debt to income calculation. |
customUpfrontFee | number · 0 to 1000000000 | One time quoted upfront loan fee in USD, used only for loanType other with a positive base loan. financeFee controls whether it is financed or paid in cash. |
customMonthlyInsurance | number · 0 to 1000000000 | Monthly quoted mortgage insurance or loan fee in USD, used only for loanType other with a positive base loan. Excludes annualInsurance. |
Use the units listed for each field. Every field is required, including fields unused by the selected loan program.
{
"apiVersion": "v1",
"calculationVersion": "2026-09-17.1",
"model": "mortgage",
"currency": "USD",
"result": {
"down": 35000,
"baseLoan": 315000,
"feePercent": 0,
"fundingFee": 0,
"loan": 315000,
"principalInterest": 2034.7155423173795,
"tax": 320.83333333333337,
"insurance": 150,
"pmi": 131.25,
"monthlyInsurance": 131.25,
"annualInsurancePercent": 0,
"insuranceLabel": "Mortgage insurance (PMI)",
"upfrontFeeLabel": "VA funding fee",
"insuranceDuration": "PMI is an initial estimate; cancellation rules and lender terms determine when it ends.",
"housing": 2636.798875650713,
"maintenance": 291.6666666666667,
"monthly": 2928.4655423173795,
"closing": 10500,
"cashFee": 0,
"upfront": 47000,
"reserves": 8785.396626952139,
"cashTarget": 55785.39662695214,
"gap": 55785.39662695214,
"debtToIncome": null,
"totalInterest": 417497.5952342566
},
"warnings": [
{
"field": "pmiPercent",
"code": "check_percentage_units",
"message": "pmiPercent is interpreted as 0.5%. Percentage fields use percentage points: 7 means 7%. If a value below 1% is intentional, keep this input."
}
],
"assumptions": [
"User-supplied rate; no live quote or eligibility check.",
"All dollar amounts are USD; rate and percentage fields use percentage points, not fractions.",
"Fixed fully amortizing loan; mortgage insurance is an initial estimate.",
"Taxes, insurance, closing costs and upkeep are supplied assumptions."
],
"sources": [
"https://www.consumerfinance.gov/owning-a-home/",
"https://www.hud.gov/buying/loans",
"https://www.va.gov/housing-assistance/home-loans/"
],
"disclaimer": "Educational estimate, not a quote, appraisal, approval or personalized financial advice."
}POST /api/v1/calculators/rental-property
Rental NOI, cash flow, cap rate, cash-on-cash return and downside. All operating income and cost assumptions are supplied by the caller.
curl https://losttofound.org/api/v1/calculators/rental-property \
-H 'Content-Type: application/json' \
--data '{
"price": 350000,
"down": 20,
"rate": 7,
"term": 30,
"closing": 3,
"rehab": 10000,
"reserves": 10000,
"rent": 2800,
"other": 0,
"vacancy": 5,
"tax": 4200,
"insurance": 1800,
"hoa": 0,
"utilities": 100,
"repairs": 2000,
"capex": 2000,
"management": 8
}'| Field | Type / bounds | Meaning |
|---|---|---|
price | number · 1 to 1000000000 | Purchase price ($) |
down | number · 0 to 100 | Down payment (%) Enter percentage points, not fractions; for example, 7 means 7%. |
rate | number · 0 to 30 | Annual loan interest rate (%). Illustrative fixed rate; use a lender quote. Enter percentage points, not fractions; for example, 7 means 7%. |
term | integer · 1 to 40 | Mortgage term (years) |
closing | number · 0 to 100 | Purchase closing costs (%) Enter percentage points, not fractions; for example, 7 means 7%. |
rehab | number · 0 to 1000000000 | Initial repairs / renovation ($) |
reserves | number · 0 to 1000000000 | Initial cash reserves ($) |
rent | number · 0 to 1000000000 | Monthly scheduled rent (all units) ($) |
other | number · 0 to 1000000000 | Monthly other income ($) |
vacancy | number · 0 to 99 | Vacancy / uncollected income (%) Enter percentage points, not fractions; for example, 7 means 7%. |
tax | number · 0 to 1000000000 | Annual property taxes ($) |
insurance | number · 0 to 1000000000 | Annual property insurance ($) |
hoa | number · 0 to 1000000000 | Monthly HOA ($) |
utilities | number · 0 to 1000000000 | Monthly owner-paid utilities / other costs ($) |
repairs | number · 0 to 1000000000 | Annual routine repairs ($) |
capex | number · 0 to 1000000000 | Annual capital replacement reserve ($) |
management | number · 0 to 99 | Management fee on collected income (%) Enter percentage points, not fractions; for example, 7 means 7%. |
Use the units listed for each field. Every field is required, including fields unused by the selected loan program.
{
"apiVersion": "v1",
"calculationVersion": "2026-09-17.1",
"model": "rental-property",
"currency": "USD",
"result": {
"headline": "This property needs cash each month",
"metrics": [
{
"label": "Monthly cash flow",
"value": -348.98031983504615,
"format": "money"
},
{
"label": "Cash needed to buy",
"value": 100500,
"format": "money"
},
{
"label": "Cap rate",
"value": 5.7618285714285715,
"format": "percent"
},
{
"label": "Cash-on-cash return",
"value": -4.166929192060252,
"format": "percent"
}
],
"rows": [
{
"label": "Scheduled annual income",
"value": 33600,
"format": "money"
},
{
"label": "Vacancy allowance",
"value": 1680,
"format": "money"
},
{
"label": "Operating expenses",
"value": 11753.6,
"format": "money"
},
{
"label": "Net operating income (NOI)",
"value": 20166.4,
"format": "money"
},
{
"label": "Capital replacement reserve",
"value": 2000,
"format": "money"
},
{
"label": "Annual mortgage payments",
"value": 22354.163838020555,
"format": "money"
},
{
"label": "NOI / debt service",
"value": 0.9021317078163511,
"format": "ratio"
},
{
"label": "Monthly rent needed to break even",
"value": 3199.2909837929587,
"format": "money"
},
{
"label": "Downside monthly cash flow",
"value": -709.6203198350462,
"format": "money"
}
],
"notes": [
"NOI excludes financing, income taxes and capital replacements. Cash flow includes your capital reserve. No appreciation or tax benefits are assumed.",
"Downside: scheduled rent and other income fall 10%, vacancy rises 5 percentage points, and fixed expenses remain unchanged.",
"Verify actual rent rolls, property taxes after sale, insurance quotes, local rules, repairs and vacancy. Rates and costs are editable assumptions, not investment-loan quotes."
]
},
"warnings": [],
"assumptions": [
"USD; rent, other, HOA and utilities are monthly. Tax, insurance, repairs and capex are annual.",
"Vacancy and management are percentages; down and closing are percentages of price.",
"Before income taxes, appreciation and depreciation benefits.",
"Downside reduces scheduled income 10% and raises vacancy 5 percentage points."
],
"sources": [
"https://www.consumerfinance.gov/owning-a-home/prepare/figure-out-how-much-you-want-to-spend/",
"https://www.irs.gov/publications/p527"
],
"disclaimer": "Educational estimate, not a quote, appraisal, approval or personalized financial advice."
}POST /api/v1/calculators/business
SDE / EBITDA range, acquisition financing, debt coverage and buyer cash. Assumed debt requires a positive annual payment schedule; deferred debt is outside this beta.
curl https://losttofound.org/api/v1/calculators/business \
-H 'Content-Type: application/json' \
--data '{
"price": 450000,
"revenue": 900000,
"earnings": 180000,
"basis": "sde",
"unsupported": 15000,
"labor": 0,
"reinvestment": 15000,
"ownerPay": 60000,
"debt": 0,
"acquiredCash": 0,
"annualDebt": 0,
"down": 20,
"rate": 10,
"years": 10,
"costs": 15000,
"workingCapital": 30000,
"low": 2,
"high": 3,
"decline": 20,
"target": 1.25,
"assets": 0
}'| Field | Type / bounds | Meaning |
|---|---|---|
price | number · 1 to 10000000 | Purchase price paid to the seller in USD, excluding debt assumed separately. |
revenue | number · 0 to 1000000000 | Annual sales before expenses in USD. Enter 0 if unknown; revenue ratios will be unavailable. |
earnings | number · -1000000000 to 1000000000 | Advertised annual SDE or EBITDA in USD, as selected by basis. Negative earnings are allowed. |
basis | sde, ebitda | Earnings definition: sde for seller discretionary earnings with one working owner; ebitda for earnings before interest, taxes, depreciation and amortization with management payroll included. Supply matching earnings and multiples; this selection does not convert earnings or automatically adjust payroll. |
unsupported | number · 0 to 1000000000 | Annual unsupported seller add backs to remove from advertised earnings, in USD. Include expenses that will recur for the buyer. |
labor | number · 0 to 1000000000 | Additional annual staffing or replacement manager cost in USD. Exclude payroll already deducted from earnings. |
reinvestment | number · 0 to 1000000000 | Annual reserve for equipment replacement and working capital growth in USD, beyond expenses already deducted from earnings. |
ownerPay | number · 0 to 1000000000 | Additional annual owner income goal before personal tax, in USD. Exclude income already deducted from earnings or labor. Deducted in surplus and stressedResidual, but not in residual or debt coverage. |
debt | number · 0 to 1000000000 | Existing debt balance transferred to the buyer and still outstanding after closing, in USD. Excludes the new acquisition loan calculated from price and down. |
acquiredCash | number · 0 to 1000000000 | Excess cash transferred to the buyer in USD, excluding required operating cash. Adjusts value and price ratios; does not reduce modeled cashNeeded or the acquisition loan. |
annualDebt | number · 0 to 1000000000 | Annual principal plus interest payments on assumed debt in USD, separate from the calculated new acquisition loan payments. Must be positive when debt is positive; deferred payment debt is outside this beta. |
down | number · 0 to 100 | Buyer down payment as a percentage of price. Enter 20 for 20%. Costs and workingCapital are paid separately in cash. |
rate | number · 0 to 100 | Annual acquisition loan interest rate in percentage points. Enter 10 for 10%, not 0.10. An input assumption, not a financing quote. |
years | integer · 1 to 30 | Fully amortizing acquisition loan term in whole years. |
costs | number · 0 to 1000000000 | One time closing costs and transaction or loan fees paid in cash, in USD. Not included in the acquisition loan. |
workingCapital | number · 0 to 1000000000 | Extra initial working capital and reserve cash contributed by the buyer in USD, beyond price and costs. Not financed by this model. |
low | number · 0 to 30 | Low valuation multiple of adjusted annual earnings, as a ratio. Enter 2 for 2 times earnings. Must not exceed high; supply a multiple matching basis. |
high | number · 0 to 30 | High valuation multiple of adjusted annual earnings, as a ratio. Enter 3 for 3 times earnings. Must be at least low; supply a multiple matching basis. |
decline | number · 0 to 100 | Stress reduction in positive adjusted earnings, in percentage points. Enter 20 for 20%. Staffing, reinvestment, debt payments and ownerPay remain unchanged; negative adjusted earnings are not reduced further. |
target | number · 1 to 100 | Planning debt coverage target as a ratio. Enter 1.25 for 1.25 times annual debt payments. The API validates this input but does not use it to change or classify results; compare coverage with target in your application. |
assets | number · 0 to 1000000000 | Optional net realizable operating assets in USD, after nondebt liabilities and selling costs. Exclude acquiredCash and debt. Used only for the separate assetEquity cross check, not added to earnings value. |
Use the units listed for each field. Every field is required, including fields unused by the selected loan program.
For the business results, residual is annual cash before your income goal. surplus and stressedResidual are both after that goal and before taxes. Compare those two to see the effect of the stress scenario. When decline is 0, they are equal. The OpenAPI specification describes every business result.
{
"apiVersion": "v1",
"calculationVersion": "2026-09-17.1",
"model": "business",
"currency": "USD",
"result": {
"normalized": 165000,
"operatingPrice": 450000,
"lowValue": 330000,
"highValue": 495000,
"loan": 360000,
"payment": 4757.42652774342,
"debtService": 57089.11833292103,
"available": 150000,
"residual": 92910.88166707897,
"surplus": 32910.88166707897,
"coverage": 2.6274709503352227,
"stressCoverage": 2.0494273412614734,
"stressedResidual": -89.11833292103256,
"cashNeeded": 135000,
"earningsMultiple": 2.727272727272727,
"revenueMultiple": 0.5,
"margin": 18.333333333333332,
"leverage": 2.1818181818181817,
"cashReturn": 24.37843086450294,
"assetEquity": 0,
"pricePosition": "Within your selected range"
},
"warnings": [],
"assumptions": [
"All dollars are USD and cash-flow inputs are annual unless specified.",
"User-selected SDE or EBITDA multiples; no appraisal or automatic comparable-deal lookup.",
"One fully amortizing acquisition loan; transferred debt payments are supplied separately.",
"No tax, balloon, refinancing or lender eligibility model."
],
"sources": [
"https://www.bizbuysell.com/insight-report-data-tables/",
"https://www.sba.gov/loans/7a-loans/"
],
"disclaimer": "Educational estimate, not a quote, appraisal, approval or personalized financial advice."
}Successful responses include warnings. Every submitted percentage greater than 0 and less than 1 gets an informational unit check, including fields unused by the selected loan program. For example, rate: 0.0671 means 0.0671%. Enter rate: 6.71 if you mean 6.71%.
Low percentages can be intentional, including 0.5% mortgage insurance. These warnings never change or reject an input. Zero and values of 1 or more do not trigger this check. An empty list does not confirm that your assumptions are suitable.
[
{
"field": "rate",
"code": "check_percentage_units",
"message": "rate is interpreted as 0.0671%. Percentage fields use percentage points: 7 means 7%. If a value below 1% is intentional, keep this input."
},
{
"field": "pmiPercent",
"code": "check_percentage_units",
"message": "pmiPercent is interpreted as 0.5%. Percentage fields use percentage points: 7 means 7%. If a value below 1% is intentional, keep this input."
}
]Errors are JSON: {"error":{"code":"invalid_input","message":"…"}}. Expect 400 for malformed JSON or query parameters, 405 for unsupported methods, 408 for slow bodies, 413 for size, 415 for content type, 422 for inputs, 429 for rate limits and 503 for temporary unavailability. Never display a failed request as a zero-dollar estimate.
For invalid JSON object inputs, HTTP 422 also includes error.details: a list of field names, issue codes and reasons. Correct every listed field before retrying. Missing fields, unknown names, type errors and bounds are reported together. Rules involving related fields are checked when those fields have valid types and bounds. Other errors may omit details.
This response comes from the mortgage example with price: 0 and an added unexpected: true field.
{
"error": {
"code": "unknown_field",
"message": "Body contains an undocumented field.",
"details": [
{
"field": "unexpected",
"code": "unknown_field",
"message": "This field is not documented for this calculator."
},
{
"field": "price",
"code": "out_of_range",
"message": "Must be at least 1."
}
]
}
}Return assumptions and source links alongside results, and identify unavailable values rather than converting null to zero. These are educational estimates, not loan quotes, appraisals, approvals or personalized advice.
Older students can compare a hand calculation, the browser calculator and an API response using fictional inputs. Explore calculator lesson plans and activities →
Play 8 business roles, predict consequences, compare paths and download your decision reviews.
Make a prediction, change an assumption and explain the result using fictional numbers and printable response sheets.
Start with a goal: buy a home, evaluate a business, manage debt, compare jobs or teach money skills.