appscript.dev
Blog Sheets Gmail

How I track my rental properties in one spreadsheet

Rent, expenses, and reminders for Northwind's owner's property side gig — fully self-managed.

By Awadesh Madhogaria · Published Oct 4, 2025

Alongside Northwind I own four rental units. Four is an awkward number: too many to keep in your head, too few to justify property management software.

That software exists and it is fine, but it is priced for a different business than mine. It costs roughly £20/door/month and assumes you have 50 doors and a team, where I have 4 doors and an evening here and there. At my scale the cost and complexity both outweigh what it would save, so a spreadsheet plus Apps Script sits exactly at the right size.

So I run the whole thing from one spreadsheet with a few scripts behind it. It tracks the rent, the expenses, and — most importantly — the dates I cannot afford to forget.

How it works

The spreadsheet is four tabs, and each one does one job: Properties has four rows, one per unit; Tenants holds the lease end date, rent amount, and contact details; Expenses records every cost, categorised; and Reminders lists rent due, gas safety checks, and insurance renewals. That is the entire system — everything else is a script reading those tabs.

Three scripts do the recurring work on different schedules:

  1. Weekly — it parses my bank notification emails and compares rent received against rent expected, flagging anything short or missing.
  2. Monthly — it builds a simple profit-and-loss per property from the Expenses tab and the rent log.
  3. Daily — it checks the Reminders tab and emails me anything due in 30, 7, or 1 days.

The reminders tab is the part that genuinely earns its keep, because the expensive mistakes in property are missed dates, not missed pennies. A lapsed gas safety certificate is a legal problem, a missed insurance renewal is an uninsured month, and a lease end that creeps up gives you no time to re-let. The daily script gives three nudges per date — 30, 7, then 1 day out — so a deadline has to get past me three times before it becomes a problem.

What broke and what I left manual

The rent-matching script was the fiddly part. Bank emails change format, and a tenant paying a few days early or in two parts confuses a naive match. So the script does not try to be clever — it flags a mismatch and leaves the judgement to me. It never marks rent “paid” on its own; it only raises a flag. Chasing a late tenant stays manual, because that is a conversation, and categorising an unusual expense stays manual, because guessing is worse than asking. The automation surfaces the problem; I still make the call.

Was it worth it

Plainly, yes:

  • Four units run from one spreadsheet, with no monthly software fee.
  • Rent shortfalls surface within a week instead of at year-end.
  • No certificate, renewal, or lease end has slipped past the three reminders.

Tools are priced for a typical customer, and “typical” is rarely you. At four doors, the job is really just dates and arithmetic — and a spreadsheet with a few triggers handles both without a subscription.