Founder & Lead Engineer, RAITHub
Lease management software needs nine core features: lease records, terms and clauses, rent schedules with escalations, renewals and notices, deposits, e-signature, document storage, expiry alerts and reporting. The hard part is the time-driven work, such as a rent increase or a notice deadline that falls on a date nobody is watching. Commercial leases add more clauses, service charges and lease-accounting data.
If you would rather have it built for you, see how RAITHub would build this below.
What features does lease management software need?
A lease is a contract with a calendar attached. Every feature below exists either to store what the contract says or to act on a date it sets. Most failures in lease tools come from the second group: dates kept in a spreadsheet column, not in a job that runs.
| Feature | What it stores or does | What goes wrong without it |
|---|---|---|
| Lease record | Parties, unit, start and end dates, status (draft, active, renewing, ending, ended) | Two "current" leases on one unit; nobody knows which is binding |
| Terms and clauses | Structured fields for break clauses, notice periods, permitted use, pet or subletting rules | Clauses live only in a PDF, so no rule can act on them |
| Rent schedule and escalations | Amount, frequency, due day, and each future increase (fixed, stepped or index-linked) | Rent increases are missed for a year, or applied twice |
| Renewals and notices | Renewal options, notice windows, generated notices with a sent date | A notice goes out a day late and the option or deadline is lost |
| Deposits | Amount held, where it is held, deductions, return date | Disputes at move-out with no record to settle them |
| E-signature | Signing workflow and a signed, timestamped copy | Printed, scanned and emailed leases with no version history |
| Document storage | The lease, addenda, inspection reports and notices, linked to the lease record | The addendum that changed the rent is in someone's inbox |
| Alerts | Scheduled reminders for expiry, renewal windows, escalations and insurance certificates | Dates depend on someone remembering them |
| Reporting | Rent roll, expiry schedule, arrears, and data exports | Owners and accountants rebuild the numbers by hand every month |
Tenant-facing features such as online rent payment and maintenance requests sit next to these. They are covered in tenant portal app features and online rent collection systems.
How should software handle lease renewals and expiry alerts?
Treat renewal as a state the lease moves through, not a note on the record. An active lease enters "renewing" when its notice window opens, and it leaves that state with a recorded outcome: renewed on new terms, ended, or rolled onto a periodic (month-to-month) tenancy where local law allows that.
Alerts then come from the lease's own dates. The rule we use: a scheduled job computes what is due, writes one row per notice, and refuses to write the same notice twice. That makes the job safe to rerun after a failed night, which matters because nobody watches a job at 2 a.m. PropDesk, the property-management platform RAITHub built, runs 5 daily automation jobs inside a codebase with 1,024 automated tests; the SQL below is a simplified illustration of the pattern, not PropDesk's code.
-- Run daily. Creates renewal-window notices due in the next 30 days.
-- The unique key makes a rerun harmless: no duplicate notices.
CREATE UNIQUE INDEX IF NOT EXISTS lease_notices_once
ON lease_notices (lease_id, kind, due_on);
INSERT INTO lease_notices (lease_id, kind, due_on)
SELECT l.id, 'renewal_window', l.end_date - l.notice_days
FROM leases l
WHERE l.status = 'active'
AND l.end_date - l.notice_days <= CURRENT_DATE + 30
ON CONFLICT (lease_id, kind, due_on) DO NOTHING;
Sending is a second step that reads unsent rows, sends each one, and stamps a sent time. Splitting "decide" from "send" means a failed email provider delays notices instead of losing them, and the sent time is your evidence if a tenant later says no notice arrived.
How do you model rent increases and escalation clauses?
Store the escalation rule as data, then generate the future rent schedule from it. Three kinds cover most leases: a fixed percentage each year, a fixed amount each year, and an increase linked to a price index, sometimes with a cap. Store money as integer cents, never as floating-point numbers.
type Escalation =
| { kind: 'fixedPercent'; percent: number }
| { kind: 'fixedAmount'; cents: number }
| { kind: 'index'; baseIndex: number; capPercent?: number; upwardOnly: boolean }
// Returns the next period's rent in integer cents.
export function nextRent(currentCents: number, e: Escalation, indexNow?: number): number {
switch (e.kind) {
case 'fixedPercent':
return Math.round(currentCents * (1 + e.percent / 100))
case 'fixedAmount':
return currentCents + e.cents
case 'index': {
if (indexNow === undefined) throw new Error('index value required for this review')
let pct = (indexNow / e.baseIndex - 1) * 100
if (e.capPercent !== undefined && pct > e.capPercent) pct = e.capPercent
if (e.upwardOnly && pct < 0) pct = 0
return Math.round(currentCents * (1 + pct / 100))
}
}
}
Two details decide whether this survives a real portfolio. First, "upward-only" and the cap are clauses, so they live on the lease, not in a constant. Second, the index value used for each review is stored with the schedule row, so anyone can see why the rent changed. If you collect rent through Stripe, as PropDesk does, a future price change on a recurring charge can be scheduled with Stripe subscription schedules, which apply sequential phases automatically and allow up to 10 current or future phases. Your lease record should still be the source of truth; the payment schedule follows it.
Whether an increase is allowed at all, how much notice it needs, and which index applies are set by the lease and local law. That is general information; confirm the rules for your jurisdiction with your adviser.
What is the difference between residential and commercial lease management?
Residential leases are many, short and similar. Commercial leases are fewer, longer and each one is different. That changes what the software has to model.
| Area | Residential | Commercial |
|---|---|---|
| Typical term | Often 6–12 months, then renewal or a periodic tenancy | Multi-year, with options to renew or break |
| Rent | Flat monthly rent, sometimes a capped annual increase | Stepped or index-linked rent, rent reviews, turnover rent in retail |
| Extra charges | Utilities, pet or parking fees | Service charges, CAM (common-area maintenance) recoveries, insurance and tax pass-throughs |
| Clauses that need structure | Notice period, pets, subletting | Break dates, renewal options, permitted use, exclusivity, repair obligations |
| Deposits | Often regulated: caps, protection schemes, return deadlines | Rent deposits, bank guarantees, letters of credit |
| Who needs reports | Landlord, sometimes an owner or letting agent | Landlord, asset manager, and the tenant's finance team |
Commercial work is covered in more depth in custom commercial property management software.
Does lease management software need to handle ASC 842 and IFRS 16?
Only if your users are tenants that report under those standards, which mostly means companies leasing offices, shops, warehouses or equipment. Landlord-side residential software usually does not compute lessee accounting entries.
In outline: the IFRS Foundation's IFRS 16 summary says lessees recognise assets and liabilities for leases longer than 12 months, unless the asset is of low value, and the standard applies to periods beginning on or after 1 January 2019. Under US GAAP, Deloitte's guide to ASC 842 explains that a lessee recognises a right-of-use asset and a lease liability for each lease, with an election not to do so for short-term leases.
What that means for software is data, not calculation. A tenant's accountant needs clean inputs: commencement date, term including options reasonably expected to be exercised, the payment schedule, escalations and incentives. A lease tool that exports those accurately is useful; one that claims to produce the journal entries is taking on an accounting job. RAITHub builds the data model and exports, and leaves the accounting judgement, such as discount rates and which options count, to your accountant. This is general information, not accounting advice; confirm with your adviser.
Should you buy, build or hire lease management software?
If you manage your own portfolio, buy first. Build when lease management is part of a product you sell, or when your lease types are ones the tools model badly.
| Option | Example and cited price | Choose this when | Watch out for |
|---|---|---|---|
| Off-the-shelf property management software | Buildium starts at $62 a month on Essential, with e-signature at $5 per document on that plan; AppFolio is quote-only, with a 50-unit minimum on its Core plan | You run a residential portfolio and want leases, rent and maintenance working this month | Commercial clauses, unusual escalations and your own branding are limited to what the vendor supports |
| No-code or template | Airtable Team at $20 per user a month billed annually, with a lease-tracker base and automations | A small team tracking dozens of leases, mainly for dates and documents | Money, permissions and reliable scheduled jobs outgrow it quickly; tenants cannot safely log in |
| Custom build | Market figures in property management software cost: SaaS vs custom | Leasing is your product, you serve a segment the tools handle poorly, or you need commercial lease logic and integrations of your own | You own maintenance, testing and every jurisdiction rule you add |
Prices are from the vendors' pricing pages when this post was written; check them before you decide.
How long does it take to build lease management yourself?
For a developer comfortable with Postgres and a job scheduler: about 2–4 weeks for lease records, rent schedules with escalations, renewal states and alerts, for one jurisdiction and one lease type. E-signature, deposits, tenant logins and payments each add time on top.
The main risk of doing it yourself is the scheduled work. A job that silently skips a night, or sends a renewal notice twice, looks fine in a demo and fails in month seven. Write a test that runs each job twice for the same day and asserts nothing changed the second time, and a test that runs it after a missed day and asserts nothing was lost.
What should the specification decide before anyone writes code?
- Lease states and transitions. Draft, active, renewing, ending, ended, and who can move a lease between them.
- Clause fields. Which clauses must be structured data because a rule acts on them, and which can stay in the document.
- Escalation types. Which ones you support at launch, and where index values come from.
- Roles. PropDesk serves 4 roles (landlord, tenant, contractor and admin) from one codebase; every role is a column in the permission matrix and a set of server-side tests.
- Money flows. Whether rent is collected through a provider such as Stripe or held in your own accounts, which is a licensing question first.
The wider picture, including listings and portals, is in the PropTech software development guide.
Why RAITHub for this
- We have built the lease lifecycle. PropDesk manages leases, maintenance and Stripe rent collection across 4 user roles, with 5 daily automation jobs and 1,024 automated tests.
- QA-first on the parts that run unattended. Escalations, renewals and notices are tested for reruns and missed days before they ship, and CI blocks a merge that breaks them.
- Honest scope. We will tell you which features PropDesk proves and which would be new work for you, such as commercial service-charge reconciliation or lease-accounting exports.
When you don't need us
- You manage your own residential units and an existing product fits. Buy it; it will be cheaper and faster.
- You need lessee accounting computed under ASC 842 or IFRS 16. Use dedicated lease-accounting software chosen with your accountant.
- You need lease templates or advice on landlord and tenant law. That is a property lawyer's job; we build the workflow the rules run in.
How RAITHub would build this
- Scope: the lease record and state machine; structured clauses and rent schedules with fixed, stepped and index-linked escalations; renewal windows, notices and expiry alerts as rerun-safe daily jobs; deposits and document storage linked to each lease; role-scoped access and the reports your owners or finance team need.
- Timeline: a focused first release in 4–6 weeks at fixed scope through SaaS development; adding lease logic behind an existing product is backend and API work of about 6–12 weeks.
- What you receive: automated tests and CI on every merge, handover docs and runbooks for each scheduled job, and full IP assigned to you under an NDA.
- Next step: a free 15-minute technical audit, then a written fixed quote. Book the audit with your lease types, jurisdictions and how rent is collected. More on our real estate work is on the PropTech page.
Frequently asked questions
What is lease management software?
Software that stores each lease's parties, terms, clauses and documents, and acts on its dates: rent schedules and increases, renewal windows, notices and expiry alerts, plus deposits and reporting.
What are the must-have features of lease management software?
Lease records, structured terms and clauses, rent schedules with escalations, renewals and notices, deposits, e-signature, document storage, alerts and reporting. Tenant portals and online rent payment are usually added alongside.
How does software track lease expiry and renewal dates?
A daily scheduled job compares each active lease's end date and notice period with today, creates one notice per deadline, and records when it was sent. A unique key stops a rerun from sending duplicates.
Can lease management software calculate rent escalations automatically?
Yes, if the escalation rule is stored as data: a fixed percentage, a fixed amount or an index-linked increase with an optional cap. Store the index value used for each review so every change can be explained.
Is commercial lease management different from residential?
Yes. Commercial leases are longer and less uniform, with break and renewal options, rent reviews, service charges and pass-throughs, and tenants who may need data for lease accounting.
Does lease management software need to support ASC 842 or IFRS 16?
Only for tenants that report under them. Both standards generally put leases on the lessee's balance sheet, so the software should export accurate dates and payment schedules; the accounting itself is for your accountant.
How long does it take RAITHub to build lease management software?
A focused first release typically takes 4–6 weeks at fixed scope; lease logic added to an existing product takes about 6–12 weeks. You get a written fixed quote after a free 15-minute audit.
Related posts
Ready to discuss your project?
Book a free 15-minute technical audit with our engineering team.