Debt Payoff vs. Invest
payoff_vs_investCalculation, not advice. Verify with a professional before acting. Should you pay extra on debt or invest the difference? Compares the guaranteed return of debt payoff against expected investment returns over a time horizon. Accounts for post-payoff investing, tax implications, and finds the break-even investment return rate. Works for credit cards, auto loans, student loans, personal loans, and mortgages. The response echoes debt_type (canonical lowercase enum the projection was computed for) and debt_type_label (display-ready string, e.g. 'student loan') at the top level. HEAVY tool: use output='summary' (default) for the headline comparison or output='inline' for the full month-by-month schedule. output='capture' writes the full payload to a file on this server's local disk for the chart-render pipeline; available on the local stdio transport only, and rejected with a structured error on the hosted HTTP transport. At extreme inputs (very long horizon, very high rate, or very large amounts) the response may instead be { meta, not_representable: { code, explanation } } when no projection can be computed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| toolArguments | Yes | JSON object with these parameters: debt_type: 'credit_card' | 'auto' | 'student' | 'personal' | 'mortgage' (REQUIRED) debt_balance: decimal > 0 (REQUIRED) debt_apr_pct: decimal 0-100 as percentage, e.g. 6.5 not 0.065 (REQUIRED) extra_monthly: decimal > 0. The amount in question (REQUIRED) minimum_payment: decimal >= 0 (optional; auto-calculated for loans when 0) term_months_remaining: int > 0. Required for non-credit-card debt types investment_return_pct: decimal 0-30 as percentage, an EFFECTIVE ANNUAL rate; the monthly compounding step is (1+pct/100)^(1/12)-1 (optional; defaults to the cited long-run S&P 500 nominal return, about 10%) investment_volatility_pct: decimal (optional; adds volatility risk note) tax_bracket_pct: decimal 0-100 as percentage (optional; enables after-tax comparison) investment_tax_advantaged: bool (optional, default false; set true for 401k/IRA) time_horizon_years: int > 0 (optional; default max(payoff years, 10)) full_schedule: bool (optional, default false; returns compact schedule by default) chart_title: string (optional) override for the chart title. Must not contain em-dashes or en-dashes. Max 120 characters. ENVELOPE: output: 'summary' (default) | 'inline' | 'capture' summary: headline comparison scalars + milestones + citations; monthly_schedule is stripped. inline: full payload including the month-by-month monthly_schedule[] (for chart rendering). capture: full payload written to ~/.senaro/captures/; capture_ref URI returned. Available on the local stdio transport only; the hosted HTTP transport rejects 'capture' with a structured error naming 'summary' and 'inline' as the valid alternatives. |