nestegg-calculators
이 MCP로 할 수 있는 일
Provides stateless financial calculations for loans, amortization, investing, bonds, options, taxes, budgeting, returns, and retirement planning.
도구
입력 스키마
{'type': 'object', 'required': ['faceValue', 'couponRatePct', 'daysSinceLastCoupon'], 'properties': {'faceValue': {'type': 'number', 'description': 'Face value.'}, 'couponRatePct': {'type': 'number', 'description': 'Annual coupon rate in percent.'}, 'dayCountBasis': {'type': 'number', 'description': 'Day-count basis (default 360).'}, 'daysSinceLastCoupon': {'type': 'number', 'description': 'Days since the last coupon.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'accrued': {'type': 'number', 'description': 'Accrued interest.'}}}
입력 스키마
{'type': 'object', 'required': ['yieldPct', 'taxRatePct'], 'properties': {'yieldPct': {'type': 'number', 'description': 'Pre-tax yield in percent.'}, 'taxRatePct': {'type': 'number', 'description': 'Tax rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'afterTaxPct': {'type': 'number', 'description': 'After-tax yield, percent.'}}}
입력 스키마
{'type': 'object', 'required': ['amount', 'rate', 'mode', 'startDate'], 'properties': {'mode': {'enum': ['term', 'payment'], 'type': 'string', 'description': 'Fix the term (compute the payment) or fix the payment (compute the term).'}, 'rate': {'type': 'number', 'description': 'Annual interest rate in percent (6 = 6%).'}, 'extra': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': 'string', 'description': 'ISO date.'}, 'amount': {'type': 'number', 'description': 'Extra principal.'}}}, 'description': 'Optional dated extra principal payments.'}, 'limit': {'type': 'number', 'description': 'Max monthly rows when detail=monthly (default and maximum 360; page with nextOffset).'}, 'amount': {'type': 'number', 'description': 'Loan principal.'}, 'detail': {'enum': ['summary', 'yearly', 'monthly'], 'type': 'string', 'description': 'Output size. summary (default): totals + yearly breakdown. monthly: full schedule (use offset/limit to paginate).'}, 'offset': {'type': 'number', 'description': 'Monthly schedule start index when detail=monthly (default 0).'}, 'payment': {'type': 'number', 'description': "Monthly payment, used when mode is 'payment'."}, 'rateSteps': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'rate'], 'properties': {'date': {'type': 'string', 'description': 'ISO date the new rate starts.'}, 'rate': {'type': 'number', 'description': 'New annual rate in percent.'}}}, 'description': 'Optional rate changes (e.g. after a Zinsbindung). The installment is held; from each date the outstanding balance continues at the new annual rate.'}, 'startDate': {'type': 'string', 'description': 'First payment month as an ISO date (YYYY-MM-DD).'}, 'termYears': {'type': 'number', 'description': "Term in years, used when mode is 'term'."}, 'fixedUntil': {'type': 'string', 'description': 'Optional. Rate is certain until this ISO date; beyond it the schedule is an estimate.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'yearly': {'type': 'array', 'description': 'Per-year totals: { year, interest, principal, extra, payments, endBalance }.'}, 'payments': {'type': 'number', 'description': 'Number of payments made.'}, 'schedule': {'type': 'array', 'description': 'Monthly rows (only when detail=monthly).'}, 'totalPaid': {'type': 'number', 'description': 'Total paid (incl. extras).'}, 'nextOffset': {'type': 'number', 'description': 'Next pagination offset, or null.'}, 'payoffDate': {'type': 'string', 'description': 'Payoff date, ISO.'}, 'scheduleTotal': {'type': 'number', 'description': 'Total monthly rows (when detail=monthly).'}, 'totalInterest': {'type': 'number', 'description': 'Total interest paid.'}, 'monthlyPayment': {'type': 'number', 'description': 'Monthly payment.'}, 'scheduledMonths': {'type': 'number', 'description': 'Scheduled months (null if open-ended).'}}}
입력 스키마
{'type': 'object', 'required': ['payment', 'ratePct', 'periods'], 'properties': {'payment': {'type': 'number', 'description': 'Payment per period.'}, 'periods': {'type': 'number', 'description': 'Number of periods.'}, 'ratePct': {'type': 'number', 'description': 'Rate per period in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'fv': {'type': 'number', 'description': 'Future value.'}}}
입력 스키마
{'type': 'object', 'required': ['presentValue', 'ratePct', 'periods'], 'properties': {'periods': {'type': 'number', 'description': 'Number of periods.'}, 'ratePct': {'type': 'number', 'description': 'Rate per period in percent.'}, 'presentValue': {'type': 'number', 'description': 'Present value / principal.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'payment': {'type': 'number', 'description': 'Level payment (null if periods<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['payment', 'ratePct', 'periods'], 'properties': {'payment': {'type': 'number', 'description': 'Payment per period.'}, 'periods': {'type': 'number', 'description': 'Number of periods.'}, 'ratePct': {'type': 'number', 'description': 'Rate per period in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'pv': {'type': 'number', 'description': 'Present value.'}}}
입력 스키마
{'type': 'object', 'required': ['amount', 'ratePct', 'balloonMonths', 'amortMonths'], 'properties': {'amount': {'type': 'number', 'description': 'Loan amount.'}, 'ratePct': {'type': 'number', 'description': 'Annual rate in percent.'}, 'amortMonths': {'type': 'number', 'description': 'Amortization basis in months.'}, 'balloonMonths': {'type': 'number', 'description': 'Months until the balloon is due.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'balloon': {'type': 'number', 'description': 'Balloon balance due.'}, 'payment': {'type': 'number', 'description': 'Monthly payment.'}}}
입력 스키마
{'type': 'object', 'required': ['annualSpend', 'partTimeIncome'], 'properties': {'annualSpend': {'type': 'number', 'description': 'Yearly spending.'}, 'partTimeIncome': {'type': 'number', 'description': 'Yearly part-time income.'}, 'withdrawalRatePct': {'type': 'number', 'description': 'Safe withdrawal rate in percent (default 4).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'target': {'type': 'number', 'description': 'Nest egg needed (null if withdrawal rate<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['amount', 'ratePct', 'termMonths'], 'properties': {'amount': {'type': 'number', 'description': 'Loan amount.'}, 'ratePct': {'type': 'number', 'description': 'Annual rate in percent.'}, 'termMonths': {'type': 'number', 'description': 'Original term in months.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'monthsSaved': {'type': 'number', 'description': 'Months saved.'}, 'interestSaved': {'type': 'number', 'description': 'Interest saved.'}, 'biweeklyPayment': {'type': 'number', 'description': 'Biweekly payment.'}}}
입력 스키마
{'type': 'object', 'required': ['spot', 'strike', 'years', 'volatilityPct', 'riskFreePct'], 'properties': {'spot': {'type': 'number', 'description': 'Current underlying price.'}, 'type': {'enum': ['call', 'put'], 'type': 'string', 'description': 'Option type (default call).'}, 'years': {'type': 'number', 'description': 'Time to expiry in years.'}, 'strike': {'type': 'number', 'description': 'Strike price.'}, 'riskFreePct': {'type': 'number', 'description': 'Risk-free rate in percent.'}, 'volatilityPct': {'type': 'number', 'description': 'Annualized volatility in percent.'}, 'dividendYieldPct': {'type': 'number', 'description': 'Continuous dividend yield in percent (default 0).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'d1': {'type': 'number', 'description': 'd1.'}, 'd2': {'type': 'number', 'description': 'd2.'}, 'price': {'type': 'number', 'description': 'Option price (null if degenerate).'}}}
입력 스키마
{'type': 'object', 'required': ['faceValue', 'couponRatePct', 'years', 'yieldPct'], 'properties': {'years': {'type': 'number', 'description': 'Years to maturity.'}, 'yieldPct': {'type': 'number', 'description': 'Annual yield in percent.'}, 'faceValue': {'type': 'number', 'description': 'Face value.'}, 'couponRatePct': {'type': 'number', 'description': 'Annual coupon rate in percent.'}, 'periodsPerYear': {'type': 'number', 'description': 'Coupon periods per year (default 2).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'macaulay': {'type': 'number', 'description': 'Macaulay duration, years.'}, 'modified': {'type': 'number', 'description': 'Modified duration.'}}}
입력 스키마
{'type': 'object', 'required': ['faceValue', 'couponRatePct', 'years', 'yieldPct'], 'properties': {'years': {'type': 'number', 'description': 'Years to maturity.'}, 'yieldPct': {'type': 'number', 'description': 'Annual yield in percent.'}, 'faceValue': {'type': 'number', 'description': 'Face (par) value.'}, 'couponRatePct': {'type': 'number', 'description': 'Annual coupon rate in percent of face.'}, 'periodsPerYear': {'type': 'number', 'description': 'Coupon periods per year (default 2).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'price': {'type': 'number', 'description': 'Bond price (null if degenerate).'}}}
입력 스키마
{'type': 'object', 'required': ['fixedCosts', 'pricePerUnit', 'variableCostPerUnit'], 'properties': {'fixedCosts': {'type': 'number', 'description': 'Total fixed costs.'}, 'pricePerUnit': {'type': 'number', 'description': 'Selling price per unit.'}, 'variableCostPerUnit': {'type': 'number', 'description': 'Variable cost per unit.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'units': {'type': 'number', 'description': 'Break-even units (null if no contribution).'}, 'revenue': {'type': 'number', 'description': 'Revenue at break-even (null if none).'}}}
입력 스키마
{'type': 'object', 'required': ['monthlyIncome'], 'properties': {'monthlyIncome': {'type': 'number', 'description': 'Monthly take-home income.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'needs': {'type': 'number', 'description': '50% needs.'}, 'wants': {'type': 'number', 'description': '30% wants.'}, 'savings': {'type': 'number', 'description': '20% savings.'}}}
입력 스키마
{'type': 'object', 'required': ['begin', 'end', 'years'], 'properties': {'end': {'type': 'number', 'description': 'Ending value.'}, 'begin': {'type': 'number', 'description': 'Starting value.'}, 'years': {'type': 'number', 'description': 'Number of years.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'value': {'type': 'number', 'description': 'Result value.'}}}
입력 스키마
{'type': 'object', 'required': ['noi', 'propertyValue'], 'properties': {'noi': {'type': 'number', 'description': 'Net operating income.'}, 'propertyValue': {'type': 'number', 'description': 'Property value.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'capRatePct': {'type': 'number', 'description': 'Cap rate, percent (null if value<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['annualCashFlow', 'cashInvested'], 'properties': {'cashInvested': {'type': 'number', 'description': 'Cash invested.'}, 'annualCashFlow': {'type': 'number', 'description': 'Annual pre-tax cash flow.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'cashOnCashPct': {'type': 'number', 'description': 'Cash-on-cash return, percent (null if invested<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['currentNestEgg', 'annualRatePct', 'yearsToRetirement', 'annualSpend'], 'properties': {'annualSpend': {'type': 'number', 'description': 'Yearly spending in retirement.'}, 'annualRatePct': {'type': 'number', 'description': 'Expected annual growth in percent.'}, 'currentNestEgg': {'type': 'number', 'description': 'Amount invested today.'}, 'withdrawalRatePct': {'type': 'number', 'description': 'Safe withdrawal rate in percent (default 4).'}, 'yearsToRetirement': {'type': 'number', 'description': 'Years until retirement.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'gap': {'type': 'number', 'description': 'Shortfall in future-value terms.'}, 'projected': {'type': 'number', 'description': 'Projected balance at retirement.'}, 'fireTarget': {'type': 'number', 'description': 'FIRE target.'}, 'isCoasting': {'type': 'boolean', 'description': 'True if it already coasts.'}}}
입력 스키마
{'type': 'object', 'required': ['principal', 'annualRatePct', 'years'], 'properties': {'years': {'type': 'number', 'description': 'Number of years.'}, 'principal': {'type': 'number', 'description': 'Starting amount.'}, 'annualRatePct': {'type': 'number', 'description': 'Annual growth rate in percent.'}, 'periodsPerYear': {'type': 'number', 'description': 'Compounding periods per year (default 1).'}, 'contributionPerPeriod': {'type': 'number', 'description': 'Optional. Amount added each period (default 0).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'value': {'type': 'number', 'description': 'Result value.'}}}
입력 스키마
{'type': 'object', 'required': ['pricePerUnit', 'variableCostPerUnit'], 'properties': {'pricePerUnit': {'type': 'number', 'description': 'Selling price per unit.'}, 'variableCostPerUnit': {'type': 'number', 'description': 'Variable cost per unit.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'ratioPct': {'type': 'number', 'description': 'Contribution margin ratio, percent (null if price=0).'}, 'contributionMargin': {'type': 'number', 'description': 'Contribution per unit.'}}}
입력 스키마
{'type': 'object', 'required': ['monthly', 'annualRatePct', 'months'], 'properties': {'months': {'type': 'number', 'description': 'Number of months.'}, 'monthly': {'type': 'number', 'description': 'Monthly contribution.'}, 'annualRatePct': {'type': 'number', 'description': 'Annual growth rate in percent.'}, 'contribGrowthPct': {'type': 'number', 'description': 'Optional. Contribution step-up percent per year.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'value': {'type': 'number', 'description': 'Result value.'}}}
입력 스키마
{'type': 'object', 'required': ['faceValue', 'couponRatePct', 'years', 'yieldPct'], 'properties': {'years': {'type': 'number', 'description': 'Years to maturity.'}, 'yieldPct': {'type': 'number', 'description': 'Annual yield in percent.'}, 'faceValue': {'type': 'number', 'description': 'Face value.'}, 'couponRatePct': {'type': 'number', 'description': 'Annual coupon rate in percent.'}, 'periodsPerYear': {'type': 'number', 'description': 'Coupon periods per year (default 2).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'convexity': {'type': 'number', 'description': 'Convexity, years^2.'}}}
입력 스키마
{'type': 'object', 'required': ['balance', 'aprPct', 'monthlyPayment'], 'properties': {'aprPct': {'type': 'number', 'description': 'Annual percentage rate in percent.'}, 'balance': {'type': 'number', 'description': 'Current balance.'}, 'monthlyPayment': {'type': 'number', 'description': 'Fixed monthly payment.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'months': {'type': 'number', 'description': 'Months to clear (null if never).'}, 'totalPaid': {'type': 'number', 'description': 'Total paid (null if never).'}, 'totalInterest': {'type': 'number', 'description': 'Total interest (null if never).'}}}
입력 스키마
{'type': 'object', 'required': ['currentAssets', 'currentLiabilities'], 'properties': {'currentAssets': {'type': 'number', 'description': 'Current assets.'}, 'currentLiabilities': {'type': 'number', 'description': 'Current liabilities.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'currentRatio': {'type': 'number', 'description': 'Current ratio (null if liabilities<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['price', 'faceValue', 'couponRatePct'], 'properties': {'price': {'type': 'number', 'description': 'Current bond price.'}, 'faceValue': {'type': 'number', 'description': 'Face value.'}, 'couponRatePct': {'type': 'number', 'description': 'Annual coupon rate in percent of face.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'currentYieldPct': {'type': 'number', 'description': 'Current yield, percent (null if price<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['year', 'capitalIncome'], 'properties': {'year': {'type': 'number', 'description': 'Tax year: 2023, 2024, 2025 or 2026.'}, 'joint': {'type': 'boolean', 'description': 'true for jointly assessed couples (doubles the Sparerpauschbetrag).'}, 'churchTaxPct': {'type': 'number', 'description': 'Church tax rate: 8, 9, or 0 for none (default 0).'}, 'capitalIncome': {'type': 'number', 'description': 'Annual capital income (interest, dividends, realized gains) in EUR.'}, 'foreignTaxCredit': {'type': 'number', 'description': 'Optional. Creditable foreign withholding tax (q in the §32d formula).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'net': {'type': 'number', 'description': 'Income after taxes.'}, 'soli': {'type': 'number', 'description': 'Soli (5.5%).'}, 'year': {'type': 'number', 'description': 'Tax year.'}, 'taxable': {'type': 'number', 'description': 'Taxable after allowance.'}, 'totalTax': {'type': 'number', 'description': 'All taxes.'}, 'allowance': {'type': 'number', 'description': 'Sparerpauschbetrag applied.'}, 'churchTax': {'type': 'number', 'description': 'Church tax.'}, 'incomeTax': {'type': 'number', 'description': 'Flat tax (25% or church-reduced).'}, 'capitalIncome': {'type': 'number', 'description': 'Income.'}, 'effectiveRatePct': {'type': 'number', 'description': 'Total tax / income, percent.'}}}
입력 스키마
{'type': 'object', 'required': ['debts', 'monthlyBudget'], 'properties': {'debts': {'type': 'array', 'items': {'type': 'object', 'required': ['balance', 'rate', 'minPayment'], 'properties': {'name': {'type': 'string', 'description': 'Optional label.'}, 'rate': {'type': 'number', 'description': 'Annual interest rate in percent.'}, 'balance': {'type': 'number', 'description': 'Current balance.'}, 'minPayment': {'type': 'number', 'description': 'Minimum monthly payment.'}}}, 'description': 'The debts to pay off.'}, 'method': {'enum': ['avalanche', 'snowball'], 'type': 'string', 'description': 'Payoff strategy (default avalanche).'}, 'monthlyBudget': {'type': 'number', 'description': 'Total amount available across all debts each month.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'months': {'type': 'number', 'description': 'Months to debt-free (null if insolvent).'}, 'insolvent': {'type': 'boolean', 'description': "True if the budget can't keep up."}, 'payoffOrder': {'type': 'array', 'description': 'Debt names in payoff order.'}, 'totalInterest': {'type': 'number', 'description': 'Total interest (null if insolvent).'}}}
입력 스키마
{'type': 'object', 'required': ['value', 'ratePct', 'year'], 'properties': {'year': {'type': 'number', 'description': 'Year (1-based).'}, 'value': {'type': 'number', 'description': 'Initial cost.'}, 'ratePct': {'type': 'number', 'description': 'Annual depreciation rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'bookValue': {'type': 'number', 'description': 'Book value at year end.'}, 'depreciation': {'type': 'number', 'description': 'Depreciation this year.'}}}
입력 스키마
{'type': 'object', 'required': ['gross'], 'properties': {'soli': {'type': 'number', 'description': 'Solidarity surcharge (Solidaritätszuschlag) amount (often 0 below the threshold).'}, 'gross': {'type': 'number', 'description': 'Gross salary (Brutto).'}, 'carePct': {'type': 'number', 'description': 'Employee long-term care (Pflegeversicherung) rate in percent.'}, 'healthPct': {'type': 'number', 'description': 'Employee health (Krankenversicherung incl. Zusatzbeitrag) rate in percent.'}, 'incomeTax': {'type': 'number', 'description': 'Income tax (Lohnsteuer) amount for the period — look up via the §32a / Steuerklasse tables.'}, 'pensionPct': {'type': 'number', 'description': 'Employee pension (Rentenversicherung) rate in percent (e.g. 9.3).'}, 'churchTaxPct': {'type': 'number', 'description': 'Church tax (Kirchensteuer) rate in percent of income tax (8 or 9, 0 if none).'}, 'healthCeiling': {'type': 'number', 'description': 'Contribution ceiling for health and care.'}, 'pensionCeiling': {'type': 'number', 'description': 'Contribution ceiling (Beitragsbemessungsgrenze) for pension and unemployment.'}, 'unemploymentPct': {'type': 'number', 'description': 'Employee unemployment (Arbeitslosenversicherung) rate in percent (e.g. 1.3).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'net': {'type': 'number', 'description': 'Net.'}, 'soli': {'type': 'number', 'description': 'Soli.'}, 'gross': {'type': 'number', 'description': 'Gross.'}, 'churchTax': {'type': 'number', 'description': 'Church tax.'}, 'incomeTax': {'type': 'number', 'description': 'Income tax.'}, 'contributions': {'type': 'object', 'description': '{ pension, unemployment, health, care, total }.'}, 'totalDeductions': {'type': 'number', 'description': 'Total deductions.'}}}
입력 스키마
{'type': 'object', 'required': ['year'], 'properties': {'year': {'type': 'number', 'description': 'Year: 2023, 2024, 2025 or 2026.'}, 'children': {'type': 'number', 'description': 'Number of children (default 1).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'year': {'type': 'number', 'description': 'Year.'}, 'annual': {'type': 'number', 'description': 'Total annual.'}, 'monthly': {'type': 'number', 'description': 'Total monthly.'}, 'children': {'type': 'number', 'description': 'Children.'}, 'perChildMonthly': {'type': 'number', 'description': 'Monthly amount per child.'}}}
입력 스키마
{'type': 'object', 'required': ['year', 'monthlyPay'], 'properties': {'age': {'type': 'number', 'description': 'Optional. Age - under 23 skips the childless care surcharge.'}, 'year': {'type': 'number', 'description': 'Year: 2023, 2024, 2025 or 2026.'}, 'children': {'type': 'number', 'description': 'Children, for the care-insurance rate (default 0).'}, 'bundesland': {'type': 'string', 'description': 'Optional. State code; SN applies the Saxony care split.'}, 'monthlyPay': {'type': 'number', 'description': 'Gross monthly pay in EUR.'}, 'kvZusatzPct': {'type': 'number', 'description': "Optional. Krankenkasse Zusatzbeitrag in percent; defaults to the year's average."}, 'childrenUnder25': {'type': 'number', 'description': 'Optional. Children under 25 for the care discounts, when different.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'year': {'type': 'number', 'description': 'Year.'}, 'zone': {'type': 'string', 'description': 'minijob | midijob | regular | none.'}, 'rates': {'type': 'object', 'description': '{ employee, total } percent rates.'}, 'faktorF': {'type': 'number', 'description': 'Faktor F (midijob only).'}, 'employee': {'type': 'object', 'description': '{ pension, unemployment, health, care, total }.'}, 'employer': {'type': 'object', 'description': '{ total }.'}, 'monthlyPay': {'type': 'number', 'description': 'Pay.'}, 'thresholds': {'type': 'object', 'description': '{ minijobMonthly, midijobUpper }.'}, 'savingsVsFull': {'type': 'number', 'description': 'Employee saving vs full contributions.'}, 'contributionBase': {'type': 'object', 'description': '{ total, employee } reduced bases.'}}}
입력 스키마
{'type': 'object', 'required': ['year', 'grossAnnual'], 'properties': {'age': {'type': 'number', 'description': 'Optional. Age in years - under 23 skips the childless care surcharge.'}, 'year': {'type': 'number', 'description': 'Tax year: 2023, 2024, 2025 or 2026.'}, 'faktor': {'type': 'number', 'description': 'Optional. Tax-class-4 Faktorverfahren factor, default 1.0 (no factor). Only the small minority of married IV/IV couples who applied for it have one; it is assigned by the Finanzamt and printed on the payslip / ELStAM (e.g. 0.921, always <= 1). Leave unset unless the payslip shows a Faktor.'}, 'children': {'type': 'number', 'description': 'Kinderfreibetrag counter (ZKF), halves allowed (default 0). Also drives the care-insurance child discounts.'}, 'taxClass': {'type': 'number', 'description': 'Steuerklasse 1-6 (default 1).'}, 'bundesland': {'type': 'string', 'description': 'Optional. State code (BW, BY, BE, ... SN, TH). Drives the Saxony care-insurance split and the pre-2025 East pension ceiling.'}, 'grossAnnual': {'type': 'number', 'description': 'Annual gross salary (Brutto) in EUR.'}, 'kvZusatzPct': {'type': 'number', 'description': "Optional. The Krankenkasse's own Zusatzbeitrag in percent — pass the actual rate for exact results (rates change yearly, e.g. TK 2025: 2.45, 2026: 2.69). Defaults to the year's official average, which is only right for generic estimates."}, 'churchTaxPct': {'type': 'number', 'description': 'Church tax rate: 8, 9, or 0 for none (default 0).'}, 'privateHealth': {'type': 'object', 'required': ['premiumAnnual'], 'properties': {'premiumAnnual': {'type': 'number', 'description': 'Annual private health+care premium in EUR.'}}, 'additionalProperties': False}, 'childrenUnder25': {'type': 'number', 'description': 'Optional. Children under 25 for the care-insurance discounts, when it differs from `children`.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'net': {'type': 'object', 'description': '{ annual, monthly }.'}, 'soli': {'type': 'number', 'description': 'Solidaritätszuschlag.'}, 'year': {'type': 'number', 'description': 'Tax year.'}, 'gross': {'type': 'object', 'description': '{ annual, monthly }.'}, 'totalTax': {'type': 'number', 'description': 'All taxes.'}, 'churchTax': {'type': 'number', 'description': 'Kirchensteuer.'}, 'incomeTax': {'type': 'number', 'description': 'Lohnsteuer (annual).'}, 'assumptions': {'type': 'object', 'description': 'Inputs as applied (tax class, Zusatzbeitrag, PAP basis, ...).'}, 'contributions': {'type': 'object', 'description': '{ pension, unemployment, health, care, total, rates, ceilingsApplied }.'}, 'totalDeductions': {'type': 'number', 'description': 'Taxes + contributions.'}}}
입력 스키마
{'type': 'object', 'required': ['value', 'annualRatePct', 'years'], 'properties': {'up': {'type': 'boolean', 'description': 'false depreciates, true appreciates.'}, 'value': {'type': 'number', 'description': 'Starting value.'}, 'years': {'type': 'number', 'description': 'Number of years.'}, 'annualRatePct': {'type': 'number', 'description': 'Annual rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'value': {'type': 'number', 'description': 'Result value.'}}}
입력 스키마
{'type': 'object', 'required': ['year', 'grossAnnual'], 'properties': {'year': {'type': 'number', 'description': 'Year: 2023, 2024, 2025 or 2026.'}, 'bundesland': {'type': 'string', 'description': 'Optional. State code - East states use the East ceiling before 2025.'}, 'grossAnnual': {'type': 'number', 'description': 'Annual insured gross salary in EUR.'}, 'totalPoints': {'type': 'number', 'description': "Optional. Accumulated points, to project the gross monthly pension at today's Rentenwert."}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'year': {'type': 'number', 'description': 'Year.'}, 'points': {'type': 'number', 'description': 'Points earned this year.'}, 'projection': {'type': 'object', 'description': '{ totalPoints, monthlyPension, note } when totalPoints given.'}, 'rentenwert': {'type': 'object', 'description': '{ janToJun, fromJuly } EUR per point per month.'}, 'grossAnnual': {'type': 'number', 'description': 'Gross.'}, 'insuredGross': {'type': 'number', 'description': 'Gross after the ceiling.'}, 'ceilingApplied': {'type': 'boolean', 'description': 'True if capped.'}, 'maxPointsThisYear': {'type': 'number', 'description': 'Ceiling / average.'}, 'durchschnittsentgelt': {'type': 'number', 'description': 'Average earnings divisor.'}, 'monthlyPensionPerPoint': {'type': 'number', 'description': 'Current EUR per point.'}}}
입력 스키마
{'type': 'object', 'required': ['price', 'discountPct'], 'properties': {'price': {'type': 'number', 'description': 'Original price.'}, 'discountPct': {'type': 'number', 'description': 'Discount in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'discount': {'type': 'number', 'description': 'Amount off.'}, 'finalPrice': {'type': 'number', 'description': 'Final price.'}}}
입력 스키마
{'type': 'object', 'required': ['initialCost', 'cashflows', 'ratePct'], 'properties': {'ratePct': {'type': 'number', 'description': 'Discount rate per period in percent.'}, 'cashflows': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Inflow each period.'}, 'initialCost': {'type': 'number', 'description': 'Upfront cost.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'years': {'type': 'number', 'description': 'Discounted payback in periods (null if never).'}}}
입력 스키마
{'type': 'object', 'required': ['prices', 'periodicInvestment'], 'properties': {'prices': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Price at each purchase period.'}, 'periodicInvestment': {'type': 'number', 'description': 'Fixed amount invested each period.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'units': {'type': 'number', 'description': 'Units accumulated.'}, 'avgCost': {'type': 'number', 'description': 'Average cost per unit (null if none).'}, 'invested': {'type': 'number', 'description': 'Total invested.'}, 'finalValue': {'type': 'number', 'description': 'Value at the last price.'}}}
입력 스키마
{'type': 'object', 'required': ['value', 'usefulYears', 'year'], 'properties': {'year': {'type': 'number', 'description': 'Year (1-based).'}, 'value': {'type': 'number', 'description': 'Initial cost.'}, 'salvage': {'type': 'number', 'description': 'Salvage value (default 0).'}, 'usefulYears': {'type': 'number', 'description': 'Useful life in years.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'bookValue': {'type': 'number', 'description': 'Book value at year end.'}, 'depreciation': {'type': 'number', 'description': 'Depreciation this year.'}}}
입력 스키마
{'type': 'object', 'required': ['noi', 'annualDebtService'], 'properties': {'noi': {'type': 'number', 'description': 'Net operating income.'}, 'annualDebtService': {'type': 'number', 'description': 'Annual debt service.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'dscr': {'type': 'number', 'description': 'Debt service coverage ratio (null if debt<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['monthlyDebt', 'grossMonthlyIncome'], 'properties': {'monthlyDebt': {'type': 'number', 'description': 'Total monthly debt payments.'}, 'grossMonthlyIncome': {'type': 'number', 'description': 'Gross monthly income.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'dtiPct': {'type': 'number', 'description': 'Debt-to-income, percent (null if income<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['ratePct', 'periodsPerYear'], 'properties': {'ratePct': {'type': 'number', 'description': 'The rate in percent (nominal, or effective when toNominal is true).'}, 'toNominal': {'type': 'boolean', 'description': 'false (default) returns the effective rate; true returns the nominal rate.'}, 'periodsPerYear': {'type': 'number', 'description': 'Compounding periods per year (12 monthly, 365 daily).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'nominalRatePct': {'type': 'number', 'description': 'Nominal rate, percent (when toNominal).'}, 'effectiveRatePct': {'type': 'number', 'description': 'Effective annual rate (APY), percent.'}}}
입력 스키마
{'type': 'object', 'required': ['liquidSavings', 'monthlyExpenses'], 'properties': {'liquidSavings': {'type': 'number', 'description': 'Cash and liquid savings on hand.'}, 'monthlyExpenses': {'type': 'number', 'description': 'Total monthly expenses.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'months': {'type': 'number', 'description': 'Months of runway (null if expenses<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['principal', 'grossAnnualPct', 'feePct', 'years'], 'properties': {'years': {'type': 'number', 'description': 'Number of years.'}, 'feePct': {'type': 'number', 'description': 'Annual fee in percent.'}, 'principal': {'type': 'number', 'description': 'Starting amount.'}, 'grossAnnualPct': {'type': 'number', 'description': 'Gross annual return in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'net': {'type': 'number', 'description': 'Net of fees.'}, 'gross': {'type': 'number', 'description': 'Gross balance.'}, 'lostToFees': {'type': 'number', 'description': 'Amount lost to fees.'}}}
입력 스키마
{'type': 'object', 'required': ['annualSpend'], 'properties': {'annualSpend': {'type': 'number', 'description': 'Yearly spending the nest egg must cover.'}, 'annualRatePct': {'type': 'number', 'description': 'Optional. Annual portfolio growth in percent (default 0).'}, 'currentNestEgg': {'type': 'number', 'description': 'Optional. Amount already saved (default 0).'}, 'withdrawalRatePct': {'type': 'number', 'description': 'Safe withdrawal rate in percent (default 4 = the 4% rule).'}, 'annualContribution': {'type': 'number', 'description': 'Optional. Amount saved per year (default 0).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'gap': {'type': 'number', 'description': 'Gap from today.'}, 'target': {'type': 'number', 'description': 'Target nest egg.'}, 'yearsToFI': {'type': 'number', 'description': 'Years to FI (null if unreachable).'}}}
입력 스키마
{'type': 'object', 'required': ['principal', 'annualRatePct', 'years'], 'properties': {'years': {'type': 'number', 'description': 'Number of years.'}, 'principal': {'type': 'number', 'description': 'Starting amount.'}, 'annualRatePct': {'type': 'number', 'description': 'Annual growth rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'value': {'type': 'number', 'description': 'Result value.'}}}
입력 스키마
{'type': 'object', 'required': ['amount', 'rate'], 'properties': {'rate': {'type': 'number', 'description': 'Rate: target units per source unit.'}, 'amount': {'type': 'number', 'description': 'Amount to convert.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'value': {'type': 'number', 'description': 'Result value.'}}}
입력 스키마
{'type': 'object', 'required': ['price', 'grossAnnualRent'], 'properties': {'price': {'type': 'number', 'description': 'Purchase price.'}, 'grossAnnualRent': {'type': 'number', 'description': 'Gross annual rent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'grm': {'type': 'number', 'description': 'Gross rent multiplier (null if rent<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['income', 'endValue', 'beginValue'], 'properties': {'income': {'type': 'number', 'description': 'Income received over the period.'}, 'endValue': {'type': 'number', 'description': 'Ending value.'}, 'beginValue': {'type': 'number', 'description': 'Starting value.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'hprPct': {'type': 'number', 'description': 'Holding-period return, percent (null if begin=0).'}}}
입력 스키마
{'type': 'object', 'required': ['hourlyRate'], 'properties': {'hourlyRate': {'type': 'number', 'description': 'Hourly rate.'}, 'hoursPerWeek': {'type': 'number', 'description': 'Hours per week (default 40).'}, 'weeksPerYear': {'type': 'number', 'description': 'Weeks per year (default 52).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'annual': {'type': 'number', 'description': 'Annual salary.'}, 'monthly': {'type': 'number', 'description': 'Monthly equivalent.'}}}
입력 스키마
{'type': 'object', 'required': ['amount', 'inflationRatePct', 'years'], 'properties': {'years': {'type': 'number', 'description': 'Number of years.'}, 'amount': {'type': 'number', 'description': 'Amount to adjust.'}, 'toNominal': {'type': 'boolean', 'description': 'false (default) deflates nominal to real; true inflates real to nominal.'}, 'inflationRatePct': {'type': 'number', 'description': 'Annual inflation rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'value': {'type': 'number', 'description': 'Result value.'}}}
입력 스키마
{'type': 'object', 'required': ['amount', 'ratePct'], 'properties': {'amount': {'type': 'number', 'description': 'Outstanding balance.'}, 'ratePct': {'type': 'number', 'description': 'Annual rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'payment': {'type': 'number', 'description': 'Monthly interest payment.'}}}
입력 스키마
{'type': 'object', 'required': ['spot', 'strike', 'premium'], 'properties': {'spot': {'type': 'number', 'description': 'Underlying price.'}, 'type': {'enum': ['call', 'put'], 'type': 'string', 'description': 'Option type (default call).'}, 'strike': {'type': 'number', 'description': 'Strike price.'}, 'premium': {'type': 'number', 'description': 'Option premium.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'intrinsic': {'type': 'number', 'description': 'Intrinsic value.'}, 'timeValue': {'type': 'number', 'description': 'Time value.'}}}
입력 스키마
{'type': 'object', 'required': ['cashflows'], 'properties': {'cashflows': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Cashflows by period, starting at period 0. Outflows are negative.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'irrPct': {'type': 'number', 'description': 'Internal rate of return, percent (null if none).'}}}
입력 스키마
{'type': 'object', 'required': ['amount', 'ratePct', 'termMonths'], 'properties': {'fees': {'type': 'number', 'description': 'Optional. Upfront fees / points in currency (default 0).'}, 'amount': {'type': 'number', 'description': 'Loan amount.'}, 'ratePct': {'type': 'number', 'description': 'Note (nominal) annual rate in percent.'}, 'termMonths': {'type': 'number', 'description': 'Term in months.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'aprPct': {'type': 'number', 'description': 'Effective APR, percent (null if degenerate).'}}}
입력 스키마
{'type': 'object', 'required': ['amount', 'rate', 'mode', 'startDate', 'extraMonthly'], 'properties': {'mode': {'enum': ['term', 'payment'], 'type': 'string', 'description': 'Fix the term (compute the payment) or fix the payment (compute the term).'}, 'rate': {'type': 'number', 'description': 'Annual interest rate in percent (6 = 6%).'}, 'extra': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': 'string', 'description': 'ISO date.'}, 'amount': {'type': 'number', 'description': 'Extra principal.'}}}, 'description': 'Optional dated extra principal payments.'}, 'amount': {'type': 'number', 'description': 'Loan principal.'}, 'payment': {'type': 'number', 'description': "Monthly payment, used when mode is 'payment'."}, 'startDate': {'type': 'string', 'description': 'First payment month as an ISO date (YYYY-MM-DD).'}, 'termYears': {'type': 'number', 'description': "Term in years, used when mode is 'term'."}, 'fixedUntil': {'type': 'string', 'description': 'Optional. Rate is certain until this ISO date; beyond it the schedule is an estimate.'}, 'extraMonthly': {'type': 'number', 'description': 'Extra principal paid each month.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'baseline': {'type': 'object', 'description': 'Baseline { months, totalInterest, payoffDate }.'}, 'accelerated': {'type': 'object', 'description': 'Accelerated { months, totalInterest, payoffDate }.'}, 'monthsSaved': {'type': 'number', 'description': 'Months saved.'}, 'interestSaved': {'type': 'number', 'description': 'Interest saved.'}}}
입력 스키마
{'type': 'object', 'required': ['loanAmount', 'propertyValue'], 'properties': {'loanAmount': {'type': 'number', 'description': 'Loan amount.'}, 'propertyValue': {'type': 'number', 'description': 'Property value.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'ltvPct': {'type': 'number', 'description': 'Loan-to-value, percent (null if value<=0).'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'cost': {'type': 'number', 'description': 'Unit cost.'}, 'price': {'type': 'number', 'description': 'Selling price.'}, 'marginPct': {'type': 'number', 'description': 'Profit as a percent of price.'}, 'markupPct': {'type': 'number', 'description': 'Profit as a percent of cost.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'cost': {'type': 'number', 'description': 'Cost.'}, 'price': {'type': 'number', 'description': 'Price.'}, 'profit': {'type': 'number', 'description': 'Profit.'}, 'marginPct': {'type': 'number', 'description': 'Margin, percent.'}, 'markupPct': {'type': 'number', 'description': 'Markup, percent.'}}}
입력 스키마
{'type': 'object', 'required': ['series'], 'properties': {'series': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Sequence of values (e.g. portfolio levels).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'maxDrawdownPct': {'type': 'number', 'description': 'Largest peak-to-trough decline, percent.'}}}
입력 스키마
{'type': 'object', 'required': ['cashflows', 'financeRatePct', 'reinvestRatePct'], 'properties': {'cashflows': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Cashflows by period (index 0 today; outflows negative).'}, 'financeRatePct': {'type': 'number', 'description': 'Finance rate in percent.'}, 'reinvestRatePct': {'type': 'number', 'description': 'Reinvestment rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'mirrPct': {'type': 'number', 'description': 'Modified IRR, percent (null if degenerate).'}}}
입력 스키마
{'type': 'object', 'required': ['annualIncome', 'dtiPct', 'rate', 'termYears'], 'properties': {'rate': {'type': 'number', 'description': 'Annual interest rate in percent.'}, 'dtiPct': {'type': 'number', 'description': 'Max share of gross monthly income for the payment, in percent (e.g. 36).'}, 'termYears': {'type': 'number', 'description': 'Loan term in years.'}, 'downPayment': {'type': 'number', 'description': 'Optional. Cash down payment, added to the loan for the home price (default 0).'}, 'annualIncome': {'type': 'number', 'description': 'Gross annual income.'}, 'monthlyDebts': {'type': 'number', 'description': 'Optional. Existing monthly debt payments (default 0).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'maxLoan': {'type': 'number', 'description': 'Max loan.'}, 'maxHomePrice': {'type': 'number', 'description': 'Max home price.'}, 'maxMonthlyPayment': {'type': 'number', 'description': 'Max payment.'}}}
입력 스키마
{'type': 'object', 'required': ['assets', 'liabilities'], 'properties': {'assets': {'type': 'number', 'description': 'Total assets.'}, 'liabilities': {'type': 'number', 'description': 'Total liabilities.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'netWorth': {'type': 'number', 'description': 'Assets minus liabilities.'}}}
입력 스키마
{'type': 'object', 'required': ['grossRentalIncome', 'vacancyPct', 'operatingExpenses'], 'properties': {'vacancyPct': {'type': 'number', 'description': 'Vacancy rate in percent.'}, 'grossRentalIncome': {'type': 'number', 'description': 'Gross annual rental income.'}, 'operatingExpenses': {'type': 'number', 'description': 'Annual operating expenses.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'noi': {'type': 'number', 'description': 'Net operating income.'}}}
입력 스키마
{'type': 'object', 'required': ['cashflows', 'discountRatePct'], 'properties': {'cashflows': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Cashflows by period, starting at period 0. Outflows are negative.'}, 'discountRatePct': {'type': 'number', 'description': 'Discount rate per period in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'npv': {'type': 'number', 'description': 'Net present value.'}}}
입력 스키마
{'type': 'object', 'required': ['strike', 'premium'], 'properties': {'type': {'enum': ['call', 'put'], 'type': 'string', 'description': 'Option type (default call).'}, 'strike': {'type': 'number', 'description': 'Strike price.'}, 'premium': {'type': 'number', 'description': 'Option premium paid.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'breakeven': {'type': 'number', 'description': 'Break-even underlying price.'}}}
입력 스키마
{'type': 'object', 'required': ['spot', 'strike', 'years', 'volatilityPct', 'riskFreePct'], 'properties': {'spot': {'type': 'number', 'description': 'Current underlying price.'}, 'type': {'enum': ['call', 'put'], 'type': 'string', 'description': 'Option type (default call).'}, 'years': {'type': 'number', 'description': 'Time to expiry in years.'}, 'strike': {'type': 'number', 'description': 'Strike price.'}, 'riskFreePct': {'type': 'number', 'description': 'Risk-free rate in percent.'}, 'volatilityPct': {'type': 'number', 'description': 'Annualized volatility in percent.'}, 'dividendYieldPct': {'type': 'number', 'description': 'Continuous dividend yield in percent (default 0).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'rho': {'type': 'number', 'description': 'Rho per 1% rate.'}, 'vega': {'type': 'number', 'description': 'Vega per 1% vol.'}, 'delta': {'type': 'number', 'description': 'Delta.'}, 'gamma': {'type': 'number', 'description': 'Gamma.'}, 'theta': {'type': 'number', 'description': 'Theta per day.'}}}
입력 스키마
{'type': 'object', 'required': ['initialCost', 'cashflows'], 'properties': {'cashflows': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Inflow each period.'}, 'initialCost': {'type': 'number', 'description': 'Upfront cost.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'years': {'type': 'number', 'description': 'Payback in periods (null if never).'}}}
입력 스키마
{'type': 'object', 'required': ['from', 'to'], 'properties': {'to': {'type': 'number', 'description': 'Ending value.'}, 'from': {'type': 'number', 'description': 'Starting value.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'changePct': {'type': 'number', 'description': 'Percentage change (null if from=0).'}}}
입력 스키마
{'type': 'object', 'required': ['payment', 'ratePct'], 'properties': {'payment': {'type': 'number', 'description': 'Periodic payment.'}, 'ratePct': {'type': 'number', 'description': 'Discount rate in percent.'}, 'growthPct': {'type': 'number', 'description': 'Optional. Payment growth rate in percent (default 0).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'pv': {'type': 'number', 'description': 'Present value (null if growth>=rate).'}}}
입력 스키마
{'type': 'object', 'required': ['loanAmount', 'ratePct', 'termMonths', 'pointsPct', 'reducedRatePct'], 'properties': {'ratePct': {'type': 'number', 'description': 'Base annual rate in percent.'}, 'pointsPct': {'type': 'number', 'description': 'Points paid, percent of the loan.'}, 'loanAmount': {'type': 'number', 'description': 'Loan amount.'}, 'termMonths': {'type': 'number', 'description': 'Term in months.'}, 'reducedRatePct': {'type': 'number', 'description': 'Reduced annual rate after buying points.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'cost': {'type': 'number', 'description': 'Upfront cost of points.'}, 'monthlySaving': {'type': 'number', 'description': 'Monthly payment saving.'}, 'breakevenMonths': {'type': 'number', 'description': 'Whole months to recoup (null if no saving).'}}}
입력 스키마
{'type': 'object', 'required': ['balance', 'annualWithdrawal', 'annualRatePct'], 'properties': {'balance': {'type': 'number', 'description': 'Starting balance.'}, 'annualRatePct': {'type': 'number', 'description': 'Annual portfolio growth in percent.'}, 'annualWithdrawal': {'type': 'number', 'description': 'Amount withdrawn in the first year.'}, 'withdrawalGrowthPct': {'type': 'number', 'description': 'Optional. Yearly step-up of the withdrawal in percent (default 0).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'years': {'type': 'number', 'description': 'Depletion year (null if sustainable).'}, 'sustainable': {'type': 'boolean', 'description': 'True if it outlasts 200 years.'}}}
입력 스키마
{'type': 'object', 'required': ['futureAmount', 'annualRatePct', 'years'], 'properties': {'years': {'type': 'number', 'description': 'Number of years until the amount is received.'}, 'futureAmount': {'type': 'number', 'description': 'Amount received in the future.'}, 'annualRatePct': {'type': 'number', 'description': 'Annual discount rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'pv': {'type': 'number', 'description': 'Present value.'}}}
입력 스키마
{'type': 'object', 'required': ['spot', 'strike', 'years', 'riskFreePct'], 'properties': {'put': {'type': 'number', 'description': 'Put price (provide call or put).'}, 'call': {'type': 'number', 'description': 'Call price (provide call or put).'}, 'spot': {'type': 'number', 'description': 'Underlying price.'}, 'years': {'type': 'number', 'description': 'Time to expiry in years.'}, 'strike': {'type': 'number', 'description': 'Strike price.'}, 'riskFreePct': {'type': 'number', 'description': 'Risk-free rate in percent.'}, 'dividendYieldPct': {'type': 'number', 'description': 'Continuous dividend yield in percent (default 0).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'put': {'type': 'number', 'description': 'Put price.'}, 'call': {'type': 'number', 'description': 'Call price.'}}}
입력 스키마
{'type': 'object', 'required': ['currentAssets', 'inventory', 'currentLiabilities'], 'properties': {'inventory': {'type': 'number', 'description': 'Inventory.'}, 'currentAssets': {'type': 'number', 'description': 'Current assets.'}, 'currentLiabilities': {'type': 'number', 'description': 'Current liabilities.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'quickRatio': {'type': 'number', 'description': 'Quick ratio (null if liabilities<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['nominalRatePct', 'inflationRatePct'], 'properties': {'nominalRatePct': {'type': 'number', 'description': 'Nominal annual rate in percent.'}, 'inflationRatePct': {'type': 'number', 'description': 'Annual inflation in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'realPct': {'type': 'number', 'description': 'Real return, percent.'}}}
입력 스키마
{'type': 'object', 'required': ['closingCosts', 'currentPayment', 'newPayment'], 'properties': {'newPayment': {'type': 'number', 'description': 'New monthly payment after refinancing.'}, 'closingCosts': {'type': 'number', 'description': 'Upfront cost to refinance.'}, 'currentPayment': {'type': 'number', 'description': 'Current monthly payment.'}, 'remainingMonths': {'type': 'number', 'description': 'Optional. Months left on the loan, for the lifetime saving.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'monthlySaving': {'type': 'number', 'description': 'Monthly saving.'}, 'lifetimeSaving': {'type': 'number', 'description': 'Net lifetime saving (null if no term).'}, 'breakevenMonths': {'type': 'number', 'description': 'Whole months to recoup (null if no saving).'}}}
입력 스키마
{'type': 'object', 'required': ['targetValue', 'annualRatePct', 'months'], 'properties': {'months': {'type': 'number', 'description': 'Number of months.'}, 'targetValue': {'type': 'number', 'description': 'Future value goal.'}, 'presentValue': {'type': 'number', 'description': 'Optional. Starting balance (default 0).'}, 'annualRatePct': {'type': 'number', 'description': 'Annual growth rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'monthly': {'type': 'number', 'description': 'Monthly contribution needed (null if horizon<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['begin', 'end', 'years'], 'properties': {'end': {'type': 'number', 'description': 'Target ending value.'}, 'begin': {'type': 'number', 'description': 'Starting value.'}, 'years': {'type': 'number', 'description': 'Number of years.'}, 'annualContribution': {'type': 'number', 'description': 'Optional. Amount added each year (default 0).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'ratePct': {'type': 'number', 'description': 'Annual rate, percent (null if unreachable).'}}}
입력 스키마
{'type': 'object', 'required': ['returns'], 'properties': {'returns': {'type': 'array', 'items': {'type': 'number'}, 'description': 'The return series (e.g. yearly percents).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'mean': {'type': 'number', 'description': 'Mean return.'}, 'count': {'type': 'number', 'description': 'Number of returns.'}, 'stdev': {'type': 'number', 'description': 'Sample stdev / volatility (null if <2).'}, 'variance': {'type': 'number', 'description': 'Sample variance (null if <2).'}}}
입력 스키마
{'type': 'object', 'required': ['netIncome', 'totalAssets'], 'properties': {'netIncome': {'type': 'number', 'description': 'Net income.'}, 'totalAssets': {'type': 'number', 'description': 'Total assets.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'roaPct': {'type': 'number', 'description': 'Return on assets, percent (null if assets<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['netIncome', 'equity'], 'properties': {'equity': {'type': 'number', 'description': "Shareholders' equity."}, 'netIncome': {'type': 'number', 'description': 'Net income.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'roePct': {'type': 'number', 'description': 'Return on equity, percent (null if equity<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['initial', 'finalValue'], 'properties': {'years': {'type': 'number', 'description': 'Optional. Holding period in years, for the annualized rate.'}, 'initial': {'type': 'number', 'description': 'Amount invested.'}, 'finalValue': {'type': 'number', 'description': 'Ending value.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'roiPct': {'type': 'number', 'description': 'Total return, percent.'}, 'annualizedPct': {'type': 'number', 'description': 'Annualized return, percent (null if no years).'}}}
입력 스키마
{'type': 'object', 'required': ['ratePct'], 'properties': {'ratePct': {'type': 'number', 'description': 'Growth rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'years72': {'type': 'number', 'description': '72/rate estimate.'}, 'exactYears': {'type': 'number', 'description': 'Exact doubling time.'}}}
입력 스키마
{'type': 'object', 'required': ['annualSalary'], 'properties': {'annualSalary': {'type': 'number', 'description': 'Annual salary.'}, 'hoursPerWeek': {'type': 'number', 'description': 'Hours per week (default 40).'}, 'weeksPerYear': {'type': 'number', 'description': 'Weeks per year (default 52).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'hourly': {'type': 'number', 'description': 'Hourly rate (null if hours<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['income', 'savings'], 'properties': {'income': {'type': 'number', 'description': 'Income.'}, 'savings': {'type': 'number', 'description': 'Amount saved.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'value': {'type': 'number', 'description': 'Result value.'}}}
입력 스키마
{'type': 'object', 'required': ['returns'], 'properties': {'returns': {'type': 'array', 'items': {'type': 'number'}, 'description': 'The return series (percents).'}, 'riskFreePct': {'type': 'number', 'description': 'Risk-free rate in the same unit (default 0).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'sharpe': {'type': 'number', 'description': 'Sharpe ratio (null if no volatility).'}, 'meanPct': {'type': 'number', 'description': 'Mean return.'}, 'stdevPct': {'type': 'number', 'description': 'Volatility.'}}}
입력 스키마
{'type': 'object', 'required': ['value', 'salvage', 'usefulYears', 'yearsElapsed'], 'properties': {'value': {'type': 'number', 'description': 'Starting value.'}, 'salvage': {'type': 'number', 'description': 'Salvage value.'}, 'usefulYears': {'type': 'number', 'description': 'Useful life in years.'}, 'yearsElapsed': {'type': 'number', 'description': 'Years elapsed.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'value': {'type': 'number', 'description': 'Result value.'}}}
입력 스키마
{'type': 'object', 'required': ['price', 'discountsPct'], 'properties': {'price': {'type': 'number', 'description': 'Original price.'}, 'discountsPct': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Discounts in percent, applied in order.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'finalPrice': {'type': 'number', 'description': 'Final price.'}, 'effectivePct': {'type': 'number', 'description': 'Effective single discount, percent (null if price=0).'}}}
입력 스키마
{'type': 'object', 'required': ['value', 'salvage', 'usefulYears', 'year'], 'properties': {'year': {'type': 'number', 'description': 'Year (1-based).'}, 'value': {'type': 'number', 'description': 'Initial cost.'}, 'salvage': {'type': 'number', 'description': 'Salvage value.'}, 'usefulYears': {'type': 'number', 'description': 'Useful life in years.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'bookValue': {'type': 'number', 'description': 'Book value at year end.'}, 'depreciation': {'type': 'number', 'description': 'Depreciation this year.'}}}
입력 스키마
{'type': 'object', 'required': ['taxFreeYieldPct', 'taxRatePct'], 'properties': {'taxRatePct': {'type': 'number', 'description': 'Marginal tax rate in percent.'}, 'taxFreeYieldPct': {'type': 'number', 'description': 'Tax-free yield in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'taxEquivalentPct': {'type': 'number', 'description': 'Tax-equivalent yield, percent (null if tax>=100%).'}}}
입력 스키마
{'type': 'object', 'required': ['income', 'brackets'], 'properties': {'income': {'type': 'number', 'description': 'Taxable income.'}, 'brackets': {'type': 'array', 'items': {'type': 'object', 'required': ['ratePct'], 'properties': {'upTo': {'type': 'number', 'description': 'Upper bound of this band (omit on the top band).'}, 'ratePct': {'type': 'number', 'description': 'Marginal rate for this band in percent.'}}}, 'description': 'Ordered tax bands. The final band may omit upTo to run to infinity.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'tax': {'type': 'number', 'description': 'Total tax.'}, 'marginalRatePct': {'type': 'number', 'description': 'Marginal rate, percent.'}, 'effectiveRatePct': {'type': 'number', 'description': 'Effective rate, percent.'}}}
입력 스키마
{'type': 'object', 'required': ['billAmount', 'tipPct'], 'properties': {'people': {'type': 'number', 'description': 'Number of people (default 1).'}, 'tipPct': {'type': 'number', 'description': 'Tip in percent.'}, 'billAmount': {'type': 'number', 'description': 'Bill amount.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'tip': {'type': 'number', 'description': 'Tip amount.'}, 'total': {'type': 'number', 'description': 'Total with tip.'}, 'perPerson': {'type': 'number', 'description': 'Per-person share.'}}}
입력 스키마
{'type': 'object', 'required': ['price', 'quantity'], 'properties': {'price': {'type': 'number', 'description': 'Price.'}, 'quantity': {'type': 'number', 'description': 'Quantity / size.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'unitPrice': {'type': 'number', 'description': 'Price per unit (null if quantity=0).'}}}
입력 스키마
{'type': 'object', 'required': ['value', 'salvage', 'totalUnits', 'unitsThisPeriod'], 'properties': {'value': {'type': 'number', 'description': 'Initial cost.'}, 'salvage': {'type': 'number', 'description': 'Salvage value.'}, 'totalUnits': {'type': 'number', 'description': 'Total expected units over the life.'}, 'unitsThisPeriod': {'type': 'number', 'description': 'Units produced this period.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'depreciation': {'type': 'number', 'description': 'Depreciation this period (null if totalUnits<=0).'}}}
입력 스키마
{'type': 'object', 'required': ['amount', 'ratePct'], 'properties': {'amount': {'type': 'number', 'description': 'The price.'}, 'ratePct': {'type': 'number', 'description': 'VAT rate in percent (e.g. 19 or 7).'}, 'inclusive': {'type': 'boolean', 'description': 'false (default): amount is net, add the tax. true: amount is gross, extract the tax.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'net': {'type': 'number', 'description': 'Net price.'}, 'tax': {'type': 'number', 'description': 'Tax amount.'}, 'gross': {'type': 'number', 'description': 'Gross price.'}}}
입력 스키마
{'type': 'object', 'required': ['equity', 'debt', 'costEquityPct', 'costDebtPct', 'taxRatePct'], 'properties': {'debt': {'type': 'number', 'description': 'Market value of debt.'}, 'equity': {'type': 'number', 'description': 'Market value of equity.'}, 'taxRatePct': {'type': 'number', 'description': 'Tax rate in percent.'}, 'costDebtPct': {'type': 'number', 'description': 'Cost of debt in percent.'}, 'costEquityPct': {'type': 'number', 'description': 'Cost of equity in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'waccPct': {'type': 'number', 'description': 'WACC, percent (null if no capital).'}}}
입력 스키마
{'type': 'object', 'required': ['cashflows'], 'properties': {'cashflows': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'amount'], 'properties': {'date': {'type': 'string', 'description': 'ISO date.'}, 'amount': {'type': 'number', 'description': 'Cashflow amount (outflows negative).'}}}, 'description': 'Dated cashflows; the first date is the valuation date.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'xirrPct': {'type': 'number', 'description': 'Date-aware IRR, percent (null if none).'}}}
입력 스키마
{'type': 'object', 'required': ['cashflows', 'annualRatePct'], 'properties': {'cashflows': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'amount'], 'properties': {'date': {'type': 'string', 'description': 'ISO date.'}, 'amount': {'type': 'number', 'description': 'Cashflow amount (outflows negative).'}}}, 'description': 'Dated cashflows; the first date is the valuation date.'}, 'annualRatePct': {'type': 'number', 'description': 'Annual discount rate in percent.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'npv': {'type': 'number', 'description': 'Date-aware net present value.'}}}
입력 스키마
{'type': 'object', 'required': ['price', 'faceValue', 'couponRatePct', 'years'], 'properties': {'price': {'type': 'number', 'description': 'Current bond price.'}, 'years': {'type': 'number', 'description': 'Years to maturity.'}, 'faceValue': {'type': 'number', 'description': 'Face (par) value repaid at maturity.'}, 'couponRatePct': {'type': 'number', 'description': 'Annual coupon rate in percent of face.'}, 'periodsPerYear': {'type': 'number', 'description': 'Coupon periods per year (default 2 = semiannual).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'yieldPct': {'type': 'number', 'description': 'Nominal annual yield, percent (null if none).'}}}
입력 스키마
{'type': 'object', 'required': ['faceValue', 'years', 'yieldPct'], 'properties': {'years': {'type': 'number', 'description': 'Years to maturity.'}, 'yieldPct': {'type': 'number', 'description': 'Annual yield in percent.'}, 'faceValue': {'type': 'number', 'description': 'Face value.'}, 'compoundingPerYear': {'type': 'number', 'description': 'Compounding periods per year (default 1).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'properties': {'price': {'type': 'number', 'description': 'Zero-coupon price.'}}}
최근 도구 변경
유사한 MCP 서버
MaCalculatriceEnLigne
Provides calculators for French and Belgian taxes, salaries, pensions, VAT, loans, health metrics, education scores, fitness, and…
Lovie Company Formation
Supports company formation and business administration with bank accounts, cards, invoicing, bookkeeping, accounting periods, and…
AlpineDataWorks Intelligence Server
Provides economic, market, supply-chain, real-estate, energy, consumer, labor, and other scored intelligence indices with histori…
The Stall
Provides pay-per-call tools for YouTube keyword research and research on stocks, crypto, DeFi, options, and macroeconomic data.
Stratalize Finance
Provides financial, macroeconomic, banking, credit, commodities, M&A, ESG, labor, and regulatory benchmarks for analysis and plan…
Crank Protocol
Provides non-custodial Solana and EVM tools for swaps, derivatives, lending, staking, tokenized equities, bridging, and strategy …
Red by Big Red Cloud
Connects to Big Red Cloud accounting for customers, suppliers, products, invoices, purchases, payments, receipts, journals, quote…
x402-services
Provides on-chain, trading, and AI tools for Robinhood Chain.