AI Roadmap
A living doc. Prioritised by time-per-week saved for a PM running 150 doors, with an eye to AU-legal leverage as a moat.
What's already live: see AI Overview — seven surfaces today.
Tier 1 — biggest weekly time drain, easiest to ship
These are the next 4 AI features in priority order.
A. Routine inspection report writer — ✅ SHIPPED (text-only first; photos next)
Saves: 4–6 hours/week. 12 quarterly inspections × 15-20 min of prose writing.
Live: POST /api/v1/inspections/draft. UI at Inspections in
the admin sidebar. Full documentation:
Inspection Report Writer.
How it works: PM walks the property with the form open on phone /
tablet, ticks a per-room checklist (default 6 standard rooms × 4-7
items each, all biased to GOOD so PMs only touch deviations), adds
free-text notes where conditions are FAIR / POOR. Backend hands
checklist + metadata to Claude (or HeuristicInspectionReportDrafter
as fallback) which produces:
- Multi-paragraph AU-English prose report organised by room
- Safety flags automatically extracted (smoke alarms, gas, electrical, structural, mould)
- Follow-ups auto-generated from POOR-condition items as imperative sentences ("Replace range-hood filter in kitchen")
- Sworn-by sign-off block
Per-section copy buttons + a "Copy full report" button for paste into the PM's normal email or owner-digest flow.
Photos are not yet wired. Once the photo-upload infra is fully plumbed across the app (currently partial), Claude vision will caption + reference photographs in the prose. Tracked as a follow-up under feature M (Condition-report enrichment from photos).
Commercial impact: quarterly inspections are the single biggest "this drains my whole afternoon" task in routine PM work. Saving 4-6 hours/week per PM is the kind of multiplier that converts pilots to paid.
B. Rent arrears comms ladder (state-aware) — ✅ SHIPPED
Saves: 2–3 hours/week. 5-10 arrears chases/week × 15 min of template-copying + state-law hunting.
Live: POST /api/v1/notices/draft-arrears. UI at Notices → Rent
arrears ladder in the admin sidebar. Full documentation:
Rent Arrears Ladder.
How it works: Claude picks the right rung of the arrears ladder based on days-overdue:
- 1–6 days → friendly reminder (informal, no statutory form)
- 7–13 days → Notice to Remedy Breach (state-specific form)
- 14+ days → Notice of Termination (terminal state-specific form)
State-specific form references for all 8 AU jurisdictions (QLD Form 11,
NSW s 88 RTA, VIC s 91ZM RTA, WA Form 1A/1C, SA Form 2, TAS s 42,
ACT, NT). HeuristicArrearsNoticeDrafter serves as the no-LLM fallback
with identical form references.
Commercial moat confirmed: no generic global SaaS ships with correct AU state-level notices out of the box. PropertyMe doesn't touch legal wording at all. This is the kind of feature that makes a PM say "you know my job".
C. Entry notice generator — ✅ SHIPPED
Saves: 1–2 hours/week. 15+ entry notices/week × 5 min of form-picking.
Live: POST /api/v1/notices/draft-entry-notice. UI at Notices →
Entry notice in the admin sidebar. Full documentation:
Entry Notice.
How it works: PM picks state + reason + proposed entry time → Claude drafts the notice with the correct statutory minimum notice period and names the state-specific form:
- Emergency → 0h (no statutory form — exception applies)
- Repairs → 24h minimum
- Routine inspection / valuation → 7 days
- Sale viewing → 14 days
- Other → 7 days (conservative default)
Form references cover all 8 AU jurisdictions (VIC s 85 RTA, NSW s 55 RTA,
QLD Form 9, WA / SA / TAS / ACT / NT). HeuristicEntryNoticeDrafter
serves as the fallback with identical form references and notice periods.
PDF export is a near-term follow-up (PMs currently copy the subject
- body to clipboard and paste into their email flow). Landing alongside SES delivery.
D. Owner-churn early warning
Saves: ½ hour/week scanning + retention-critical. Losing a 20-property owner ≈ $20k/year.
Pain: An owner gets quiet, misses a digest, starts complaining about response times. By the time the PM notices, they're already talking to another agency.
How: Claude reads owner email sentiment (90 days) + digest-open rate (if we get SES delivery stats) + complaint frequency + approval response latency. Outputs a per-owner risk score + one-sentence "why" ("sentiment in last 3 emails trended negative; no digest opens in 45 days").
Heuristic fallback: count of NEGATIVE keywords + digest open rate
(if available) + days-since-last-interaction. Rules-based flags.
Ship: ~½ day for the detector; depends on having email reply sentiment signal (SES inbound → IMAP → Claude) which is ~2 days of wiring.
D3. Photo-based triage — ✅ SHIPPED
Saves: 5–10 min per ambiguous report — and reduces the rate of "dispatched the wrong contractor" mistakes for short text bodies.
Live: photo-upload UI on the public /report/{token} page (up to 3
photos, ≤ 8 MB each, JPEG/PNG/WEBP/HEIC); backend stores them in S3 via
DocumentStorage; AI triage feeds them to Claude as base64 image
content blocks alongside the text. Full documentation:
Public Report Page and
AI Triage.
How it works: When the PM clicks Suggest triage in the inbox,
TriageRequestWithAi loads any attached photos via
MaintenancePhotoRepository, pulls the bytes from DocumentStorage,
and forwards them to ClaudeTriageAssistant as Photo records. The
assistant builds the Anthropic message with image blocks first, then a
text block. Prompt v3 instructs Claude to treat the photos as primary
evidence and lower confidence when the photo contradicts the text.
Why this matters: "Leak in bathroom" is ambiguous — could be a slow drip or a flooded floor. With a photo the AI's category + urgency become reliable enough to drive auto-dispatch suggestions. Without one, short text reports often need PM judgement before any contractor goes out.
Heuristic fallback: the heuristic classifier ignores photos (no vision capability without an LLM); text-only classification still runs and the suggestion is flagged "Human triage required".
D2. Inbound-email classifier (drives the email-to-maintenance feature)
Saves: 30-60 min/day per PM. Tenant emails currently arrive as free-form prose; PM mentally parses each one and copies the relevant bits into a maintenance request form. Claude does that parsing in 1-2 seconds.
Pain: Most tenants who report problems email rather than use forms. PMs spend morning triaging an inbox full of mixed content (rent queries, lease questions, repair requests, generic complaints) before any of it becomes actionable in PMFriend.
How: for every email arriving at the agency's PMFriend intake address, Claude classifies and extracts:
{
"is_maintenance": true,
"confidence": 0.92,
"category": "PLUMBING|ELECTRICAL|HVAC|PEST|CLEANING|...",
"urgency": "EMERGENCY|NORMAL|INFO",
"suggested_scope": "<one-sentence summary, AU English>",
"extracted_location": "kitchen sink|null",
"is_followup_to_existing_issue": true,
"spam_indicators": []
}
Three confidence buckets drive the UI:
- > 0.85 → auto-create DRAFT request, surface in PM inbox tab
- 0.5 – 0.85 → DRAFT created but flagged "needs review"
- < 0.5 → no draft; lands in "Other" filter for manual handling
Heuristic fallback: keyword classifier (leak|broken|not working |smell|electrical|water etc.) + simple urgency detection
(emergency|urgent|asap). Same shape JSON, lower confidence ceiling.
Ship: ~½ day for the classifier; depends on inbound-email infra landing first (see Product Roadmap §8a).
Tier 2 — higher stakes, compounds existing features
E. Bond claim builder
Saves: 2-4 hours per end-of-tenancy. Tribunal-defensible quality improvement.
Pain: End-of-tenancy is the #1 tribunal case category. PMs itemise bond claims from memory + photos + a vague mental model of "wear vs damage". Half the losses are because the claim pack is weak.
How: Claude reads ingoing + outgoing condition reports + dollar estimates + photo evidence, generates an itemised claim with line-item reasoning. Dispute-defensible because the reasoning is logged, not just the $ amount.
Ship: ~3 days (depends on condition report structure being in PMFriend; currently partial — see Tenants Overview).
F. Tribunal/VCAT case pack assembler — ✅ SHIPPED
Saves: 3-6 hours per case. The biggest "I can't go back to PropertyMe" feature on the entire roadmap.
Live: POST /api/v1/case-packs/draft. UI at Case packs in the
admin sidebar. Full documentation:
Tribunal/VCAT Case Pack.
How it works: PM picks property + date range + case type + optional
free-text background → backend pulls all maintenance requests + work
orders at the property within the window → builds a chronology sorted
oldest-first → hands to Claude (or HeuristicCasePackDrafter as
fallback) → returns:
- Multi-paragraph Statement of Facts (factual prose, AU English)
- Chronology with exhibit IDs (
MR-abc12345,WO-def67890) - Numbered exhibit list
- Per-case-type relief template (rent arrears → terminate + bond claim; bond claim → release; failure-to-repair → defending; etc.)
- Prominent legal disclaimer
Claude is told the chronology is the only factual basis — no invented events, no statutory citations it can't justify, generic phrasing ("under the Act") instead of specific section numbers the PM hasn't verified.
Commercial impact: end-of-tenancy + arrears tribunal cases are the #1 disputed category in AU residential PM. A PM who's lost a VCAT case before because of a weak evidence pack will not switch back to a system without this feature.
G. Lease-renewal rent advisor
Pain: "Should I renew this tenant at $640/wk or push to $680?" Currently a gut call.
How: Claude reads tenant payment history + WO cost last 12 months + scraped realestate.com.au suburb comparables. Recommends a number with justification.
Ship: ~1 week (realestate.com.au scrape is the hard part).
H. Contractor quote comparator
Saves: 20 min per multi-quote job.
Pain: 3 PDF quotes for a $15k roof job. Comparing line-by-line by hand takes forever.
How: Claude reads the quotes, extracts line items, produces a side-by-side table with flags ("quote B omits waste disposal", "quote A hourly rate 40% above median"). PM picks in 30s.
Ship: ~2 days (PDF extraction is the variance).
I. After-hours tenant emergency triage chatbot
Saves: PM's sleep. Enough said.
Pain: Tenant reports burst pipe 11pm. PM's phone rings.
How: Tenant interacts with a Claude chatbot via SMS//report page.
Claude asks 3 diagnostic questions ("water contained? mains turned
off?"), then either auto-dispatches emergency plumber (if under cost
ceiling and contractor is on-call) or pages the PM with a summary.
Ship: ~1 week.
Tier 3 — strategic / differentiating
J. AU compliance calendar auto-generator
How: Property features (pool Y/N, gas Y/N, smoke-alarm type) → 12-month forward compliance plan per state. We already have the rules; AI generates the schedule including tenant-availability clustering.
K. Multilingual comms
Pain: High ESL tenant base in AU (Mandarin, Vietnamese, Arabic). Tenants submit broken English → mistriaged. And on the trades side, workers (especially in the Gulf) often understand English only partially — enough to get by, not enough to follow a written job scope without extra explanation or translation.
How: Claude detects language → translates inbound to English (for triage) + translates outbound back to tenant's language. Keeps English record for tribunal use.
Shipped: worker task translation.One-click translation of the job scope into the worker's language (Hindi, Urdu, Malayalam, Tamil, Bengali, Nepali, Tagalog, Sinhala, Arabic) on the magic-link job page. Content-only, RTL-aware, best-effort with English fallback. See Magic-Link Dispatch.- Still to do: inbound tenant-language detection + outbound tenant replies.
L. Portfolio health score per PM
How: Weekly AI-generated anomaly summary per PM. "Sarah's portfolio has 3x normal arrears this month — 2 tenants at same property just lost jobs."
M. Condition-report enrichment from photos
How: Ingoing condition report is a tribunal-critical document. PMs hate filling in the form. Photo upload → Claude vision tags rooms and flags (scuff / scratch / stain / new).
The photo-upload + Claude-vision foundation is now live on the public maintenance-report page (tenant uploads up to 3 photos, classifier reads them via Anthropic image content blocks). Same pipeline can be re-used for condition reports — the remaining work is the inspection-side form + a different prompt.
N. Invoice OCR + reconciliation
How: Contractors send invoices as random PDFs. Claude vision → structured line items → auto-match to WO → flag "invoice $420 but ceiling was $350, 20% over".
What's NOT on this roadmap (and why)
- Autonomous email sending — violates the human-in-the-loop principle. Nothing sends without PM review.
- AI-driven tenant screening / selection — discrimination-law minefield. Would require a regulatory moat we don't have.
- AI-written tribunal representations — legal-advice adjacency. Not our lane.
See also
- AI Overview — what's already shipped
- Product Roadmap — non-AI features