The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
An annuity schedule keeps the combined payment level; an equal-principal schedule keeps the principal portion level, so its total payment falls as interest declines. The TypeScript example below builds both schedules for the same principal, periodic rate, and term, making their cash flows directly comparable.
What an amortization schedule shows
An amortization schedule breaks each installment into interest and principal, then tracks the remaining balance. In a typical fixed-rate mortgage, the combined principal-and-interest payment stays substantially equal while the share going to interest falls and the share going to principal rises over time. See the CFPB explanation of how mortgage payments reduce a balance.
This example uses regular periods and a fixed rate. It models principal and interest only: it does not include taxes, insurance, fees, prepayments, or other contract terms.
How the two repayment methods differ
| Schedule feature | Annuity (equal payment) | Equal principal |
|---|---|---|
| Principal portion | Starts smaller and grows as the interest share shrinks. | Same each period. |
| Total installment | Level under fixed-rate, regular-period assumptions. | Starts higher and declines as interest falls. |
| Balance reduction | Principal reduction accelerates over time. | Balance falls by the same principal amount each period. |
| Typical tradeoff | More predictable installment amount. | Higher early installments and faster early balance reduction. |
| Total interest | Generally higher than equal principal for the same principal, positive fixed rate, and term. | Generally lower under those matched assumptions. |
These are consequences of the stated model, not universal promises about loan contracts. Oracle describes equal-principal repayment as equal principal across installments with variable interest and a varying total payment in its Oracle Loans User Guide.
#1 Best Overall
- Profitability calculations; cash flow function Calculates NPV and IRR for uneven cash flows
- Time-value-of-money and Amortization keys solve problems including: pension calculations, loans, mortgages, etc.
- Ideal calculator for students, managers and statisticians
- Built-in functionality : List-based one- and two-variable statistics with four regression options: linear, logarithmic, exponential and power
- The BA II Plus calculator is approved for use on the following professional exams: Chartered Financial Analyst exam. GARP Financial Risk Manager (FRM) exam. Certified Management Accountants exam
Define the inputs and formulas
Let P be starting principal, n the number of payment periods, and r the rate per period. The code expects r as a decimal, so 0.05 means 5% per period; 5 means 500% per period. It does not convert an annual rate. If the input is annual, first choose the payment frequency and whether the quoted rate is nominal or effective, then convert it consistently to a per-period rate.
Annuity payment
For nonzero r, the level payment is P × r / (1 − (1 + r)−n). For zero interest, it is P / n. Each period, interest is opening balance times r; principal is payment minus interest; closing balance is opening balance minus principal.
Rank #2
- PROFESSIONAL FINANCIAL CALCULATOR : Built-in TVM, IRR, NPV. Engineered for business analysts, real estate investors, accountants, and finance students.
- ADVANCED CASH FLOW & AMORTIZATION : Execute time value of money, break-even analysis, depreciation schedules, and bond pricing. Trusted for professional exam prep", MBA coursework, and banking certifications.
- CATIGA CF-300 : Flip-open hard case with a snap-close design for a secure fit. Compact and portable: designed for daily professional use in office, classroom, or on-site.
- ALL-IN-ONE FOR PROFESSIONALS : From NPV/IRR for real estate analysis to statistical calculations for business analysts. Handles probability, linear regression, and complex financial formulas.
- MORTGAGE, LOAN & INVESTMENT CALCULATOR : Covers bond pricing, loan amortization, investment analysis, and exam-level computations. Your go-to accounting calculator, business calculator, and real estate calculator in one device.
Equal-principal payment
Scheduled principal is P / n each period. Interest is opening balance times r, and total payment is scheduled principal plus interest. With a positive fixed rate, the declining opening balance makes the interest and total payment decline.
Build both schedules in TypeScript
This teaching implementation retains unrounded values through the recurrence and rounds only when formatting output. It accepts finite, nonnegative principal, a positive integer term, and a finite, nonnegative periodic rate. Negative rates are deliberately not supported. The last row uses the remaining balance as its principal amount to close the schedule without a floating-point residue.
Rank #3
- HP 10BII+ FOR STUDENTS & PROFESSIONALS – This HP calculator is built for business, finance, accounting, and statistics courses. Perfect for learners and professionals who need to solve common financial problems quickly without memorizing formulas or relying on spreadsheets.
- 100+ FUNCTIONS FOR REAL WORLD MATH – Quickly solve time value of money, interest rates, loan payments, NPV, IRR, cash flows, and more. The 10bII+ also includes probability distributions for statistics courses—a feature not often found in financial calculators.
- ALGORITHMIC INPUT WITH DEDICATED KEYS – This high-school/college calculator uses algebraic and chain logic with minimal keystrokes. Layout appears the same as standard calculators for easy learning. Dedicated keys give quick access to commonly used financial and statistical functions
- APPROVED FOR MAJOR EXAMS – The HP 10bII+ algebra calculator is permitted for use on SAT, PSAT/NMSQT, and AP tests. An ideal statistics calculator and business calculator for school finance and accounting students preparing for class, coursework, or standardized exams.
- INCLUDES TRAVEL CASE, CLEANING CLOTH & BATTERIES– Slim, durable, and easy to keep on hand or store in a backpack or locker. Includes a protective case, cleaning cloth, and batteries so it’s ready out of the box. Large screen with clear contrast (non-backlit) is easy to read during exams or lectures.
type ScheduleRow = {
period: number;
openingBalance: number;
payment: number;
interest: number;
principal: number;
closingBalance: number;
};
type Method = "annuity" | "equalPrincipal";
function buildSchedule(
principal: number,
periodicRate: number,
periods: number,
method: Method,
): ScheduleRow[] {
if (!Number.isFinite(principal) || principal < 0) {
throw new RangeError("principal must be finite and nonnegative");
}
if (!Number.isFinite(periodicRate) || periodicRate < 0) {
throw new RangeError("periodicRate must be finite and nonnegative");
}
if (!Number.isInteger(periods) || periods <= 0) {
throw new RangeError("periods must be a positive integer");
}
const levelPayment = periodicRate === 0
? principal / periods
: principal * periodicRate /
(1 - Math.pow(1 + periodicRate, -periods));
const scheduledPrincipal = principal / periods;
let balance = principal;
const rows: ScheduleRow[] = [];
for (let period = 1; period <= periods; period++) {
const openingBalance = balance;
const interest = openingBalance * periodicRate;
const isFinal = period === periods;
let payment: number;
let principalPaid: number;
let closingBalance: number;
if (method === "annuity") {
// Clear any accumulated floating-point residue in the final period.
principalPaid = isFinal ? openingBalance : levelPayment - interest;
payment = principalPaid + interest;
closingBalance = isFinal ? 0 : openingBalance - principalPaid;
} else {
principalPaid = isFinal ? openingBalance : scheduledPrincipal;
payment = principalPaid + interest;
closingBalance = isFinal ? 0 : openingBalance - principalPaid;
}
rows.push({
period,
openingBalance,
payment,
interest,
principal: principalPaid,
closingBalance,
});
balance = closingBalance;
}
return rows;
}
const annuity = buildSchedule(1000, 0.01, 3, "annuity");
const equalPrincipal = buildSchedule(1000, 0.01, 3, "equalPrincipal");
// Presentation only: this is not a lender's posting or rounding policy.
const display = (rows: ScheduleRow[]) =>
rows.map(row => ({
...row,
openingBalance: Number(row.openingBalance.toFixed(2)),
payment: Number(row.payment.toFixed(2)),
interest: Number(row.interest.toFixed(2)),
principal: Number(row.principal.toFixed(2)),
closingBalance: Number(row.closingBalance.toFixed(2)),
}));
The checks reject invalid inputs before calculation. A zero principal is allowed and produces zero-valued rows. Since the function takes a rate per period, its term is also a count of those same periods; for example, monthly periods require a monthly rate and a number of months.
Compare the resulting cash flows
With principal 1,000, a rate of 1% per period, and three periods, the unrounded model produces the following values. The table shows currency-style values rounded to two decimals for readability; this display rounding is not applied inside the recurrence.
Rank #4
- Solves time-value-of-money calculations such as annuities, mortgages, leases, savings, and more
- Performs cash-flow analysis for up to 32 uneven cash flows with up to 4-digit frequencies
- Calculates various financial functions: Net Future Value Net present Value Modified Internal Rate of Return Internal Rate of Return Modified Duration Payback Discounted Payback
- The Texas Instruments BAII Plus Professional features an Automatic Power Down (APD) function for extended battery life
- Prompted display guides you through financial calculations showing current variable and label. Ten-digit display
| Method | Period | Opening balance | Payment | Interest | Principal | Closing balance |
|---|---|---|---|---|---|---|
| Annuity | 1 | 1,000.00 | 340.02 | 10.00 | 330.02 | 669.98 |
| Annuity | 2 | 669.98 | 340.02 | 6.70 | 333.32 | 336.66 |
| Annuity | 3 | 336.66 | 340.03 | 3.37 | 336.66 | 0.00 |
| Equal principal | 1 | 1,000.00 | 343.33 | 10.00 | 333.33 | 666.67 |
| Equal principal | 2 | 666.67 | 340.00 | 6.67 | 333.33 | 333.33 |
| Equal principal | 3 | 333.33 | 336.67 | 3.33 | 333.33 | 0.00 |
The final annuity installment is adjusted to clear the balance; its displayed value differs by a cent from the earlier installments. Totals computed from unrounded values are about 20.10 in interest for annuity and 20.00 for equal principal. Rounded row values may not sum exactly to an unrounded total.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Choose and document a currency-rounding policy
TypeScript’s number is JavaScript Number behavior, which uses double-precision binary floating point; it is not exact decimal currency arithmetic. The TypeScript Handbook describes the number and bigint types, and the ECMAScript Number specification defines Number representation. Formatting with toFixed(2) is a display choice, not proof that a lender would post those amounts.
Best Value
- Brand New in box; The product ships with all relevant accessories
- Dedicated keys allow easy access to common financial and statistics functions
- Easy-to-use design provides business, finance and statistical calculations fast
- Specially designed to meet the mathematical needs
This example does not round each period. A real contract may instead calculate or post rounded amounts period by period and handle the final installment according to its own rules. Production software should follow the applicable contract and jurisdiction; integer minor units or decimal arithmetic may be more suitable than ordinary floating-point calculations. Do not switch to per-period rounding without also specifying how interest, principal, and any final adjustment are posted.
What the example does not model
A mathematically regular schedule may not match a real account statement. Actual loans can use different payment dates, day-count conventions, irregular first or last periods, fees, rate changes, or prepayments. Those details affect calculations; the CFPB notes that odd periods and schedule irregularities can cause minor variations in otherwise substantially equal payments in its 2024 edition of 12 CFR § 1026.43.
The same regulation gives a rounded example of a $200,000, 30-year fixed-rate loan at 7 percent with a substantially equal monthly fully amortizing payment of $1,331, calculated using non-rounded values. It is a regulatory illustration, not a current quote or a general promise of what a borrower will pay.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteQuick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

