Building an amortization schedule sounds straightforward until your ending balance doesn't hit zero, or a prepaid keeps posting after the benefit period ends, or an extra principal payment throws off every row that follows. These aren't edge cases; they come up in almost every close. This post covers how amortization works across the three account types you'll see most often, and how to build a schedule that stays accurate when the inputs get messy.

TLDR:

  • An amortization schedule is a period-by-period GL table that ties each recognition amount to a specific period, enforcing the matching principle under GAAP.
  • Three schedule types serve distinct GL purposes: prepaid expense allocation, intangible asset write-down, and loan payment splitting between interest and principal.
  • Extra principal payments require row-by-row balance recalculation from the payment date forward, or your ending balance will drift off zero by maturity.
  • Amortization entries belong at a fixed point in the close sequence, with a named preparer and reviewer attached to every schedule before the period closes.
  • According to a BlackLine survey, nearly 40% of CFOs worldwide do not fully trust their financial data, citing manual processes and spreadsheet reliance as leading contributors. Double handles prepaid amortization, intangible write-downs, and loan schedules inside the close workflow, calculating recognition amounts and preparing journal entries automatically.

What an Amortization Schedule Is in Accounting

Practitioners maintain amortization schedules for three distinct GL tasks, each with its own recognition logic and journal entry pattern. The next section breaks down each type in full.

An amortization schedule, in accounting terms, is a period-by-period table that maps how a cost or liability gets recognized on the general ledger over a set period of time. Each row ties a specific amount to a specific period, so the expense or income lands on the books when it is earned or incurred, not when cash happens to move. That is the matching principle under GAAP at work: revenue and its related costs get recorded in the same period, and amortization schedules make this consistent month after month as part of your month-end close checklist.

Most people encounter the term through a mortgage calculator, where amortization means splitting a monthly payment into principal and interest. That consumer-finance version is one flavor of the concept, but a general ledger view goes further. On the books, you are systematically allocating prepaid expenses, spreading deferred revenue, depreciating fixed assets, and breaking down loan payments too.

Three Types of Amortization Schedules Firms Maintain

Each type below lives on a different part of the balance sheet, and each carries its own posting pattern.

Prepaid expense amortization

Prepaid insurance, annual software subscriptions, and prepaid rent all get recorded as an asset upfront, then recognized as expense over the period the benefit covers. Each month, the entry debits the expense account and credits the prepaid asset directly, reducing it until the balance hits zero.

Intangible asset amortization

Patents, trademarks, customer lists, and purchased software licenses get written down over their useful life under FASB guidance on intangible assets. Unlike prepaids, intangibles typically run through an accumulated amortization contra-account: debit amortization expense, credit accumulated amortization, leaving the original asset cost visible on the books, following the same pattern as a standard depreciation journal entry.

Loan amortization

Term loans and notes payable split every payment between interest expense and principal reduction. The interest portion debits interest expense, the principal portion debits notes payable, and cash gets credited for the full payment amount.

The Amortization Formula and How to Calculate Each Period

The standard amortization formula calculates the fixed periodic payment that reduces a principal balance to zero over a set term: M = P × [r(1+r)ⁿ] ÷ [(1+r)ⁿ − 1], where P is the original principal, r is the periodic interest rate (annual rate divided by the number of payment periods per year), and n is the total number of payment periods. For a monthly schedule, r is always the annual rate divided by twelve, so a 6% annual rate becomes 0.5% per month. Once you have the fixed payment M, every period splits it into two pieces: interest equals the beginning balance multiplied by r, and principal equals M minus that interest figure. The critical point is that interest and principal are not evenly split across the schedule. Early periods carry more interest because the balance is highest, and the interest share shrinks each month as principal pays down. Each period's ending balance becomes the next period's beginning balance, so a single rounding error compounds forward and will cause the final balance to miss zero at maturity.

How to Build a Loan Amortization Schedule Step by Step

Building a usable loan amortization schedule follows a fixed sequence, and skipping a step is usually what causes the ending balance to miss zero later.

  1. Gather the loan parameters: original principal, annual interest rate, term (in months or years), and payment frequency.
  2. Calculate the fixed periodic payment using the amortization formula, based on those inputs.
  3. Build the period by period table with columns for payment number, beginning balance, total payment, interest portion, principal portion, and ending balance.
  4. Confirm the ending balance hits zero at maturity. If it doesn't, a rounding error or an incorrect rate period is hiding somewhere in the rows above.
  5. Map each column to its GL account: interest portion to Interest Expense, principal portion to Loan Payable, and the full payment to Cash or Bank.

Before posting anything, verify that total interest across every row equals total payments minus original principal. That single check catches most schedule errors before they reach the ledger, much like verifying an accrued expenses journal entry before the period closes.

A Worked GL Example: $250,000 Term Loan at 6% Over Five Years

Take a $250,000 term loan at 6% annual interest, paid monthly over five years. The monthly rate is 0.5%, producing a fixed payment of $4,833.06.

Month

Beginning Balance

Interest (0.5%)

Principal

Ending Balance

1

$250,000.00

$1,250.00

$3,583.06

$246,416.94

2

$246,416.94

$1,232.08

$3,600.98

$242,815.96

3

$242,815.96

$1,214.08

$3,618.98

$239,196.98

Interest drops each month as the balance shrinks, shifting more of the payment toward principal.

Each month posts two entries: debit Interest Expense and credit Cash for the interest amount, then debit Loan Payable and credit Cash for the principal amount. The two cash credits always total $4,833.06.

Building an Amortization Schedule in Excel

Start with six columns: Period, Beginning Balance, Total Payment, Interest, Principal, and Ending Balance. In the first data row, enter your loan parameters at the top of the sheet: principal, annual rate, term in months, and the fixed payment calculated from the amortization formula. Then reference them as absolute cell references ($B$1, $B$2, etc.) so they don't drift when you copy formulas down. The interest cell for each row multiplies the beginning balance by the monthly rate; the principal cell subtracts that interest from the fixed payment; the ending balance subtracts the principal from the beginning balance. Copy those formulas down through every period, and the ending balance in the final row should resolve to zero or within a few cents due to rounding. The single most common failure point in Excel schedules is mixing relative and absolute references. If your rate cell or payment cell moves when you fill down, every row after it carries a compounding error that won't surface until the ending balance misses zero at maturity. Before posting anything, add a check cell that compares total interest paid (sum of all interest cells) against total payments minus original principal; if those two figures don't match, a formula reference is broken somewhere above.

How Extra Payments and Mid-Period Catch-Ups Affect the Schedule

Extra principal payments break the fixed-payment math built into the standard formula, which assumes level payments across a set term. Apply a $10,000 extra payment in month 6 on the $250,000, 6% loan, and the beginning balance for month 7 drops by that full amount. Interest recalculates lower for every following row, and since the $4,833.06 payment stays fixed while the balance falls faster, the loan pays off ahead of schedule with no reduction in the periodic payment amount. Building this correctly means recalculating the running balance row by row from the payment date forward, never subtracting the lump sum at the end.

Catch-up periods follow different logic. A schedule starting mid-month needs its first period prorated by actual days, so a policy effective the 15th recognizes roughly half a month's expense in that opening row. A missed posting from a prior close gets prepended and booked in full to the current open month, catching the ledger up without reopening closed books. Both scenarios matter on a 5 year amortization schedule with extra payments, where a missed adjustment compounds quietly until the ending balance drifts off zero by maturity.

Amortization Schedules as a Month-End Close Task

Amortization entries don't belong in a spreadsheet someone updates whenever they remember. They belong in a specific slot on the close checklist, sequenced deliberately. Once cash is matched and transactions are categorized, but before the trial balance gets pulled and financial statements go out, every prepaid, intangible, and loan schedule needs its turn, a sequence detailed in the month-end close process guide.

Three actions happen at that point in the sequence, for every schedule on the books.

  • General ledger reconciliation of the GL account balance for each prepaid, intangible, or loan payable against the running schedule balance, confirming the two agree before anything gets posted.
  • Post the current period's recognition journal entry, the one calculated back in the schedule build.
  • Attach supporting documentation, meaning the schedule itself plus the original source document, and route it for sign-off.

None of these three steps should happen without a name attached. A preparer completes the reconciliation and posts the entry; a reviewer checks the math and signs off before the period closes. That pairing turns amortization from a background task into an auditable one.

Why Spreadsheet-Based Amortization Tracking Breaks Down

Spreadsheet-based amortization tracking fails in predictable ways, and the failures compound quietly until reconciliation or an audit forces them into view.

  • A formula references the wrong row after someone inserts a line above it, shifting the schedule off by one period for months before anyone notices. This is one of the key reasons to stop managing accruals manually in Excel.
  • Supporting documents live in a preparer's personal folder and disappear when that person leaves, a risk that month-end close automation is built to eliminate.
  • Two team members maintain separate versions of the same prepaid schedule, and both post entries against it.
  • Nothing forces the schedule balance to match the GL account balance, so drift between the two goes uncaught. That is exactly the gap that Double's accruals automation is built to close.

According to a BlackLine survey, nearly 40% of CFOs worldwide do not fully trust their organization's financial data, citing manual processes and spreadsheet reliance as leading contributors, a structural problem covered in depth in the next evolution of accruals.

How Double Automates Amortization Schedules Inside the Close

Double handles prepaid expense amortization, intangible asset write-downs, and loan amortization schedules directly inside the close workflow. Set up a schedule once by entering the asset cost, recognition period, and start date, and Double calculates the recognition amount for every period, prepares the corresponding journal entries, and posts them automatically when the period closes. Loan schedules work the same way: configure the principal, rate, and term, and Double calculates the principal and interest split for each period, generating interest-adjusting journal entries and maintaining a complete audit trail tied to the original loan documentation. If a schedule starts mid-period or a prior month was missed, Double handles catch-up periods by prepending the missed recognition to the current open month, with no manual row insertions and no formula drift. Every action on every schedule is logged in the Activity Log with a named preparer and reviewer, so each amortization entry carries the sign-off chain required for audit. The result is that the schedule balance and the GL account balance stay in sync automatically, closing the drift gap that spreadsheet-based tracking leaves open.

For teams managing a large volume of schedules, Ask Double, which is Double's practice-wide AI assistant, lets you create loan amortization schedules and import prepaid expense or fixed asset schedules from uploaded files directly through conversational chat, without navigating to the Accruals module. You can ask cross-client questions about schedule status, retrieve activity log details, or create and assign follow-up tasks from the same interface. Ask Double is available on Core, Plus, and Scale plans for QuickBooks Online practices, with transaction creation via chat available on the Scale tier.

Final Thoughts on Running Amortization Schedules Inside Your Close

Getting the math right on a loan or prepaid schedule is straightforward once you follow the steps. The harder part is keeping every schedule current, balanced, and posted on time across a full month-end close. Double automates amortization inside your close, so your team spends time reviewing results instead of maintaining rows in a spreadsheet.