| System | PRD | Usage Audit | Transcript Insights | Eval | Status |
|---|---|---|---|---|---|
| Current Scope | |||||
| 90.io | ✓ | ✓ | ✓ | ✓ | Complete |
| HubSpot | ✓ | ✓ | ✓ | — | In Progress |
| Blueprint | ✓ | N/A (spreadsheet) | ✓ | — | In Progress |
| Mavenlink | ✓ | ✓ | ✓ | — | In Progress |
| Future — Not in current scope | |||||
| BambooHR | — | — | — | — | |
| Jira | — | — | — | — | |
| NetSuite | — | — | — | — | |
| Lattice | — | — | — | — | |
| Workable | — | — | — | — | |
| Confluence | — | — | — | — | |
| DEEL | — | — | — | — | |
Source module assessments, architecture planning, data model design
In progress — 3 of 11 systems assessed
Canonical data model review and sign-off with Zaelab leadership
Gate — must be approved before build begins
Unified person record, authentication, role-based access, permissions
Foundation for every module downstream
Strategic planning — replaces 90.io
In progress — v1 built (126/126 features), integration and polish remaining
Pipeline & contacts — replaces HubSpot
June 2026 deadline — scoped to deals pipeline (S1-S7), contacts, companies
SOW generation — replaces Blueprint
Bridges sales to delivery; enables sold-as margin tracking
Projects, time tracking, invoicing — replaces Mavenlink
Mission critical — 324 users, NetSuite integration required
HRIS (BambooHR), ATS (Workable), Wiki (Confluence), ITSM (Jira), LMS (Lattice), Client Portal, Finance (NetSuite)
Not yet planned — sequenced after core modules ship
Zaelab is a ~$40M technology services company. 300 people. 25+ countries. Two acquisitions in the last year. 9+ SaaS platforms. ~$1.5M/year in software spend. And their CEO still can't answer a basic question about where the business is at.
"We have what the world tells us is a best in class PSA. We have HubSpot, we have Bamboo, we have Jira. And I still can't get a goddamn piece of information to know where the business is at." — Evan Klein
ZOS is a purpose-built, AI-native operating system that replaces Zaelab's siloed SaaS stack with a single platform that owns the data.
"This needs to have persistence and be the actual data storage. I need to sunset these other systems from the world." — Evan Klein
ZOS replaces 11 systems with 4 core modules (first effort) plus cross-cutting platform capabilities. Current status and assessment progress are tracked in the Tracker tab.
The build sequence follows the business flow: CRM (where deals start) → Estimator (where scope is priced) → PSA (where work is delivered and invoiced). EOS runs in parallel as the operational cadence layer.
These are the foundation that makes every module work together. They are as important as the modules themselves.
Remaining systems (BambooHR, Jira, NetSuite, Lattice, Workable, Confluence, DEEL) are future phases, not currently scoped. They will be addressed after the core four modules ship.
The single most valuable capability ZOS can produce — and the one that's impossible with the current stack. It requires connected data across CRM, Estimator, PSA, and Finance.
Today, sold-as lives in Blueprint, staff lives in Mavenlink resource plans, and delivered lives in Mavenlink time entries — three systems, no connection. In ZOS, it's one calculation across the Project lifecycle. See the Data Model tab for the field-level mapping.
Each principle grounded in what Evan and the team said. Runpoint recommendations labeled separately.
This is a living document. Updated as assessments complete, modules ship, and scope refines.
The unified data model that connects all ZOS modules. Each entity replaces fragmented records scattered across 9+ systems. Organized into four layers: People & Org, Business Lifecycle, Operational, and Reference Data.
Sources: 90.io usage audit (18 teams, 216 users, Accountability Chart), HubSpot PRD (437 contacts, 1,447 deals), Blueprint PRD (52 role/region rate combos, 7 approach variants), Mavenlink audit (324 users, 296 projects, 260K time entries), Evan Klein transcript (March 18, 2026), kickoff meeting (March 24-25, 2026).
The foundation. Every other entity references people and organizations. Today, the same person exists in BambooHR, Mavenlink, HubSpot, 90.io, DEEL, and spreadsheets. "Bamboo has the people record. PSA has a people record. There's records all over the place." — Evan Klein
The unified human record. One person, one record, many roles: employee, contact, resource, candidate, user. A person's cost rate and bill rate come from their Role + Region via the Rate Card, but may be overridden per project.
Key fields: name, email, role, discipline, region (NA/EE/WE), team, department, status (active/inactive), cost_rate, bill_rate, skills[], country, start_date
Hierarchical, not flat. A tree structure with parent/child relationships. Represents both internal structure (departments, teams) and external entities (clients, partners). Must support the EOS Accountability Chart hierarchy (Visionary → Integrator → Department Heads → Teams) and the Mavenlink department + geography dual-tree.
Key fields: name, type (client/department/team/practice), parent_id (self-referential for hierarchy), leader_id (FK to Person), accountabilities[] (EOS), members[]
Types:
25+ countries across 3 regions. Geography drives rate cards (NA/EE/WE have dramatically different cost structures), payroll compliance (DEEL), work calendars, and time zones. Not just a field on Person — it's a first-class entity because it cascades across rates, resources, compliance, and scheduling.
Key fields: region (NA/EE/WE), country, timezone, currency, holiday_calendar, payroll_provider (internal/DEEL)
Rate impact: NA bill $195-295/hr, cost $38-143/hr. EE bill $85-205/hr, cost $3-63/hr. WE bill $285/hr, cost $60-100/hr.
Skills, certifications, and proficiency levels. Drives resource matching for project staffing. Mavenlink has a full Skills Library with 4 categories (Certification, Language, Skill, Other) and 1-5 proficiency levels. Blueprint uses Discipline (14 values) as the primary skill axis.
Key fields: name, category, proficiency_level (1-5), person_id (FK)
The deal-to-delivery-to-cash lifecycle. Today this spans HubSpot → Blueprint → Mavenlink → NetSuite with no linkage between them. In ZOS, it's one connected flow. This is where the three-stage margin model lives.
The central lifecycle entity. Starts as a deal in CRM, gets estimated, staffed, delivered, invoiced, and recognized as revenue. One entity, many stages. This is what enables end-to-end margin tracking.
Lifecycle stages: Pipeline (S1-S6) → Won (S7) → Estimation → Staffing → Active Delivery → Invoicing → Revenue Recognition → Closed
Key fields: name, client_id (FK to Organization), service_type, platform, billing_type (T&M/Fixed Fee), rate_card_version, start_date, end_date, stage, hubspot_deal_id, mavenlink_workspace_id, sold_as_margin, staff_margin, delivered_margin
An approach variant for a project. One project can have up to 7 estimate variants (Original, Short Timeline, Phase 2, Beta, AEM, React, Define Phase Only). Each has its own scope, team composition, discount, and resulting margin. The winning variant becomes the "sold-as" baseline.
Key fields: project_id (FK), variant_name, discount_pct, contract_type (T&M/Fixed Fee), total_hours, gross_fees, net_fees, total_cost, gross_margin_pct, avg_billing_rate, is_selected
A deliverable within an estimate. Grouped by Feature Set (epic-level category). Each item has hours broken out by discipline and includes SOW-ready description and assumptions text. The scope template library enables reuse across projects.
Key fields: estimate_id (FK), sequence_id, is_included, category (Feature Set), name (Feature), description (SOW text), assumptions (SOW text), hours_frontend, hours_backend, hours_integration, hours_ux, hours_additional
A person (named or unnamed) assigned to a project for a time period. Links Person, Project, and Role with weekly hour allocations. This is where "staff margin" is calculated — when generic roles from the estimate are replaced with real people who have actual cost rates.
Key fields: project_id (FK), person_id (FK, nullable for unnamed), role, discipline, region, bill_rate, cost_rate, weekly_hours[], total_hours, start_week, end_week
Money in and out across the full lifecycle. Quote (CRM) → Estimate (Blueprint) → Invoice (Mavenlink, 2,922 records) → Payment (NetSuite) → Revenue Recognition (NetSuite). Includes $15.5M AR outstanding.
Key fields: project_id (FK), type (quote/invoice/payment/recognition), amount, currency, date, status, netsuite_transaction_id
The core value proposition. Today this data spans 4 systems with no linkage. In ZOS, it's one calculation on the Project entity.
| Stage | When | Revenue | Cost | Source Today |
|---|---|---|---|---|
| Sold-as Margin | Deal closes, estimate selected | Estimate.net_fees | Estimate.total_cost (generic role rates) | Blueprint |
| Staff Margin | Real people assigned | SUM(allocation.bill) - discount | SUM(allocation.cost) at actual person rates | Blueprint → Mavenlink |
| Delivered Margin | Work complete | SUM(time.hours * time.bill_rate) - discount | SUM(time.hours * time.cost_rate) | Mavenlink |
Day-to-day work entities: time tracking, tasks, EOS cadence, documents, and forecasts.
The universal work record. 260,793 entries, 324 users. Everyone enters time. Feeds project costing, utilization, invoicing, and the "delivered margin" calculation. The highest-traffic entity in the entire system.
Key fields: person_id (FK), project_id (FK), task_id (FK), date, hours, billable (boolean), notes, approval_status (pending/approved/rejected), approved_by, locked
Work items across all modules. Polymorphic — different types share a common base but have type-specific fields. Types include project tasks (from PSA/Mavenlink), EOS to-dos and rocks (from 90.io), and workflow steps (from Jira).
Common fields: title, description, assignee_id (FK to Person), status, due_date, parent_id (self-referential for hierarchy), type
Type-specific: Project Task adds duration, dependencies, milestone flag. EOS To-Do adds meeting_id. Rock adds quarterly_goal, milestones[], on_track status. Workflow Step adds approval chain, stage.
EOS-specific entities that power the weekly cadence: Scorecard Measurables (454 active, tracked weekly), Rocks (quarterly goals with milestones), Issues (IDS process), Meeting records (165+ for Leadership Team), V/TO (vision and traction), and Accountability Chart nodes.
Sub-types:
Generated artifacts: SOWs, proposals, contracts, change orders. Blueprint generates SOWs via Zapier using a Google Docs template with mail-merged data. In ZOS, documents should be generated from entity data and versioned.
Key fields: project_id (FK), type (SOW/proposal/contract/change_order), template_id, version, generated_date, status (draft/sent/signed), file_url
"You're using a million spreadsheets for forecasting, and it's the bane of our existence." Whatever they forecast — revenue, capacity, demand, cash flow — it needs a home. Today it lives entirely outside all systems in ad-hoc spreadsheets.
Key fields: type (revenue/capacity/demand), period, value, confidence, assumptions, created_by
Versioned lookup tables and controlled vocabularies that drive rates, resource matching, and categorization across the platform.
Versioned billing and cost rates by role, discipline, and region. Blueprint has "2025 Rate Card" with 52 entries. Must be versioned — old projects retain their original rate card. When a person is assigned to a project, their rate comes from the project's rate card (or an override).
Key fields: version (e.g. "2025"), effective_date, entries[region, discipline, role, cost_rate, bill_rate]
Scale: 14 disciplines × 3 regions × multiple seniority levels = 52 entries per version
Controlled Vocabularies
21 values: Shopify, BigCommerce, Salesforce, Adobe Commerce, ServiceNow, Headless, commercetools, Algolia, Threekit, Hybris, VTEX, Contentful, FullStory, kBridge, Pimly, Salesforce B2B, Salesforce CPQ, Salesforce CRM, ServiceNow SOM, ServiceNow CRM, Other
7 values: Advisory, Implementation, Operate & Innovate, Operate, Innovate, Staff Augmentation, Retainer
14 values: Advisory, Backend Engineering, Business Analysis, Cloud, Delivery Management, Design, Frontend Engineering, Marketing, Project Management, Quality, Salesforce, Solution Architecture, User Experience
3 tiers: NA (North America, bill $195-295/hr), EE (Eastern Europe, bill $85-205/hr), WE (Western Europe, bill $285/hr)
8 values from HubSpot: S1 Qualification, S2 Discovery, S3 Solution, S4 Proposal, S5 Negotiation, S6 Closing, S7-Won, S7-Lost
Level 10, Quarterly, Annual, Vision Building Day (from 90.io)
Platform foundations that every module depends on. These are as important as the entities — they're the connective tissue.
Configurable approval chains (time approvals, SOW approvals, budget approvals). Jira has 10+ business workflows today.
Unified cross-module reporting. HubSpot has 536 reports and 39 dashboards. Mavenlink has 44 custom Insights dashboards.
Embedded intelligence: deal scoring, estimation review, staffing recommendations, anomaly detection, margin prediction.
Per-module, per-entity permissions. Mavenlink has 8 permission levels. 90.io has team-scoped access.
"Everything should have an MCP around this. Day one thesis." — Evan Klein
Every operation available via API. Enables CLI interaction, Slack bots, and external integrations.
Visible data quality scores per entity. Missing fields, stale records, incomplete lifecycle data surfaced — not hidden.
Full change history across all entities. Who changed what, when, and why.
Enterprise-grade for 300 people across 25+ countries. GDPR, data residency, disaster recovery.
How the entities connect. The Project entity is the hub — it touches every other entity in the model.
| Relationship | Cardinality | Notes |
|---|---|---|
| Organization (Client) → Project | 1 : N | A client has many projects |
| Organization → Organization | 1 : N (tree) | Parent/child hierarchy (dept → team, Visionary → department) |
| Organization → Person | N : N | People belong to multiple teams/departments |
| Project → Estimate | 1 : N | Up to 7 approach variants per project |
| Estimate → Scope Line Item | 1 : N | Each variant has its own set of scope items |
| Estimate → Resource Allocation | 1 : N | Each variant has its own resource plan |
| Project → Time Entry | 1 : N | 260K+ time entries across 296 active projects |
| Person → Time Entry | 1 : N | Everyone enters time (324 users) |
| Project → Task | 1 : N | Tasks within a project (192+ in one audited project) |
| Task → Task | 1 : N (tree) | Parent/child for phases, sub-tasks, dependencies |
| Project → Financial Transaction | 1 : N | Quotes, invoices, payments across the lifecycle |
| Project → Document | 1 : N | SOWs, contracts, change orders |
| Project → Rate Card | N : 1 | Each project references a specific rate card version |
| Person → Skill | 1 : N | Skills with proficiency levels for resource matching |
| Person → Geography | N : 1 | Person's location drives cost rate tier and compliance |
| Rate Card Entry → Geography | N : 1 | Rates vary by region (NA/EE/WE) |
| Organization (Team) → EOS Record | 1 : N | Measurables, rocks, issues, meetings scoped to team |
Where each entity's data lives today. Blank cells represent gaps — data that doesn't exist in that system.
| ZOS Entity / Field | 90.io | HubSpot | Blueprint | Mavenlink | NetSuite |
|---|---|---|---|---|---|
| Person | |||||
| Name | user.name | contact.name | Resource (named) | user.full_name | entity.name |
| user.email | contact.email | — | user.email_address | — | |
| Role / Title | user.seat | contact.jobtitle | Role (dropdown) | user.role | — |
| Discipline | — | — | Discipline (14 values) | — | — |
| Region | — | — | Region (NA/EE/WE) | — | — |
| Cost Rate | — | — | Values.Cost | user.cost_rate | — |
| Bill Rate | — | — | Values.Bill | user.bill_rate | — |
| Organization (hierarchy) | |||||
| Client | — | company (427) | Company | account | customer |
| Department | A-Chart nodes | — | — | organization (dept tree) | department |
| Team | team (18 teams) | — | — | — | — |
| Hierarchy | A-Chart (Visionary → Dept) | — | — | organization (parent/child) | — |
| Project Lifecycle | |||||
| Pipeline (S1-S6) | — | deal | — | — | — |
| Won (S7) | — | deal | Project ID | — | — |
| Estimation | — | — | Approach Variant | estimate | — |
| Scope | — | — | Scope Line Items | — | — |
| Resource Plan | — | — | Resource Allocation | workspace_resource | — |
| Delivery | — | — | — | workspace (296) | — |
| Invoicing | — | — | — | invoice (2,922) | transaction |
| Rate Card | |||||
| Version | — | — | "2025 Rate Card" | rate_card_set | — |
| Role + Region key | — | — | Combined (lookup) | role | — |
| Cost / Bill rates | — | — | Values sheet | cost_rate / bill_rate | — |
| EOS | |||||
| Measurable | measurable (454) | — | — | — | — |
| Rock | rock | — | — | — | — |
| Issue | issue | — | — | — | — |
| Meeting (L10) | meeting (165+) | — | — | — | — |
| V/TO | vto | — | — | — | — |