Lease agreement data extraction
Tavnit abstracts leases into structured records: parties, demised premises, term, rent and review dates, break clauses, service charge basis and repair obligations. A portfolio held as PDFs becomes a table where the next rent review is a filter rather than a reading exercise.
Why this is painful
Lease abstraction is a well-established manual job precisely because the answers are buried in drafting rather than printed in fields. Firms pay for it, repeatedly, and the resulting spreadsheet goes stale the moment a lease is varied.
The cost of not having it is specific and expensive: a missed break date, an unexercised option, a rent review that passed without challenge.
What to extract
| Field | Why it needs care |
|---|---|
| Landlord, tenant and guarantor | Legal entities rather than trading names, and frequently varied by later deeds. |
| Demised premises | Described in prose and by plan reference, rarely as a clean address. |
| Term, commencement and expiry | The spine of every other date in the document. |
| Rent and review dates | Review basis — open market, indexed, stepped — matters as much as the amount. |
| Break clauses and conditions | A break right with unmet conditions is not a break right. Extract both. |
| Service charge and repair obligations | Where liability actually sits, and usually the longest clauses in the document. |
What makes leases & property hard
Dates are defined, not stated
A lease rarely prints the break date. It says the tenant may break on the fifth anniversary of the term commencement, giving six months' notice. Extract the commencement, the anniversary and the notice period as fields, then let a formula Cleaner compute the actual deadline — which is the date you needed.
The operative document is often not the lease
Deeds of variation, licences to alter and side letters change the position, and the original lease still reads as though they do not exist. Process each as its own run with its date captured, so the current position is derived from the full set rather than from whichever PDF someone opened.
A conditional right read as unconditional is a liability
Break clauses are routinely conditional on vacant possession or rent being paid up to date. Capturing the right without the conditions produces a portfolio table that is confidently wrong, which is worse than no table. Extract conditions as their own field and review them.
How the pipeline handles it
- Flows — Extraction hints are essential here — the model needs to know what a break condition is, not just where to look.
- Cleaners — Computes review and break deadlines from commencement dates and notice periods.
- Buckets — The portfolio as a table: which leases break next year, sorted by notice deadline.
- Human in the Loop — Review every abstraction. The cost of a wrong date here is measured in years of rent.
Common questions
- Can it compute break and review dates?
- Yes. Extract the commencement date, the anniversary the right attaches to and the notice period, then a formula Cleaner derives the actual deadline — which is usually what you wanted rather than the clause itself.
- What about deeds of variation?
- Process each document as its own run with its date captured as a field. The current position then comes from querying the whole set rather than assuming the newest file is authoritative.
- Does it capture the conditions attached to a break clause?
- It should, and the page argues it must — a break right recorded without its conditions produces a portfolio table that reads as certain and is not. Extract conditions as their own field and review them.
Other document types
Try it on one document
Build a flow, send a real leases & property through it, and see what comes back. Free credits to start.
Start free