Real estate
Real estate apps that survive the second market
Most property builds work in one city and break in the next. The cause is a data model chosen in week two, before anyone knew the rules changed.
What decides a real estate build
4 things that decide this
- 01Jurisdiction has to be a field on the property, not a branch in your code. Deposit rules, notice periods and late-fee caps are city and state law.
- 02Rent moves on ACH, and ACH comes back days later. A ledger that marks rent paid when the payment is submitted will be wrong that week.
- 03Coliving rents a room. Standard property software believes an apartment is one rentable thing, which is why operators end up back in a spreadsheet.
- 04MLS listing data is licensed one MLS at a time. RESO reports 489 functioning MLS systems in the United States, so adding a market is a contract before it is a sprint.
Four buyers who share a sector and nothing else
An acquisitions analyst and a coliving founder buy opposite products. One needs to underwrite a deal before a faster bidder signs it. The other needs six beds inside one apartment to stop colliding. Build for both at once and you serve neither.
We work at two of these four points. If you run an enterprise team, you usually need something sitting beside a system of record you will never replace. If you are a founder, you need the first production build. You get the same engineers either way.
- 01Investors and analysts buy underwriting, comps and portfolio reporting. That is the SmartREI shape.
- 02Coliving and short-term rental operators buy room-level inventory and member operations. That is TomoDomo.
- 03Property operations buys dispatch, rent collection and owner statements, usually beside an ERP they keep.
- 04Brokerages buy listing search and lead routing, and every market is a separate licence.
Sector context
The numbers that shape a build here
489
functioning MLS systems in the US, licensed one at a time (RESO)
90%+
of MLSs have RESO-certified Web API services (RESO)
2
real estate systems we run: United States and Switzerland
22
published case studies across the firm
Where a property build goes wrong
Five failures we look for first. Each looks like a business problem and is really a data-model decision made early.
| Symptom | What it usually is | What has to change |
|---|---|---|
| The second city breaks the product | One state's deposit and notice rules were written into code. | Jurisdiction as a field on the property, with the rules held as data. |
| Rent shows as paid, then comes back | The ledger treated a bank debit as settled money. | Payments modelled as states, so nothing downstream fires on submitted. |
| Coliving needs a workaround per building | The software believes an apartment is one rentable thing. | A room-level model, with overlapping contracts inside one apartment. |
| Last month's owner statement cannot be reproduced | Corrections were written as updates over the original rows. | An append-only ledger with reversing entries, and statements stored as snapshots. |
| Two analysts value one asset differently | Assumptions live in a spreadsheet, not the system. | Typed inputs, deterministic maths, and the source page for every extracted number. |
The work we take in this sector
Investment analysis
Underwriting inputs, cash-flow and return engines, scenario comparison and investor reporting. Built for SmartREI on React and AWS, with HubSpot behind the pipeline.
Room-level operations
Residents, rooms, bookings and payments where the rentable object is a bed, not a unit. Built for TomoDomo across Swiss cities, with Stripe on the money and Skribble on signatures.
Lease and rent-roll extraction
Pulling terms out of leases and rent rolls into fields a human can check. Every extracted number links back to its clause and page, and anything below the confidence line routes to a person.
Renewal and option dates that must not pass quietly
Options, notice windows and escalation dates become scheduled obligations with an owner and an escalation path. A date sitting in clause text has no clock attached to it.
Owner and investor reporting
Ownership nests: fund, then entity, then property, then unit. Each investor sees one slice. This is a permissions and ledger problem long before it is a dashboard problem.
Sitting beside an ERP you keep
Yardi, RealPage and AppFolio integrations are gated partner relationships, and you usually sponsor the application yourself. We design an adapter layer so your second system is a new adapter rather than a second rebuild.
- PropertyJurisdiction is a field here
- RulesHeld as data, not branches
- DepositA held liability with a clock
- NoticePeriods differ per city
- DatesLocal calendar, never UTC
A lease ending on 31 August ends at a property-local boundary. Servers running in UTC send a statutory notice a day late, which is a legal problem rather than a cosmetic one. Portfolios crossing timezones make this routine.
Extract the lease. Do not let the model do the maths
Reading leases and rent rolls is the strongest real use of AI in this sector. Someone currently keys 200 leases into a spreadsheet, and a missed amendment quietly invalidates the whole model. Extraction fixes that.
The maths is a different job. A model that calculates a cap rate produces a hallucinated cap rate, and it will look reasonable. So the model reads and the code computes. Every field carries a link to the clause it came from, and low confidence goes to a human queue rather than into the model.
- Commercial leases carry clause logic: escalations, options, recoveries, exclusions. Those change the numbers.
- Ask any vendor what happens to the fields the model was unsure about. The answer tells you whether a human is really in the loop.
- Report per-field confidence on every extraction, so a reviewer checks the weak ones.

Systems where the data model was the problem
“They will treat your vision like their own and build it that way.”
Ron Klabunde · Founder, SmartREI ↗
What these builds run on
SmartREI
TomoDomo
Where we usually build
Questions investors and operators ask
01What does it take to build a real estate app that works in more than one market?
Treat jurisdiction as a field on the property and hold the rules as data. Deposit caps, deposit-return deadlines, notice periods, late-fee caps and grace periods are set by state and city law. Code one state's rules as branches and your second market needs rework. That rework usually reaches the ledger and the notice templates too. Getting this right at the start costs very little. Retrofitting it does not.
02Can AI read our leases and rent rolls accurately?
It reads them well and it must not calculate from them. Clause extraction with per-field confidence is the strongest genuine AI case in this sector, because the alternative is manual keying that silently drops amendments. Two rules make it usable. Every extracted field links to its clause and page. Anything under the confidence threshold goes to a review queue instead of into the model. Accuracy depends on your lease set, so ask any vendor quoting a rate to show it on your own documents.
03Why did our rent collection numbers turn out to be wrong?
Almost always because the system treated an ACH debit as settled money. Returns arrive days later for insufficient funds, a closed account or an unauthorised debit. By then the receipt went out, delinquency updated, a late fee may have been assessed and a notice may have been cancelled. Model payments as a state machine, from initiated through pending to settled or returned. Nothing downstream should fire on submitted, and a return has to reverse every derived record.
04Our software cannot handle renting by the room. What changes?
The rentable object has to become the room or the bed. That is a change to the core of your data model, not a setting. Standard property software assumes one lease per unit, so coliving operators end up running workarounds per building and reconciling in a spreadsheet. Contracts overlap inside one apartment, members swap rooms mid-term, and deposits and utilities are apportioned. We built this shape for TomoDomo across Swiss cities.
05We are launching in Europe. What catches teams out?
Retention stops being one global setting. Tenant applications carry identity documents, income data and household composition, and each category needs its own lawful basis and its own clock. Switzerland adds something people miss. Under the revised Swiss data protection act, in force since September 2023, penalties can fall on responsible individuals rather than only on the company. That is why Swiss clients raise data handling in the first meeting, which we met on TomoDomo.
06How do you price a real estate build?
Scoping calls cost nothing. Where the honest answer needs us inside your existing codebase, we run a paid two-week diagnostic first, and it ends in a fixed price. Three things drive the number. How many markets you need at launch. Whether a gated integration sits on the critical path. How much of your workflow is deterministic rules rather than a model. We will not quote before seeing those, because a figure given then is a guess wearing a decimal point.

