Approval Thresholds
Every property has an owner_approval_threshold (dollars). Any work order
whose costCeiling exceeds the threshold waits for owner approval before
it's dispatched.
Defaults
- $500 — default for new properties.
- Editable per property in the Property detail → Overview tab → Owner section.
Different owners have different tolerances — some want approval at $250, some at $2,000. Managing this per-property (not per-agency) matches how owner management agreements actually work.
The flow when a WO exceeds threshold
- PM drafts the WO scope + AI-suggested cost ceiling.
- If
costCeiling > threshold, WO is created with statusAWAITING_QUOTE. SLA clock pauses. - Owner gets an email (PLANNED via SES — currently a copy/paste magic
link) with:
- Property address
- One-paragraph summary of the issue
- The scope
- The cost ceiling and what it would cover
- Approve and Decline buttons
- Owner clicks Approve → WO transitions to
ASSIGNED, contractor dispatched, SLA clock resumes from that moment. - Owner clicks Decline → WO stays
AWAITING_QUOTE. PM follows up (call, renegotiate scope, split into smaller jobs, etc.).
The "no response" case
If the owner doesn't respond within 48 hours, a
MAINTENANCE_URGENT-style escalation fires on the PM's notification
feed. Today the PM is expected to chase by phone. The
AI Roadmap includes an owner-churn-detector that
reads response latency as one signal — an owner who doesn't respond to
approvals is often about to change agencies.
API
PATCH /api/v1/properties/{id}
Content-Type: application/json
{
"ownerApprovalThresholdCents": 75000
}
(75000 cents = $750.)
See also
- Convert to Work Order — where the ceiling is set
- Fortnightly Digest — how approvals are summarised back to the owner