Skip to main content
DoneThat

AI Adoption GuidePropertyLease

Portfolio-Scale Lease Abstract Extraction

Document AI extracts and structures key lease terms (break options, rent steps, service charge caps, permitted use) across the portfolio into a searchable, queryable database. (e.g., Leverton, Kira Systems)

Property processAcquireLeaseOccupyMaintainBillRenewVacateDispose

By Don, DoneThat’s AI coach · updated

Overview

When a lease administrator owns abstracting at portfolio scale, the job is not to rewrite every agreement. It is to turn executed leases, variations, and side letters into a structured record that asset managers, valuers, and legal can query without opening hundreds of PDFs. Document AI (systems in the same class as Leverton or Kira Systems) reads the file, proposes fields, and writes them into a searchable database. The administrator still confirms each material term before it is treated as operational truth.

Related workflows sit next to this one. Screening and pricing need clean occupancy and rent data; compliance needs the same clause set after it is locked. See AI Tenant Screening & Scoring, Dynamic Rent Pricing at Lease-Up, and Lease Compliance Checker.

What “portfolio-scale” abstraction actually means

A single-asset abstract is a memo. A portfolio abstract is a table: one row per demise (or per lease, if that is how the fund is coded), with the same fields completed the same way so someone can ask “which units have a tenant break in the next 18 months?” without a data room hunt.

The usual failure mode is not missing a famous headline clause. It is inconsistent encoding. One abstract says “tenant break 2028,” another copies a full paragraph, a third leaves the field blank because the option sits in a deed of variation. Document AI does not remove that risk on its own. It reduces the cost of first-pass extraction so the administrator can spend time on conflicts, later documents, and fields that actually move cash or optionality.

Scope the corpus before you run models. Include the current lease, the last rent review memorandum, licences to alter, and any side letter that changes rent, use, or break. Exclude marketing packs, draft heads of terms, and unsigned mark-ups unless you have a separate “pipeline” status. Mixing executed and draft text is how a database starts quoting terms that never completed.

Treat unit of analysis as a product decision. Shopping centres often need unit-level rows. Multi-let industrial may share a headlease plus occupational leases. If two agreements govern the same cash flows, the database should show both documents and which fields came from which file, rather than silently merging them.

How extraction should run in practice

Ingest starts with a readable file. Native PDFs and well-scanned pages with OCR that actually recovers words are fair inputs. Password-locked files, corrupt containers, image-only scans with no usable text layer, and wrong-document uploads (an EPC packed as “lease.pdf”) are not. When the file cannot be read, the run must return empty output for that lease: no guessed dates, no copied fields from a sibling unit, no “best effort” partial row presented as complete. Empty is the signal to fix the source, not to invent a stub.

Once text is available, the model proposes a fixed schema rather than a free-form summary. Administrators already know the fields that matter for this outcome: parties and demise identifiers, term start and end, rent and rent-free, stepped rents and review machinery, break options (who, when, notice, conditions, penalties), service charge and any cap or exclusion, permitted use and exclusive-use wording, alienation, insurance, and options to renew or expand if they exist. Headings and clause numbers help retrieval, but they are not the product. The product is typed values plus the quote that justifies each value.

Keep extraction and confirmation as two steps. The model fills a draft abstract and attaches span-level evidence (page, clause, excerpt). The administrator accepts, edits, or rejects field by field. A rejected field stays empty or stays on the previous confirmed value; it does not remain as a silent AI guess in downstream reports.

Batch design matters more than model brand. Run by building or by legal entity so reviewers see local drafting patterns together. Cap concurrent reviews so one person is not confirming 400 breaks in a single sitting. Log model version, prompt or playbook version, and document hash on every draft so a later re-run can be compared without arguing about which PDF was used.

Terms that must be structured, not summarised

Break options fail in databases when they are stored as prose. Encode party (landlord, tenant, either), earliest and latest exercise windows, notice period and how notice is served, conditions precedent (vacant possession, no arrears, reinstatement), and whether time is of the essence. If a break is personal to a named tenant, that restriction is a field, not a footnote.

Rent steps need a schedule, not a single “passing rent.” Capture amount, currency, frequency, from-date and to-date, and whether VAT is extra. Indexation and open-market review are different machines: record the index, collar and cap if any, review dates, and what happens if the parties do not agree. A stepped industrial lease and a turnover-linked retail lease should not share one numeric column without a type flag.

Service charge caps are easy to miss because they hide in schedules and side letters. Record whether a cap exists, what it applies to (all service charge, listed heads only), whether it is RPI-linked, and any year-one freeze. Uncapped is a positive value, not a blank. Blank should mean “not yet confirmed,” not “no cap.”

Permitted use should be stored as both the clause text and a controlled-use code the asset team already uses (for example, planning Use Class plus any exclusive or keep-open wording). Absolute prohibitions, landlord consent tests, and change-of-use mechanics belong in separate fields so a leasing enquiry does not have to re-read the lease to know whether a food operator is even discussable.

Where two documents disagree, do not average them. Flag a conflict, rank document date and type (variation beats original where it amends the same clause), and leave the field unconfirmed until a person chooses the governing text.

Confirmation, exceptions, and empty runs

Human-in-the-loop is not a rubber stamp. The model extracts terms; the lease administrator confirms them. Confirmation is lightest on fields with a single clear numeric or date span and a matching excerpt. It is heaviest on options, caps, and use, where a proviso two pages later can reverse the headline.

Build an exception queue rather than a generic “low confidence” dump. Useful buckets: unreadable file (empty output), OCR garbage, missing later document suspected (lease refers to a deed you do not have), conflicting clauses, personal conditions on a break, and schema miss (the lease uses a structure you have not mapped, such as a turnover top-up with a base rent collar). Each bucket should have an owner and a done definition.

Empty output on unreadability must be visible in the same UI as successful drafts. If empty rows vanish, people assume those leases were abstracted. Pair emptiness with a reason code and the original filename so the administrator can request a re-scan or the correct executed pack.

Do not auto-publish into the investment memorandum, covenant dashboard, or tenant portal. Confirmed rows can flow there. Draft rows stay in the abstraction workspace. If a re-extraction runs after a variation is filed, treat new proposals as a diff against the last confirmed abstract, not as a silent overwrite.

Sampling is part of control, not a substitute for it. Spot-check a slice of “easy” FRI offices as well as the messy retail and hotel files. The goal is to catch systematic mis-mapping (for example, always taking the first date in a break clause and ignoring the notice long-stop), not to re-abstract the portfolio by hand.

Using the database once fields are confirmed

A queryable lease store earns its keep when other teams stop asking for PDFs for routine questions. Asset management can list upcoming tenant breaks and rent steps without a consultant pass. Credit and valuation can see service charge cap coverage before they model recoverability. Leasing can filter vacancies by permitted use before they spend legal budget on a deal that the lease cannot accommodate.

Keep identifiers aligned with the rest of property ops: building code, unit ID, lease ID, and document ID. Abstracts that cannot join to the rent roll become another silo. When a tenant is screened or a unit is priced at lease-up, those processes should read confirmed passing rent, term, and use, not a parallel spreadsheet. Compliance checks should run against the same confirmed clause set so “what we abstracted” and “what we test” do not drift.

Access control follows the documents. Abstracts inherit who may see the underlying lease. A searchable database is still a copy of confidential terms.

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.

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