io. github. VladimirWrites/ nestegg-calculators
by VladimirWrites · remote · no sign-in to list tools · v1.4.0 · published by GitHub user VladimirWrites
90+ pure finance calculators: loans, investing, bonds, options, tax. Stateless, stores nothing.
99 tools: 3 do something that can't be undone, 93 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone3Claude Code: ask: see these tools
- Changes things93Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
9 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http nestegg-calculators https://nestegg.money/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnfx-convert
The server marks "fx-convert" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "fx-convert" says "convert": a word for a change.
- Warninflation-adjust
The server marks "inflation-adjust" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warneffective-rate
The server marks "effective-rate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnmargin-markup
The server marks "margin-markup" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnfee-drag
The server marks "fee-drag" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "fee-drag" says "drag": a word for a change.
- Warnput-call-parity
The server marks "put-call-parity" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "put-call-parity" says "put": a word for a change.
Show 3 more findingsShow fewer
- Warnannuity-payment
The server marks "annuity-payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "annuity-payment" says "payment": a word that usually means money moves, which cannot be taken back.
The server marks "interest-only-payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "interest-only-payment" says "payment": a word that usually means money moves, which cannot be taken back.
The server marks "percentage-change" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
99 tools
Can't be undone 3Claude Code: ask
annuity-paymentThe level payment that amortizes a present value over n periods (the loan-payment formula).1 finding
Why it is in this group
- The name "annuity-payment" says "payment": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "annuity-payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "annuity-payment" says "payment": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it The level payment that amortizes a present value over n periods (the loan-payment formula). rate is per period.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
interest-only-paymentInterest-only monthly payment on a balance.1 finding
Why it is in this group
- The name "interest-only-payment" says "payment": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "interest-only-payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "interest-only-payment" says "payment": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Interest-only monthly payment on a balance.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
percentage-changePercentage change from one value to another.1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "percentage-change" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it Percentage change from one value to another. Null when the starting value is zero.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
Changes things 93Claude Code: ask
accrued-interestAccrued interest since the last coupon: the annual coupon pro-rated by days elapsed over the day-count basis.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Accrued interest since the last coupon: the annual coupon pro-rated by days elapsed over the day-count basis.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
after-tax-yieldAfter-tax yield: a yield reduced by the tax rate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it After-tax yield: a yield reduced by the tax rate. Percents in and out.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
amortizationMonthly loan amortization schedule and summary.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Monthly loan amortization schedule and summary. Supports dated extra principal payments and a rate-fixed period. detail controls output size: 'summary' (default) returns totals plus a per-year breakdown; 'monthly' returns the full schedule (paginate with offset/limit). Returns numbers and schedules; no advice.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
annuity-fvFuture value of an ordinary annuity.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Future value of an ordinary annuity. rate is the per-period rate in percent.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
annuity-pvPresent value of an ordinary annuity (level payment at each period end).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Present value of an ordinary annuity (level payment at each period end). rate is the per-period rate in percent.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
balloon-loanBalloon loan: payment based on a long amortization, with the balloon being the balance still due after the shorter balloon term.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Balloon loan: payment based on a long amortization, with the balloon being the balance still due after the shorter balloon term.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
barista-fireBarista FIRE: the nest egg needed when part-time income covers part of the spending, so the portfolio only funds the remainder at the safe withdrawal rate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Barista FIRE: the nest egg needed when part-time income covers part of the spending, so the portfolio only funds the remainder at the safe withdrawal rate.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
biweekly-payoffBiweekly mortgage acceleration: paying half the monthly payment every two weeks.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Biweekly mortgage acceleration: paying half the monthly payment every two weeks. Returns the biweekly payment and the months and interest saved.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
black-scholesBlack-Scholes price of a European call or put option, plus d1/d2.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Black-Scholes price of a European call or put option, plus d1/d2. Volatility and rates in percent; optional continuous dividend yield.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
bond-durationMacaulay duration (PV-weighted average time of cashflows, in years) and modified duration (price sensitivity to yield).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Macaulay duration (PV-weighted average time of cashflows, in years) and modified duration (price sensitivity to yield).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
bond-pricePrice of a coupon bond given a yield: present value of the coupons plus the face at maturity.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Price of a coupon bond given a yield: present value of the coupons plus the face at maturity.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
break-even-unitsBreak-even volume: fixed costs divided by the per-unit contribution (price - variable cost), plus the revenue at that volume.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Break-even volume: fixed costs divided by the per-unit contribution (price - variable cost), plus the revenue at that volume.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
budget-50-30-20The 50/30/20 budget split of monthly income into needs, wants, and savings.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The 50/30/20 budget split of monthly income into needs, wants, and savings.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
cagrCompound annual growth rate between two values over a number of years.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Compound annual growth rate between two values over a number of years. Returns a decimal (0.07 means 7%).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
cap-rateCapitalization rate: net operating income as a percent of property value.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Capitalization rate: net operating income as a percent of property value.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
cash-on-cashCash-on-cash return: annual pre-tax cash flow as a percent of the cash invested.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Cash-on-cash return: annual pre-tax cash flow as a percent of the cash invested.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
coast-fireCoast FIRE: whether the current nest egg, left to grow untouched to retirement, already reaches the FIRE target.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Coast FIRE: whether the current nest egg, left to grow untouched to retirement, already reaches the FIRE target. Returns the target, the projected balance, whether it coasts, and any shortfall.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
compound-interestCompound growth at any frequency, with an optional contribution each period (paid at period end).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Compound growth at any frequency, with an optional contribution each period (paid at period end). Generalizes future-value (periodsPerYear 1) and contributions (periodsPerYear 12).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
contribution-marginContribution margin per unit and as a percent of price.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Contribution margin per unit and as a percent of price.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
contributionsFuture value of a fixed monthly contribution, optionally stepping up each year.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Future value of a fixed monthly contribution, optionally stepping up each year.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
convexityBond convexity (years^2): the curvature of price with respect to yield, used alongside duration.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Bond convexity (years^2): the curvature of price with respect to yield, used alongside duration.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
credit-card-payoffMonths to clear a credit-card balance at a fixed monthly payment, plus interest paid.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Months to clear a credit-card balance at a fixed monthly payment, plus interest paid. Null when the payment can't cover the first month's interest.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
current-ratioCurrent ratio: current assets over current liabilities.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Current ratio: current assets over current liabilities.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
current-yieldCurrent yield: the annual coupon as a percent of the bond's current price.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Current yield: the annual coupon as a percent of the bond's current price.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
de-abgeltungsteuerGerman flat tax on capital income (Abgeltungsteuer, §32d EStG) for tax years 2023-2026 with the year's Sparerpauschbetrag built in.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it German flat tax on capital income (Abgeltungsteuer, §32d EStG) for tax years 2023-2026 with the year's Sparerpauschbetrag built in. 25% above the allowance, Soli 5.5% on top (no Freigrenze for capital income), and with church tax the statutory reduced rate (e.g. 24.45% at 9%) plus the church tax itself.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
de-gross-to-netGerman net (Netto) salary from gross (Brutto).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it German net (Netto) salary from gross (Brutto). No tax tables are baked in: look up the current year's statutory figures and pass them in. Income tax (Lohnsteuer) and Soli are amounts; church tax is a percent of the income tax; the four employee social rates and the two contribution ceilings are inputs. Use consistent units (e.g. all annual).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
de-kindergeldGerman child benefit (Kindergeld) for 2023-2026: the year's flat monthly amount per child (uniform since 2023), as monthly and annual totals.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it German child benefit (Kindergeld) for 2023-2026: the year's flat monthly amount per child (uniform since 2023), as monthly and annual totals.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
de-midijobGerman Midijob / Uebergangsbereich (paragraph 20 Abs.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it German Midijob / Uebergangsbereich (paragraph 20 Abs. 2a SGB IV) for 2023-2026: classifies a monthly pay as Minijob / Midijob / regular against the year's thresholds and, inside the Midijob band, computes the reduced contribution bases (Faktor F from the year's rates) and the employee vs employer social-insurance split.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
de-net-salaryExact German net (Netto) salary from annual gross (Brutto) for tax years 2023-2026.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Exact German net (Netto) salary from annual gross (Brutto) for tax years 2023-2026. Income tax and Soli follow the official BMF Programmablaufplan for the year (to the euro; 2024 uses the retroactive December tariff), church tax comes from the PAP's Kirchensteuer base, and employee social insurance uses that year's ceilings and rates (KV Zusatzbeitrag defaults to the year's average). Earlier years are rejected - use de-gross-to-net with self-supplied figures instead.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
de-rentenpunkteGerman pension points (Entgeltpunkte, paragraph 63 SGB VI) for 2023-2026: points earned from an annual gross via the year's Durchschnittsentgelt (capped at the contribution ceiling…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it German pension points (Entgeltpunkte, paragraph 63 SGB VI) for 2023-2026: points earned from an annual gross via the year's Durchschnittsentgelt (capped at the contribution ceiling), the aktueller Rentenwert for both halves of the year, and optionally the gross monthly state pension for a total point count.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
debt-payoffMulti-debt payoff plan under a fixed monthly budget.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Multi-debt payoff plan under a fixed monthly budget. method 'avalanche' (highest rate first) minimizes interest; 'snowball' (smallest balance first) clears accounts soonest. Returns months, total interest, and payoff order; flags insolvent budgets.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
declining-balance-depreciationDeclining-balance depreciation: a fixed percent of the reducing book value, for a given year.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Declining-balance depreciation: a fixed percent of the reducing book value, for a given year. Returns that year's depreciation and the remaining book value.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
depreciateValue after compounding down (or up) at a yearly percentage rate over a number of years.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Value after compounding down (or up) at a yearly percentage rate over a number of years. This is the method the app uses for long-term assets.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
discountA single percentage discount: the amount off and the final price.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it A single percentage discount: the amount off and the final price.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
discounted-paybackDiscounted payback period: like payback-period but each cashflow is discounted at the per-period rate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Discounted payback period: like payback-period but each cashflow is discounted at the per-period rate.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
dollar-cost-averagingDollar-cost averaging: buying a fixed amount each period at the given prices.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Dollar-cost averaging: buying a fixed amount each period at the given prices. Returns units accumulated, total invested, average cost, and final value at the last price.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
double-declining-depreciationDouble-declining-balance depreciation: 2/usefulYears of the book value each year, not falling below salvage.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Double-declining-balance depreciation: 2/usefulYears of the book value each year, not falling below salvage.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
dscrDebt service coverage ratio: net operating income divided by annual debt service.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Debt service coverage ratio: net operating income divided by annual debt service.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
dtiDebt-to-income ratio, percent (monthly debt / gross monthly income).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Debt-to-income ratio, percent (monthly debt / gross monthly income).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
effective-rateConvert a nominal annual rate to the effective annual rate (APY) for a compounding frequency, or with toNominal recover the nominal rate from an APY.1 finding
Why it is in this group
- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "effective-rate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert a nominal annual rate to the effective annual rate (APY) for a compounding frequency, or with toNominal recover the nominal rate from an APY.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
emergency-fundMonths of runway: liquid savings divided by monthly expenses.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Months of runway: liquid savings divided by monthly expenses.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
fee-dragEffect of an annual fee: the compounded balance at the gross rate vs net of the fee, and the amount lost to fees.1 finding
Why it is in this group
- The name "fee-drag" says "drag": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "fee-drag" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "fee-drag" says "drag": a word for a change.
Description, as the server wrote it Effect of an annual fee: the compounded balance at the gross rate vs net of the fee, and the amount lost to fees.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
fire-numberFIRE target nest egg from annual spend and a safe withdrawal rate (default 4%), plus the gap from today and the years to reach it given optional savings and growth.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it FIRE target nest egg from annual spend and a safe withdrawal rate (default 4%), plus the gap from today and the years to reach it given optional savings and growth. No advice.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
future-valueFuture value of a single lump sum compounded annually.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Future value of a single lump sum compounded annually.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
fx-convertConvert an amount using a rate supplied by the caller (units of target currency per unit of source).1 finding
Why it is in this group
- The name "fx-convert" says "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "fx-convert" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "fx-convert" says "convert": a word for a change.
Description, as the server wrote it Convert an amount using a rate supplied by the caller (units of target currency per unit of source). No rate is ever looked up.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
gross-rent-multiplierGross rent multiplier: price divided by gross annual rent.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Gross rent multiplier: price divided by gross annual rent.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
holding-period-returnHolding-period return: (income + capital gain) / starting value, in percent.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Holding-period return: (income + capital gain) / starting value, in percent.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
hourly-to-salaryAnnualize an hourly rate (and the monthly equivalent).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Annualize an hourly rate (and the monthly equivalent).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
inflation-adjustConvert a nominal amount to today's purchasing power (real), or with toNominal inflate a real amount forward, at a given annual inflation rate.1 finding
Why it is in this group
- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "inflation-adjust" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert a nominal amount to today's purchasing power (real), or with toNominal inflate a real amount forward, at a given annual inflation rate.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
intrinsic-time-valueSplit an option premium into intrinsic value (in-the-money amount) and time value.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Split an option premium into intrinsic value (in-the-money amount) and time value.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
irrInternal rate of return: the per-period rate that zeroes the NPV of a cashflow series.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Internal rate of return: the per-period rate that zeroes the NPV of a cashflow series. Returns a percent, or null when the series never crosses zero.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
loan-aprEffective APR including upfront fees: the note-rate payment priced against the net proceeds (amount - fees).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Effective APR including upfront fees: the note-rate payment priced against the net proceeds (amount - fees). Annual percent.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
loan-payoffTime and interest saved by paying a fixed extra amount every month on a loan, versus the baseline schedule.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Time and interest saved by paying a fixed extra amount every month on a loan, versus the baseline schedule.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
ltvLoan-to-value ratio, percent (loan / property value).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Loan-to-value ratio, percent (loan / property value).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
margin-markupConvert between margin and markup.1 finding
Why it is in this group
- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "margin-markup" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert between margin and markup. Supply any one of cost/price plus one of marginPct/markupPct (or both cost and price); returns cost, price, profit, marginPct, and markupPct.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
max-drawdownMaximum drawdown of a value series: the largest peak-to-trough decline, as a positive percent.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Maximum drawdown of a value series: the largest peak-to-trough decline, as a positive percent.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
mirrModified internal rate of return: negatives financed at financeRate, positives reinvested at reinvestRate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Modified internal rate of return: negatives financed at financeRate, positives reinvested at reinvestRate. Percents in and out.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
mortgage-affordabilityMaximum loan and home price the income supports: the DTI cap on gross monthly income (less existing debts) sets the payment, whose present value at the rate and term is the loan.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Maximum loan and home price the income supports: the DTI cap on gross monthly income (less existing debts) sets the payment, whose present value at the rate and term is the loan.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
net-worthNet worth: assets minus liabilities.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Net worth: assets minus liabilities.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
noiNet operating income: gross rental income less vacancy and operating expenses.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Net operating income: gross rental income less vacancy and operating expenses.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
npvNet present value of a cashflow series (index 0 is today; outflows negative) discounted at a per-period rate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Net present value of a cashflow series (index 0 is today; outflows negative) discounted at a per-period rate.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
option-breakevenBreak-even underlying price at expiry: strike + premium for a call, strike - premium for a put.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Break-even underlying price at expiry: strike + premium for a call, strike - premium for a put.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
option-greeksBlack-Scholes greeks for a European option: delta, gamma, vega (per 1% vol), theta (per day), rho (per 1% rate).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Black-Scholes greeks for a European option: delta, gamma, vega (per 1% vol), theta (per day), rho (per 1% rate).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
payback-periodSimple payback period: periods until cumulative cashflows recover the initial cost, interpolated within the crossing period.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Simple payback period: periods until cumulative cashflows recover the initial cost, interpolated within the crossing period. Null if never.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
perpetuityPresent value of a level or growing perpetuity: payment / (rate - growth).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Present value of a level or growing perpetuity: payment / (rate - growth). Null when growth is not below the rate.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
points-breakevenMortgage points break-even: the upfront cost to buy down the rate, the monthly payment saving, and the whole months to recoup it.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Mortgage points break-even: the upfront cost to buy down the rate, the monthly payment saving, and the whole months to recoup it.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
portfolio-longevityHow many years a balance lasts while withdrawing from it: the balance grows each year, then the withdrawal (optionally stepping up) is taken.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it How many years a balance lasts while withdrawing from it: the balance grows each year, then the withdrawal (optionally stepping up) is taken. Returns the depletion year, or sustainable=true when it outlasts 200 years.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
present-valuePresent value of a single future amount discounted annually.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Present value of a single future amount discounted annually. The inverse of future-value.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
put-call-parityPut-call parity: given one option price, returns both.1 finding
Why it is in this group
- The name "put-call-parity" says "put": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "put-call-parity" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "put-call-parity" says "put": a word for a change.
Description, as the server wrote it Put-call parity: given one option price, returns both. Provide call or put, plus spot, strike, years, and the rate.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
quick-ratioQuick (acid-test) ratio: (current assets - inventory) over current liabilities.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Quick (acid-test) ratio: (current assets - inventory) over current liabilities.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
real-returnReal (inflation-adjusted) return from a nominal rate via the Fisher relation: (1+nominal)/(1+inflation) - 1.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Real (inflation-adjusted) return from a nominal rate via the Fisher relation: (1+nominal)/(1+inflation) - 1.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
refi-breakevenRefinance break-even: monthly saving, whole months to recoup closing costs, and (if remainingMonths given) the net saving over the remaining term.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Refinance break-even: monthly saving, whole months to recoup closing costs, and (if remainingMonths given) the net saving over the remaining term.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
required-contributionInverse of contributions: the fixed monthly amount needed to reach a target future value over a number of months, given an optional starting balance.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Inverse of contributions: the fixed monthly amount needed to reach a target future value over a number of months, given an optional starting balance.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
required-returnAnnual return needed to grow a starting value to a target over a number of years, optionally with a fixed annual contribution.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Annual return needed to grow a starting value to a target over a number of years, optionally with a fixed annual contribution. With no contribution this equals CAGR. Returns a percent, or null when unreachable.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
return-statsMean, sample variance, and sample standard deviation (n-1) of a series of returns.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Mean, sample variance, and sample standard deviation (n-1) of a series of returns. Pass percents to get a percent stdev (volatility).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
rule-of-72Years to double: the rule-of-72 estimate (72/rate) and the exact figure (ln2 / ln(1+rate)).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Years to double: the rule-of-72 estimate (72/rate) and the exact figure (ln2 / ln(1+rate)).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
salary-to-hourlyHourly rate implied by an annual salary.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Hourly rate implied by an annual salary.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
savings-rateFraction of income saved (savings divided by income).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Fraction of income saved (savings divided by income). Returns a decimal.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
sharpe-ratioSharpe ratio: excess mean return per unit of volatility, (mean - riskFree) / stdev.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Sharpe ratio: excess mean return per unit of volatility, (mean - riskFree) / stdev. Null when volatility is undefined or zero.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
straight-line-depreciationStraight-line depreciation: value falling evenly to a salvage value over a useful life.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Straight-line depreciation: value falling evenly to a salvage value over a useful life.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
successive-discountsStacked discounts applied in order: the final price and the effective single discount rate.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Stacked discounts applied in order: the final price and the effective single discount rate.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
sum-of-years-digitsSum-of-the-years'-digits depreciation: the depreciable base weighted toward the early years.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Sum-of-the-years'-digits depreciation: the depreciable base weighted toward the early years.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
tax-equivalent-yieldTax-equivalent yield: the taxable yield that matches a tax-free (e.g.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Tax-equivalent yield: the taxable yield that matches a tax-free (e.g. muni) yield. Percents in and out.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
tax-from-bracketsProgressive tax from caller-supplied brackets.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Progressive tax from caller-supplied brackets. No jurisdiction, year, or rates are baked in: pass the brackets yourself. Returns total tax, effective rate, and marginal rate.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
tip-splitTip and split: the tip amount, the total, and the per-person share.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Tip and split: the tip amount, the total, and the per-person share.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
unit-priceUnit price: price divided by quantity (for comparing pack sizes).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Unit price: price divided by quantity (for comparing pack sizes). Null when quantity is zero.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
units-of-production-depreciationUnits-of-production depreciation: the depreciable base spread over total expected units, charged by the units used this period.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Units-of-production depreciation: the depreciable base spread over total expected units, charged by the units used this period.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
vatValue-added tax (MwSt/USt, sales tax) on a price.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Value-added tax (MwSt/USt, sales tax) on a price. By default adds the tax to a net price; with inclusive=true treats the amount as gross and extracts the tax. The rate is always an input (19 or 7 for Germany, etc.).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
waccWeighted average cost of capital: equity and after-tax debt weighted by the capital structure.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Weighted average cost of capital: equity and after-tax debt weighted by the capital structure. Percents in and out.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
xirrDate-aware internal rate of return: the annual rate that zeroes the XNPV of irregular dated cashflows.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Date-aware internal rate of return: the annual rate that zeroes the XNPV of irregular dated cashflows. Null if no rate fits.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
xnpvDate-aware net present value: each amount discounted by its fractional years (act/365) from the first cashflow's date.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Date-aware net present value: each amount discounted by its fractional years (act/365) from the first cashflow's date. Annual rate in percent.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
yield-to-maturityBond yield to maturity: the nominal annual yield that prices a bond at the given price, with periodic coupons and face returned at maturity.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Bond yield to maturity: the nominal annual yield that prices a bond at the given price, with periodic coupons and face returned at maturity. Solved numerically. Returns a percent, or null.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
zero-coupon-pricePrice of a zero-coupon bond: face value discounted to today at the yield.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Price of a zero-coupon bond: face value discounted to today at the yield.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
Only reads 3Claude Code: allow
roaReturn on assets, percent: net income over total assets.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Return on assets, percent: net income over total assets.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
roeReturn on equity, percent: net income over shareholders' equity.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Return on equity, percent: net income over shareholders' equity.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
roiReturn on investment: total percent gain, plus the annualized rate when a holding period in years is given.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Return on investment: total percent gain, plus the annualized rate when a holding period in years is given.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.4.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http nestegg-calculators https://nestegg.money/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__nestegg-calculators__roi",
"mcp__nestegg-calculators__roe",
"mcp__nestegg-calculators__roa"
],
"ask": [
"mcp__nestegg-calculators__amortization",
"mcp__nestegg-calculators__loan-payoff",
"mcp__nestegg-calculators__future-value",
"mcp__nestegg-calculators__contributions",
"mcp__nestegg-calculators__cagr",
"mcp__nestegg-calculators__savings-rate",
"mcp__nestegg-calculators__fx-convert",
"mcp__nestegg-calculators__depreciate",
"mcp__nestegg-calculators__straight-line-depreciation",
"mcp__nestegg-calculators__fire-number",
"mcp__nestegg-calculators__required-contribution",
"mcp__nestegg-calculators__inflation-adjust",
"mcp__nestegg-calculators__effective-rate",
"mcp__nestegg-calculators__npv",
"mcp__nestegg-calculators__irr",
"mcp__nestegg-calculators__refi-breakeven",
"mcp__nestegg-calculators__emergency-fund",
"mcp__nestegg-calculators__mortgage-affordability",
"mcp__nestegg-calculators__debt-payoff",
"mcp__nestegg-calculators__portfolio-longevity",
"mcp__nestegg-calculators__present-value",
"mcp__nestegg-calculators__required-return",
"mcp__nestegg-calculators__yield-to-maturity",
"mcp__nestegg-calculators__tax-from-brackets",
"mcp__nestegg-calculators__margin-markup",
"mcp__nestegg-calculators__compound-interest",
"mcp__nestegg-calculators__de-gross-to-net",
"mcp__nestegg-calculators__de-net-salary",
"mcp__nestegg-calculators__de-abgeltungsteuer",
"mcp__nestegg-calculators__de-kindergeld",
"mcp__nestegg-calculators__de-midijob",
"mcp__nestegg-calculators__de-rentenpunkte",
"mcp__nestegg-calculators__vat",
"mcp__nestegg-calculators__real-return",
"mcp__nestegg-calculators__return-stats",
"mcp__nestegg-calculators__sharpe-ratio",
"mcp__nestegg-calculators__max-drawdown",
"mcp__nestegg-calculators__holding-period-return",
"mcp__nestegg-calculators__fee-drag",
"mcp__nestegg-calculators__dollar-cost-averaging",
"mcp__nestegg-calculators__bond-price",
"mcp__nestegg-calculators__current-yield",
"mcp__nestegg-calculators__bond-duration",
"mcp__nestegg-calculators__convexity",
"mcp__nestegg-calculators__zero-coupon-price",
"mcp__nestegg-calculators__accrued-interest",
"mcp__nestegg-calculators__black-scholes",
"mcp__nestegg-calculators__option-greeks",
"mcp__nestegg-calculators__put-call-parity",
"mcp__nestegg-calculators__option-breakeven",
"mcp__nestegg-calculators__intrinsic-time-value",
"mcp__nestegg-calculators__annuity-pv",
"mcp__nestegg-calculators__annuity-fv",
"mcp__nestegg-calculators__annuity-payment",
"mcp__nestegg-calculators__perpetuity",
"mcp__nestegg-calculators__rule-of-72",
"mcp__nestegg-calculators__payback-period",
"mcp__nestegg-calculators__discounted-payback",
"mcp__nestegg-calculators__mirr",
"mcp__nestegg-calculators__xnpv",
"mcp__nestegg-calculators__xirr",
"mcp__nestegg-calculators__loan-apr",
"mcp__nestegg-calculators__interest-only-payment",
"mcp__nestegg-calculators__balloon-loan",
"mcp__nestegg-calculators__ltv",
"mcp__nestegg-calculators__dti",
"mcp__nestegg-calculators__credit-card-payoff",
"mcp__nestegg-calculators__points-breakeven",
"mcp__nestegg-calculators__biweekly-payoff",
"mcp__nestegg-calculators__cap-rate",
"mcp__nestegg-calculators__cash-on-cash",
"mcp__nestegg-calculators__noi",
"mcp__nestegg-calculators__gross-rent-multiplier",
"mcp__nestegg-calculators__dscr",
"mcp__nestegg-calculators__wacc",
"mcp__nestegg-calculators__break-even-units",
"mcp__nestegg-calculators__contribution-margin",
"mcp__nestegg-calculators__current-ratio",
"mcp__nestegg-calculators__quick-ratio",
"mcp__nestegg-calculators__declining-balance-depreciation",
"mcp__nestegg-calculators__double-declining-depreciation",
"mcp__nestegg-calculators__sum-of-years-digits",
"mcp__nestegg-calculators__units-of-production-depreciation",
"mcp__nestegg-calculators__net-worth",
"mcp__nestegg-calculators__budget-50-30-20",
"mcp__nestegg-calculators__tip-split",
"mcp__nestegg-calculators__discount",
"mcp__nestegg-calculators__successive-discounts",
"mcp__nestegg-calculators__percentage-change",
"mcp__nestegg-calculators__unit-price",
"mcp__nestegg-calculators__hourly-to-salary",
"mcp__nestegg-calculators__salary-to-hourly",
"mcp__nestegg-calculators__after-tax-yield",
"mcp__nestegg-calculators__tax-equivalent-yield",
"mcp__nestegg-calculators__coast-fire",
"mcp__nestegg-calculators__barista-fire"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as nestegg-calculators. Review it before you use it.
