ASC 842 Lease Schedules: Abstracting the Lease Agreement Before You Build the Entry
A client signs a five-year office lease, and the bookkeeping file sees it as a rent payment every month. Since ASC 842 took effect for private companies, that lease belongs on the balance sheet as an asset and a liability, and the monthly cost is not the cash that left the bank. This post covers how a bookkeeping firm reads each lease agreement, abstracts the terms that drive the numbers, and builds a schedule that ties to the ledger for every client.
In brief
- Under ASC 842 a lessee records a right-of-use asset and a lease liability for every lease longer than 12 months, so a lease still booked as monthly rent expense is missing from the balance sheet.
- The schedule is only as good as the terms read from the lease: commencement date, term, renewal options, the payment table, free rent, escalations and incentives.
- Variable payments that depend on actual costs or usage, such as common area maintenance billed on actuals, stay out of the lease liability and are expensed as incurred.
- For an operating lease the cost is recognized straight-line, so in a free-rent month the expense is the full straight-line amount even though no cash leaves the bank.
- Amendments, renewals and assignments change the schedule, which makes the lease file, not the bank feed, the source of truth for every client.
What ASC 842 asks of a small-business client
Under ASC 842, a lessee recognizes a right-of-use asset and a lease liability at the commencement date of any lease longer than 12 months. The standard has applied to private companies for fiscal years beginning after December 15, 2021, so every client with an office, a warehouse, a vehicle fleet or a piece of leased equipment now has the question in its year-end file, whether or not the monthly bookkeeping ever answered it.
The liability is the present value of the payments still to be made over the lease term. The asset starts from that liability, adjusted for rent paid in advance, initial direct costs and incentives received from the lessor. After that, the two kinds of lease diverge. A finance lease amortizes the asset and accrues interest on the liability, much like the principal and interest split covered in the post on loan statement reconciliation. An operating lease, which is what most office and warehouse leases are, recognizes one single lease cost on a straight-line basis over the term.
None of that is hard to compute. What is hard is that every input comes from a contract that is twenty or forty pages long, sometimes with amendments, and that sits in an email thread rather than in the ledger.
12
months: leases longer than this go on the balance sheet
60
monthly payments in the example lease below
3
checks in the example tie-out
The lease abstract: the terms that drive the schedule
A lease abstract is the short, structured record of what the agreement says. For the accounting, a handful of terms decide everything, and each of them can hide in a different section of the document.
Dates and term
The commencement date is when the lessor makes the asset available to the client, which can differ from the signing date and from the date rent starts. The term is the non-cancellable period plus any renewal the client is reasonably certain to exercise, plus any period after a termination option the client is reasonably certain not to use. Record each option with the judgement made about it, because that judgement is what the reviewer will ask about at year end.
The payment table
Base rent by period, the escalation (a fixed percentage, a fixed step, or an index), free rent months and any rent paid before commencement. An escalation tied to an index such as CPI is measured at the index in effect at commencement; later changes are variable cost. A tenant improvement allowance paid by the lessor is an incentive that reduces the asset.
Fixed and variable charges
Leases pass through common area maintenance, property tax and insurance. A fixed amount for them is part of the lease payments when the client elects to combine lease and nonlease components; a charge billed on actual costs is variable and stays out of the liability. The abstract should say which is which, with the page it came from.
Building the schedule from the abstract
Take an illustrative office lease: 60 months, base rent of 5,000 a month rising 3 percent each year, the first three months free, payments at the start of each month, and a 6 percent annual discount rate. The payments over the term add up to 303,548.16. Discounted monthly, the liability at commencement is 260,091.60, and with no prepaid rent, direct costs or incentives the right-of-use asset starts at the same figure.
As an operating lease, the monthly cost is the total payments spread evenly: 5,059.14 a month for all 60 months. In the three free months the client pays nothing and still records 5,059.14 of lease cost; in the last year, when rent has climbed to 5,627.54, the client pays more than it expenses. The liability runs down as payments are made and interest accretes, and the asset is the plug that keeps the single cost straight-line.
The same arithmetic works for every lease in the portfolio once the inputs are in the same fields. That is the point of the abstract: the calculation is the easy part, and a spreadsheet or a lease module can run it, as long as nobody has to reread the contract to find the free rent clause.
Where lease schedules go wrong
Across a portfolio of small-business clients, the errors are rarely in the present value formula. They are in what was read from the lease, or in what was never read at all.
Still booked as rent
The most common gap is a lease that never reached a schedule: a bank rule sends the landlord's payment to rent expense, and the balance sheet carries neither the asset nor the liability. The monthly expense is then the cash paid, which is wrong in every free-rent month and every escalation year.
Amendments and renewals
An amendment that adds space, extends the term or changes the rent is a modification that remeasures the liability. When it arrives as a separate document months later, often in a batch with other paperwork, it is the one that gets missed. The post on splitting and classifying mixed PDF batches covers how to find it.
Variable charges in the liability
Estimated maintenance charges added to the payment table inflate the liability and the asset, then leave a true-up every year that nobody knows where to post.
Lease still booked as cash rent
Free rent or escalation ignored
Amendment or renewal not picked up
Variable charges in the liability
Wrong commencement date
Other
From lease agreement to tie-out
For a firm with a hundred clients, the work is the reading: every lease, every amendment, every renewal notice, turned into the same fields. That is the same pattern as building a fixed asset register from vendor invoices or a prepaid expense schedule: extract once, then let rules compute and compare.
Define the abstract as an extraction schema with typed fields: dates as dates, the payment table as rows of period and amount, options as objects with their notice periods. Typed fields, as the post on extraction schema design explains, let the rent table be checked against the term before anyone discounts it. Then compute the schedule and compare it with what the ledger shows for the month.
{ "client_id": "client-0742", "lease_id": "LS-0742-002", "abstract": { "lessor": "example-property-owner", "asset": "Office suite, 2,400 sq ft", "commencement_date": "2026-10-01", "end_date": "2031-09-30", "term_months": 60, "renewal_option": { "months": 60, "reasonably_certain": false }, "base_rent_monthly": 5000.00, "annual_escalation_pct": 3.0, "free_rent_months": [1, 2, 3], "nonlease_charges": [ { "description": "Common area maintenance, estimated", "monthly": 900.00, "basis": "actual costs, trued up yearly" } ], "source_pages": { "term": 2, "rent_table": 4, "free_rent": 4, "cam": 7 } }, "measurement": { "classification": "operating", "discount_rate_annual_pct": 6.0, "payments_total": 303548.16, "lease_liability": 260091.60, "right_of_use_asset": 260091.60, "straight_line_monthly_cost": 5059.14 }, "ledger_2026_10": { "rent_expense_posted": 0.00, "lease_liability_balance": 0.00, "right_of_use_asset_balance": 0.00 }, "checks": [ { "check": "lease_on_balance_sheet", "status": "break", "hint": "No liability or asset recorded at commencement" }, { "check": "monthly_cost_vs_straight_line", "posted": 0.00, "expected": 5059.14, "status": "break", "hint": "Free-rent month posted as zero expense" }, { "check": "cam_excluded_from_liability", "status": "ties" } ], "requires_review": true}In this example, the lease commenced on October 1 and the ledger shows nothing: no liability, no asset, and no expense, because October was a free month and no payment went out. The abstract points to the pages where the term, the rent table and the maintenance clause were found, the maintenance estimate is correctly left out of the liability, and the fix is one reviewed commencement entry plus 5,059.14 of lease cost for the month.
The lease file is the source of truth
Keep the abstract honest
Treat extracted terms as a draft until they pass checks a reviewer would make anyway: the end date matches the commencement date plus the term, the rent table covers every month of the term with no gaps, free months fall inside the term, and the first payment in the table matches the first payment in the bank. A judgement such as whether a renewal is reasonably certain is never extracted; it is recorded by a person. Keep a labelled set of leases from the landlords that appear most across clients and score the fields when a template changes, as described in the post on building a field-level eval set.
Monthly lease review: a checklist
- Collect every lease, amendment and renewal notice per client, including vehicles and equipment.
- Abstract the commencement date, term, options, payment table, free rent, escalations and incentives, with page references.
- Mark each charge as fixed or variable, and record the client's election on nonlease components.
- Record the discount rate used and why: rate implicit, incremental borrowing rate or the risk-free election.
- Compute the liability, the asset and the monthly cost, and post the commencement entry.
- Tie the liability and asset balances and the lease cost to the ledger every month.
- Reopen the schedule when any new lease document arrives, and send every change to review before it posts.
Where extraction fits
The lease standard is settled, and the present value is a formula. What slips across a portfolio is reading every lease and every amendment for every client and keeping the terms current. Parser turns each lease document into structured JSON against an extraction template you define, including the dates and the payment table, so schedules are built from data and the team's time goes to the judgements the standard actually asks for.