Case study
Leasing Operations System
Two connected web apps on a shared live database: a front-desk “Leasing Desk” for managers and a “Tour Companion” iPad app for leasing assistants, covering five buildings and about 100 tours a week.
I’m the leasing manager. I scoped it with my team, directed the build in Claude and Claude Code, reviewed it, shipped it, and run it in production.
Key results
- 8 of 8 staff use it daily
- 100 tours a week
- ~70% to 100% of tours followed up Before: busy periods
- ~30 min weekly traffic report Was several hours
- 6 months live in production
Problem
One Excel showsheet sat open on many computers through Dropbox. A stray edit on one changed prices everywhere.
To save time, agents reused old emails and sometimes quoted concessions no longer offered, which the company then had to honor. A single one-month concession error costs $4,000–$8,000. A misquoted rent is worse, because it flows into the rent roll and every future renewal.
In busy periods, roughly 25–30% of tour follow-ups were never sent. Each one was a missed lead: a prospect who toured and got no follow-up. Prospects emailed asking which units they’d seen, and there was no record to answer from.
Tour rotation among assistants wasn’t followed fairly, and tour notes lived on sticky notes.
Who it was for
A leasing team of 8, managers and assistants, across five Class A buildings in a 2,600-unit portfolio in Long Island City, NYC, plus the leadership that reads their numbers.
Both apps work alongside the company’s proprietary leasing software, which has no vendor AI in place.
What I built
Two apps on one live database. Managers run the front desk from the Leasing Desk; leasing assistants carry the Tour Companion on an iPad.
Leasing Deskfront deskTour queueFollow-up pipeline
Shared live database
Tour CompanioniPad
Published showsheet both apps
Tours started on iPad Desk queue
Finished tours follow-up pipeline
- One published showsheet. Managers upload the Excel file (or Dropbox sync picks it up) and press Publish. Every Desk and iPad follows the newest published copy, so prices change only when a manager publishes.
- Pricing rules built in. Broker and incentive logic (AND vs. OR incentives, broker OP, net effective rent, per-tour overrides) applies automatically in quotes and emails.
- Email builder. Six templates filled from the showsheet: tour follow-up, inquiry follow-up, welcome, lounge agreement, application confirmation, and lease approval.
- Live tour queue. Fair rotation (whoever has started the fewest tours today goes next), wait estimates, and a “who’s on tour right now” view with estimated return times.
- Follow-up pipeline in the Leasing Desk. Every finished tour lands in Follow-Ups to Send, then moves to a manager check-in. Prospects touring early move to Future Move-Ins.
- Tour Companion on iPad. Live availability with floor plans, a tour planner, a requirements tab, a net-rent calculator, a building cheat sheet, and a 30-question training quiz. It installs to the home screen and works offline.
- Reporting. Weekly traffic reporting and an agent KPI dashboard.
The leasing terms, in one line each
- Showsheet
- The published list of available units with rent, concessions, and floor plans, which every Desk and iPad reads.
- Concession
- Free rent or a credit offered to win a lease, such as “1 month free.”
- Net effective rent
- The average monthly rent once the concession is spread across the lease term.
- Broker OP
- “Owner pays”: the owner pays the broker’s fee.
- AND incentive
- The prospect gets the concession, and the broker also gets the OP.
- OR incentive
- With a broker, the broker gets the OP, and the prospect gets the concession only if the broker waives the OP. With no broker, the prospect gets the concession.
- Per-tour override
- A change to the concession amount or broker OP for a single tour (for example, an unadvertised back-pocket incentive), without changing the published showsheet.
- Rent roll
- The official record of each unit’s lease rent, which renewals are priced from.
Built with
Claude (claude.ai) first, then Claude Code. Firebase (Firestore) for the live database. Single-file HTML/JS apps by design, deployed by hand. Decision records (D1–D17) document every trade-off, including the uncomfortable ones.
My role: scoping with the team that uses it, directing the build, reviewing, shipping, and running it in production.
Demo
- Live demo on synthetic dataComing
- 60–90 second video of the Desk and iPad in useComing
- Screenshots: the live “Right now” view, the email builder, the iPad tour plannerComing
- GitHub repoComing
Demo environment with synthetic data. Production runs on live data that cannot be shown.
What happened
- The whole team uses it. Live for 6 months. All 8 team members use it daily, with no mandate. Staff feedback was collected continuously and shipped, and there was no resistance.
- No more missed leads after tours. In busy periods, about 70% of tours used to get a follow-up. Now every tour does, and senior agents send a second follow-up the team never sent before.
- Reporting time cut. The weekly traffic report dropped from several hours to about 30 minutes, with fewer errors.
- Conversion. Portfolio-wide conversion is up 12.5% year to date, compared with the same period last year. Many factors move conversion, so I don’t credit the tools alone.
- Rollout proposed. My supervisor has proposed rolling it out to other leasing offices.
What I’d change
- Staff logins. The no-login design (D4) was a deliberate speed trade-off for a shared front desk. With wider rollout, each person should sign in.
- An incentive safeguard. A stored list of currently approved incentives, so any override outside it is flagged and confirmed before the email goes out.
What the audit found
During the portfolio cleanup, an audit of the code found that the two apps’ pricing logic had been copied between them and had drifted: five cases where the iPad and the Desk disagreed on a quote. The fix is one shared, tested pricing module that both apps use. The fixes are being made in the demo, test first, and the same fixes go to production next.