We run our own operation on the architecture we sell
Stated qualitatively. We did not run a measured before-and-after study, so no percentage is claimed.
Context
BoRo's own commercial and delivery operation: inbound leads, scoping, proposals, projects, client communication, invoicing and accounting. The same class of problem we work on for clients, at our own scale.
Operational constraint
Commercial state, delivery state and accounting state lived in different places. Deciding whether a project was economically healthy meant a person reconciling three sources by hand, which is the human middleware pattern applied to ourselves.
Architecture
- Explicit system-of-record boundaries: the ERP owns accounting facts, the platform owns commercial and delivery state, and neither re-states the other.
- Lifecycle states for a scope, from intake through approval, delivery and close, with the conditions required to leave each one.
- An immutable approved commercial snapshot, so the agreed economics of a project cannot be edited after the fact.
- A read model that compares expected against actual by reading accounting and timesheets live, instead of keeping a second ledger.
Implementation
- Client portal and internal panel on a single Next.js application, separated by host.
- Idempotent lead intake with an event outbox and dead-letter handling, so a downstream failure cannot silently drop a lead.
- Accounting runs on Odoo with server-side guards that enforce project attribution on revenue at posting time, through the UI, RPC and API alike.
- Analytic identity per project, so cost, revenue and hours can be attributed without manual reconciliation.
Observed result
- Commercial and delivery state have a single owner each, and the accounting boundary is explicit rather than assumed.
- Approved project economics are immutable server-side: once approved, the figures cannot be changed without an approved change request that creates a new version.
- Expected against actual is derived from posted accounting and timesheets on demand, so there is no second set of numbers to reconcile.
- Project attribution on revenue is enforced by the system rather than remembered by a person.
Stated qualitatively. We did not run a measured before-and-after study, so no percentage is claimed.