Numbers are useful only when you know what they mean. This page documents the conventions behind our calculators, what we test and where our models stop. Each tool also lists its own assumptions beside the results.
One clear model per calculator
Our savings and growth tools use a nominal annual percentage divided by 12, with monthly compounding. A 4% nominal annual rate means a monthly rate of 0.04 ÷ 12. This differs from a 4% annual percentage yield (APY). We do not import current bank rates or assume an investment return.
Savings goals use end-of-month deposits. Compound interest offers beginning- or end-of-month deposits. We retain full floating-point precision during savings calculations and round for display. Savings-goal deposits are rounded upward to a cent so the modeled target is reached.
Loan payments and the final cent
The loan tool models a fixed interest rate, equal monthly periods and a scheduled principal-and-interest payment. It rounds the scheduled payment and each monthly interest charge to cents. Extra principal is applied after the scheduled payment, with no recasting of the scheduled amount. The final installment is adjusted to clear the actual remaining balance.
This excludes loan fees, penalties, taxes, insurance, daily accrual and variable rates. A lender’s quote may differ. The interest rate field is not a fee-inclusive APR field. Our schedule helps explain and compare a specified model; it does not replace the contract.
Checks you can reproduce
Closed-form comparison
Monthly compound growth is compared with an independently expressed annuity formula. Beginning deposits are checked for exactly one additional period of growth.
Independent decimal recurrence
The $12,000 loan case is recalculated in Python Decimal, separately from the JavaScript implementation, including cent rounding and payoff month.
Cash-flow conservation
For loan schedules, principal repaid must equal the original loan balance, and total payments must equal principal plus total interest.
Boundary cases
Zero interest, already-met goals, oversized overpayments, fractional month inputs, non-finite numbers and zero expense budgets have explicit checks.
Download the independent Python loan reference · Inspect the JavaScript calculation source · Download the calculation tests
The Python reference runs with Python 3 and its standard library. The JavaScript tests use Node’s built-in test runner; place the source at src/calculations.mjs and the test file in tests/, then run node --test tests/calculations.test.mjs. These checks validate our documented model, not every financial product.
How cases and screenshots are made
Worked examples use explicitly hypothetical inputs. Published tables and downloadable CSVs are generated from those inputs. Screenshots show our actual browser interface. They are not illustrations of real customers, bank balances or investment performance. The loan reference adds an independent check rather than simply repeating the same code.
This release was developed with AI assistance for code and explanatory drafts. Financial models are checked with tests and primary educational references. We do not claim professional financial review or independent certification. Corrections and limitations remain visible because automated checks cannot establish suitability for a person’s finances.
Primary references and their scope
- CFPB: How paying down a mortgage works explains principal, interest and amortization. It does not endorse this tool or verify our totals.
- Investor.gov: Compound interest calculator provides a public educational reference for starting money, contributions, rates and compounding. Match conventions before comparing outputs.
- CFPB: Building an emergency fund explains why savings needs depend on circumstances. Our user-selected coverage input is not a universal target.
References checked October 22, 2026. Sources support the concepts identified above; all sample data and scenario comparisons are our constructed examples.
Report a discrepancy
Send the tool URL, non-sensitive sample inputs, the expected result and your calculation method to yjh@dgvantage.com. Include deposit timing, rate convention and rounding where relevant. Do not send bank logins, account numbers or private financial documents.