Skip to main content
DoneThat

AI Adoption GuideFinanceClose

Lease accounting agent

LLM extracts lease terms, computes ASC 842 and IFRS 16 schedules, and posts entries, using tools like Trullion.

Finance processPlanBudgetInvoiceCollectPayCloseReportAudit

By Don, DoneThat’s AI coach · updated

Required inputs before any schedule runs

A lease accounting agent belongs in close only when the draft schedule cites a contract clause for lease term, for payments, and for the discount rate. If any of those three is missing, that cell stays empty. The agent does not invent an incremental borrowing rate, a renewal, or a rent amount. The controller still posts.

The quality test is whether every number that entered the calculation is traceable, and whether every blank is an honest blank. ASC 842 and IFRS 16 both need a lease term, a payment stream, and a discount rate: the rate implicit in the lease when that rate is readily determinable, otherwise the lessee's incremental borrowing rate. Extraction without cited inputs is contract reading. Computation without them is a close defect.

Lease applications and ERP modules in the same class as Trullion, Workday, SAP, and Oracle remain the books of record. Treat the agent as a citing extractor and as a calculator that runs only after inputs are complete, not as a second subledger.

Work that reviews the same packet for classification, embedded-lease flags, and audit support belongs on contract review for revenue and lease audit. Keep that review on its own ticket.

How to extract term, payment, and discount rate with cites

Start with the executed lease and every amendment that changes commencement, payments, or options. For term, payment, and discount rate, capture the value as written, the clause or exhibit identifier, and a short quote. If two amendments conflict, cite both and stop. Do not pick a winner.

Term is the non-cancellable period plus options the lessee is reasonably certain to exercise. Cite commencement language, the stated term, and every renewal or termination option. If the contract is silent on whether an option will be exercised, leave that judgment to the accountant. Do not invent a renewal option that is not in the document.

Payment includes fixed amounts, in-substance fixed amounts, and index- or rate-based variable payments. Cite the payment table or section, the currency, and the due dates. If a line is "to be agreed" or "market rent review, amount to be determined," leave that period empty. Do not backfill a round number so the present value looks finished.

Discount rate is the rate implicit in the lease only when that rate is readily determinable. Otherwise it comes from the entity's incremental borrowing rate file, not from the lease. Cite the clause that contains an implicit rate if one exists. If none exists, leave the discount-rate cell empty. Do not substitute a treasury yield, last year's rate, or a peer's rate.

A warehouse lease shows the pattern. Commencement is "the later of 1 April 2025 or the date Landlord tenders possession" (section 2.1). The initial term is "sixty (60) months from the Commencement Date" (section 2.2). Base rent is monthly in advance in Exhibit B, with anniversary step-ups. Section 18 grants a five-year renewal "at then-fair market rent, as determined under this section." There is no stated implicit rate and no incremental borrowing rate.

The correct extract cites 2.1, 2.2, Exhibit B, and section 18. Term is the non-cancellable sixty months once commencement is known. The renewal stays off the term until someone documents reasonably certain. Discount rate stays blank. Initial-term payments come from Exhibit B. Fair-market renewal rent stays blank. If possession has not occurred, leave commencement empty. A guessed handover date is a forecast, not a draft.

When to compute and when to leave the schedule blank

Run the calculator only when term, payment stream, and discount rate are all present and cited. If any one is blank, produce the extract and a schedule shell with empty right-of-use, liability, interest, and amortization columns. Do not compute a partial present value "just to see the shape."

Computing without a discount rate is the failure that looks most like progress. A zero rate, a five percent placeholder, or last quarter's incremental borrowing rate will produce a liability and a right-of-use asset that journal cleanly and fail the first question about the rate source. Empty is the control. The accountant supplies the rate from treasury or from a documented borrowing, cites that source on the draft, and only then may computation run.

When inputs are complete, the draft should show term, undiscounted payments by period, the discount rate and its cite, the present value of the liability, the right-of-use build-up under policy (initial liability, initial direct costs, incentives), and period interest and amortization. Initial direct costs need their own cite, an invoice or engagement letter, not a rounded plug. Apply the entity's policy pack for short-term and low-value elections. Do not produce a capitalization schedule as a courtesy when the election is to expense.

Expense classification for adjacent spend belongs on capex vs opex classifier, not inside the lease present value. Index resets not yet published, unsigned landlord estimates, and unquantified residual-value guarantees stay as comments, not plugged amounts.

Why the controller still posts

The agent output is a draft, not an entry. Do not load it to the subledger, do not tick it on the close checklist as complete, and do not treat a clean calculation as authorization. The controller, or the designated lease owner on the close calendar, reviews cites, fills blanks, and posts.

Handoff should include the extract with cites, a list of blanks and why they are blank, a schedule only if inputs were complete, and a proposed journal still marked draft (debit right-of-use, credit lease liability, plus any initial-direct-cost or incentive lines). The poster uses the entity's tool of record. Whether that tool sits in the Trullion class of lease applications or in a Workday, SAP, or Oracle module does not change the control. The human posts.

Treating the draft as posted is the second failure. It shows up as a close that "has leases" while the subledger still holds last month's population, or as a duplicate when someone later keys the same draft for real. Label drafts as draft. Keep posting on the controller's queue. If commencement has not occurred, or a modification is unsigned, do not post.

Mistakes that look like a finished lease

Three mistakes fake completeness. First, computing without a discount rate: refuse the present value until the rate is cited from the lease or from the entity's rate file. Second, treating the draft as posted: refuse the load until the controller accepts. Third, inventing a renewal option: if section 18 is an option at fair market rent and there is no reasonably-certain memo, the term is the non-cancellable period only. Adding years because the site is hard to replace is not in the contract.

The agent extracts the packet it is given and does not swear population is complete. Recompute a modification only after the new term, payment, and rate are cited. If the packet is a services master with an unidentified embedded lease, flag the clause rather than building a schedule from a fee table.

When the same contract allocates consideration between lease and non-lease components, or between a sale and a leaseback, send the revenue side to ASC 606 revenue recognition split. Prepayments and straight-line rent that are not yet a capitalized lease go to accrual auto-suggestion so rent is not counted twice.

The usable output is a draft a lease accountant can defend: cites for term, payment, and discount rate; blanks where the contract or the rate file is silent; no invented renewals; no present value without a rate; and a controller who still posts.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other. This one is rated high effort to implement, so the baseline matters more than usual.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first