IFRS 16 turned lease accounting into a data engineering problem, but most finance teams still attack it with spreadsheets. Every contract must be assessed for whether it contains a lease, then translated into a right-of-use asset, a lease liability, a discount rate, a lease term with renewal and termination options, and a repayment schedule that behaves differently for every modification, indexation clause, and extension. Multiply that by hundreds or thousands of contracts across dozens of jurisdictions, and the close process becomes a bottleneck that consumes weeks of controller time and still produces audit findings.
The friction is not the accounting theory. Most controllers understand IFRS 16 perfectly well. The friction is extraction and consistency: lease terms buried in PDFs, payment escalators in side letters, discount rates that vary by entity and currency, and remeasurement triggers that nobody flags until the auditor asks. Spreadsheet models break silently, version control collapses, and the audit trail becomes a trail of emails.
AI changes the shape of this work. A large language model paired with a disciplined prompt can read lease contracts, extract the exact inputs IFRS 16 requires, flag judgment areas, and generate a calculation schedule that ties to your general ledger. It does not replace the accountant’s judgment on discount rates or lease classification. It removes the manual reading, the transcription errors, and the rebuilding of the same schedule every quarter, so your team spends its time on the decisions that actually require a human.
Where the workflow breaks today
Three failure points dominate IFRS 16 compliance in practice. First, contract intake: leases arrive as scanned PDFs, Word drafts, and email amendments, and someone has to read each one. Second, input consistency: two analysts reading the same contract often extract different commencement dates or payment schedules. Third, remeasurement: a renewal option exercised in month nine invalidates the entire schedule, and rebuilding it manually introduces new errors.
The prompts below target the first two failure points directly, and the second prompt builds in remeasurement logic so the third becomes a controlled update rather than a rebuild. Each prompt follows a structured format: task, success criteria, files to read, reference pattern, and a success brief. That structure is what separates a usable output from a generic wall of text.
First, read these files completely before responding:
[lease_contract_batch.pdf] — the full text of the lease agreements to be processed
[ifrs16_accounting_policy.md] — our entity’s policy on lease term, discount rate, and low-value exemptions
[lease_register_template.csv] — the column structure of our existing lease register
Here is a reference for what I want to achieve:
[Upload an example of a completed lease register row as markdown, including commencement date, lease term, payment schedule, discount rate, ROU asset, and liability]
Here’s what makes this reference work:
It extracts only contractual facts, cites the clause number for each value, separates stated facts from judgment areas, and never guesses a discount rate when the contract is silent. Tone is factual and audit-ready. Every field is traceable to source text.
Here’s what I need for my version / SUCCESS BRIEF:
Type of output + length: Structured extraction table, one row per contract, plus a short exceptions list
Recipient’s reaction: The controller should be able to hand this directly to the auditor with clause references intact
Does NOT sound like: A summary of the contract, a legal opinion, or a narrative description
Success means: Every lease in the batch appears in the register with commencement date, term, payment schedule, discount rate basis, and a flag for any judgment area, with zero invented values
My context file contains my standards, constraints, audience. Read it fully before starting.
DO NOT start executing yet. Ask clarifying questions first.
Give me your execution plan (5 steps max) before you begin.
Notice what that prompt refuses to do: it does not ask the model to calculate anything. Extraction and calculation are separate jobs, and separating them is what keeps the output auditable. If the model invents a discount rate, the entire schedule is wrong and you will not catch it until the auditor does.
From extracted inputs to a defensible schedule
Once the register is populated, the second job is generating the liability amortisation schedule, the ROU asset depreciation, and the journal entries, then handling remeasurement when something changes. This is where most spreadsheet models fail under pressure. The prompt below produces a schedule with the remeasurement logic built in, so an extension or a change in an index does not require rebuilding from scratch.
First, read these files completely before responding:
[lease_register_populated.csv] — extracted lease inputs including term, payments, and discount rate
[ifrs16_accounting_policy.md] — our policy on discount rates, depreciation method, and remeasurement triggers
[gl_journal_template.csv] — the journal entry format our ERP accepts
Here is a reference for what I want to achieve:
[Upload an example amortisation schedule as markdown showing opening liability, interest, payment, closing liability, ROU depreciation, and cumulative figures]
Here’s what makes this reference work:
Interest is calculated on the opening liability at the contract’s incremental borrowing rate. Payments reduce the liability. Depreciation runs straight-line over the lease term. Remeasurement is a separate adjustment row, never buried in an existing period. Every row reconciles to the prior period closing balance.
Here’s what I need for my version / SUCCESS BRIEF:
Type of output + length: Period-by-period schedule for each lease, plus a journal entry file ready for import
Recipient’s reaction: The financial analyst should be able to post entries directly and defend every figure to the auditor
Does NOT sound like: A conceptual explanation of IFRS 16 or a summary of the standard
Success means: Opening liability plus interest minus payments equals closing liability in every period, ROU asset reaches zero at lease end, and any remeasurement appears as an explicit adjustment with its trigger documented
My context file contains my standards, constraints, audience. Read it fully before starting.
DO NOT start executing yet. Ask clarifying questions first.
Give me your execution plan (5 steps max) before you begin.
Run both prompts on a small pilot batch first, ideally ten to twenty contracts that you have already accounted for manually. Compare the AI output against your known-good numbers line by line. If the schedule ties, expand the batch. If it does not, the discrepancy tells you exactly which clause your prompt failed to capture, and you refine the extraction instructions before scaling.
One practical tip: keep the accounting policy file current and treat it as the single source of truth for discount rate methodology and materiality thresholds. The model will follow whatever that file says, so an outdated policy produces outdated schedules at scale. Version it alongside the prompt, and review both at each reporting date.
Published on 28 September 2026 on growwithgpt.com
