Commercial real estate operator
Property operations
One record that the operations desk, the technician in the field, the resident and the outside vendor all work from — and a repair that is finished only when the resident says it is.
Deployed during a completed engagement, May to September 2026. Bedrock does not operate it now.
The operations desk, holding open requests in the state each one is in: what is wrong, which job it is, and when it is due once a date is set. One board for three buildings, where a shared board and somebody’s memory used to be.

Two systems, one commercial real estate operator, one relationship that has since ended. This is the first of them. The second: acquisition intelligence.
What it replaced
A general-purpose board, beside an accounting system of record that was never going to move.
Maintenance ran on a shared board next to the accounting system of record. Neither of them models the life of a work order, so the coordinators held it in their heads: who was responsible for which building, which job was waiting on a part, whether anyone had told the resident, whether the vendor’s insurance was current. A request that arrived by telephone had no owner and no record of having been made.
The accounting system stayed where it was. What changed was everything that had been living on the board and in the coordinators’ memory — one record per request, one data model beneath it, and a surface built for each kind of person who touches it.
One application, four kinds of user
Seventy-five screens over forty tables, and one record of the work underneath all of them.
The desk’s Command view sets the portfolio out as pressure rather than as counts: six lanes for what is overdue, blocked, waiting on a person, in flight, just changed and due today, with each row saying why it matters. The resident sees their own request, the summary written in the field, and the two buttons that decide it. The technician sees three lists and the job in front of him. An outside vendor signs in by a link and sees only the work assigned to them.
The same record carries the work that is not a single repair: recurring schedules, inspections whose findings become work orders, vendor certificates and invoices. Read access is enforced in the database, not in the screens.
Five moves, four holders
The system routes the work and chases it. It cannot finish it.
A resident reports a problem from a phone, with a photo and a sentence, and the request has an owner and a state from that moment. The desk assigns by rule — to whoever covers that building, to the operations queue when no one does — and the desk is told when routing finds nobody. The technician does the work from the field, adding a summary and photographs to the same record. An outside vendor takes it instead when the desk assigns one, and dispatch stops if the vendor’s certificate of insurance has lapsed.
Then the relay reaches the one move the office cannot make on anybody’s behalf. The resident confirms the repair or sends it back, and only operations closes, and only after that answer.
What holds underneath
Three rules the application cannot talk its way around, each enforced where it cannot be forgotten.
In the database
Isolation below the application
Each tenant’s rows are separated in the database itself rather than by a filter somebody has to remember to write, and a test in the build fails if a table arrives without that protection.
In the queue
A message that cannot outrun the change
A notification is queued in the same transaction as the change that caused it, so nothing is announced that did not happen, and every channel carries a key so a retry cannot send twice.
At dispatch
A block, not a report
An expired certificate of insurance blocks the dispatch of an outside vendor rather than appearing in a report somebody reads later. Only a manager can override it, and only with a written reason that is recorded.
A repair, followed through the application
The relay drawn above, happening on one record: the same work order at the desk and on the assigned vendor’s list.
The record carries the intake note, the moves available from the state it is in, the vendor and the costs. Resolved is not closed: the Close control is held while the request is out with the resident, and the only person who can release it is the one who reported the problem. When the answer lands, closing becomes the office’s move again.
A resident has reported a kitchen sink backing up. The coordinator has to get a plumber on it today, and the vendor’s certificate of insurance has to be current before anyone is dispatched.
The requestas it reached the desk
WO-1047TriagedKitchen sink backing up — standing water under disposal
Resident reports the kitchen sink will not drain and water is pooling in the cabinet beneath the disposal. Cabinet base is wet; resident has stopped using the sink. Triaged as high — active water intrusion into casework.
Next moves
- Assigned
- Cancelled
Vendor
Not assigned
Costs
No costs entered yet
Activity
- 22 Sep · 08:14Resident called at 8:05. Sink will not drain, water pooling in the base cabinet. Advised her to stop running the disposal and to clear the cabinet.
- 23 Sep · 17:30Same riser as the 1A laundry drain we’re working. If the tech finds the branch line blocked rather than the trap, flag it before he starts cutting.
The assigned workon the vendor’s own list
Marcus ElleryOutside vendor · signs in by linkAssigned to you
- WO-1047AssignedKitchen sink backing up — standing water under disposalDue 25 Sep 2026
- WO-1037In progressLaundry room floor drain slowDue 24 Sep 2026
- WO-1039ScheduledWater heater thermostat replacementDue 25 Sep 2026
- WO-1043ResolvedToilet running continuouslyDue 22 Sep 2026
- WO-1034VerifiedKitchen faucet cartridge replacementDue 19 Sep 2026
- WO-1031ClosedHot water pressure low in showerDue 16 Sep 2026
The completed recordback at the desk
WO-1047ResolvedKitchen sink backing up — standing water under disposal
Resident reports the kitchen sink will not drain and water is pooling in the cabinet beneath the disposal. Cabinet base is wet; resident has stopped using the sink. Triaged as high — active water intrusion into casework.
Next moves
- Verified
- In progress
Vendor
Marcus Ellery
Costs
$227.50
- Labour
- Cleared branch line to riser, reset trap
- $185.00
- Materials
- P-trap kit and cabinet base gasket
- $42.50
Activity
- 22 Sep · 08:14Resident called at 8:05. Sink will not drain, water pooling in the base cabinet. Advised her to stop running the disposal and to clear the cabinet.
- 23 Sep · 17:30Same riser as the 1A laundry drain we’re working. If the tech finds the branch line blocked rather than the trap, flag it before he starts cutting.
- 24 Sep · 11:15Marcus cleared the branch line back to the riser and replaced the trap assembly. Resident confirmed the sink drains and the cabinet base is dry.
What people can now do
Four kinds of user, each with a surface built for the way they touch the record.
- The resident canreport a problem from a phone with a category and a photo, follow it through Submitted, Scheduled, In progress and Completed, and say whether it is fixed — or send it back.
- The desk cansee what needs a person across every building — six lanes in the Command view, each row saying why it matters; assign, reassign and hold work; and close a request — but only after the resident has answered.
- The technician canwork from three lists on a phone, open the exact job from a text message, attach photos, mark it waiting on a part or fixed, and hand it to another technician without calling the desk.
- The vendor canopen only the work assigned to them from a link, with no staff account and nothing else visible. Dispatch stops when their certificate of insurance has expired unless a manager overrides it with a written reason.
What was running, and what was only built
Deployed is not adopted, and the line between them is drawn here rather than described.
Resident request to confirmation
Ran in production
Real resident sign-ins and a full lifecycle, delivered end to end to a handset during the engagement.
Notifications
Verified in production
Email and text verified delivered in production; in-app verified for staff. Browser push and app push were built; neither was verified on a device.
Below this line: built, and not in use when the engagement ended
The desk · Command
Built, never used
Built behind a flag during a migration window; no operator had used it in production as of the July 2026 audit, and no later use is evidenced.
Field technician surface
Built, not released
Built and verified at device sizes. Not released to staff.
Vendor dispatch and the insurance gate
Built, never deployed
Finished at the close of the engagement, after the last deployment.
Recurring work, inspections, invoices
Built, use not evidenced
Implemented and wired. Routine use during the engagement is not evidenced.
Response times, completion times and adoption were never measured, and no figure has been estimated in their place.