Lease abstraction AI solved a simple, expensive problem for a Baltic logistics property developer: a lease signed on Friday should have its terms in the ERP and its deadlines in someone’s calendar on Monday, without anyone re-reading forty pages. We built a layer on top of the company’s existing ERP and property module that reads each new lease, extracts every clause with a reference, prepares the ERP fields, and turns every date in the contract into a task for the right person.
The problem: the important dates are years away
A logistics park lease runs for five, seven or ten years. It carries far more than rent and area: separate rates for warehouse, office and mezzanine space, indexation rules, bank guarantees and deposits, insurance certificates the tenant must deliver every January, yearly service-charge reconciliations, break options, build-to-suit obligations and renewal notice periods.
The ERP holds the invoice. The document holds the obligations. Someone has to carry the obligations from the PDF into the systems by hand, and the ones that matter most are the easiest to lose: a renewal notice due seven years from now is forgotten by a person, never by a system. Leases also contradict themselves more often than anyone likes to admit. A rent-indexation clause in one chapter can name a different index from the one in the chapter that defines it.
What we built
- New leases arrive where they already live. A signed PDF in SharePoint or Outlook is picked up automatically.
- The AI model reads it inside the company’s Microsoft environment. Data is not used to train the model. For a seven-year multi-tenant warehouse lease, it extracted 71 clauses, each with its clause number, and prepared 55 fields for the property module of the ERP.
- A person checks the flagged points. In that lease, 6 values were marked for a human decision before anything is written, including the two clauses that named different indexation indices. These flags are part of the process, not a defect.
- Fields go to the ERP through its API, in the format the property module expects, with CSV and JSON exports for integration.
- Every date becomes a task. The same lease produced 13 deadlines, 5 of them calculated rather than written (for example, “30 days after the start of the lease”). Tasks are grouped by urgency, carry the responsible role (finance, property management), and feed reminders in Outlook or Teams.
Two more modules use the same principle. A weekly market radar collects public news about the Baltic logistics property market, with a link to every source and one line on why it matters for the portfolio. A tenant check looks up each tenant in the public company registers of Lithuania, Latvia and Estonia and flags legal-status changes and late or missing annual reports, each fact with a link to the register.

What changes for the team
| Before | With lease abstraction AI | |
|---|---|---|
| Entering a new lease | Re-typed from the PDF into the ERP | 55 fields prepared, a person approves |
| Finding the source of a value | Re-read the contract | Click the clause number to see the exact quote |
| Contradictions in the lease | Found during a dispute, if at all | Flagged before the data is saved |
| Renewal and break notices | In someone’s memory or calendar | Captured on signing day, tracked across the portfolio |
| Tenant risk | Static data bought once | Registry checks with links, refreshed regularly |
The practical shift is timing. The obligations in a lease are captured the day it is signed, not the month before a deadline, and the whole portfolio’s dates sit on one timeline.
Where people stay in control
Nothing is written to the ERP without a person approving the flagged values. The extraction sees the dates in a contract, not whether the work was done, so a passed date is marked “check”, not “missed”; only a person or the ERP can confirm it.
We were also clear about limits. The radar’s “why it matters” line is the model’s comment, not a quote from the source. And there is no free news API for the Baltic states, so news is collected by search and filtered, which is the one part that needs more tuning than the rest.
Where else this works
- Shopping centres and offices: leases, amendments, turnover rent and service-charge rules in one data row per unit.
- Insurance and banking: product terms and fee schedules turned into a parameter table with clause references.
- Procurement: supplier contracts with delivery, penalty and warranty deadlines.
Related use cases: Shopping centre data analytics · Insurance policy document extraction · Supplier invoice reconciliation. All Contracts & documents to data use cases · How we deliver this: Custom AI solutions · Document extraction as a product: extriq
FAQ
Does it replace our ERP or property management system?
No. It is a layer on top. The ERP stays the system of record; the AI prepares the fields and the deadlines and hands them over through the API.
What happens when the lease contradicts itself?
The conflicting clauses are flagged side by side, with quotes, and nothing is saved until a person decides which one applies.
Where is the data processed?
Inside the company’s own Microsoft environment. Contract data is not used to train the model.
Want to see one of your signed leases turned into fields and deadlines? Talk to us