The employee master record. Where every other module's people-data starts.
Your people, your way, ported anywhere. Every employee record is a PortableRecord — exportable as a Ledger card, owned by the customer, readable by every WorkBench module that ships.
The primary dimension for HR & People. Identity fields anchor the record. Operational fields drive day-to-day. Derived fields are computed from the fact layer — not independently writable. Change a pay rate through Fact_CompensationChange, not by editing the column.
When someone changes employment state — gets hired, goes on parental leave, gets terminated, comes back as a contractor — a dozen things have to happen correctly. Do they still count toward headcount? Are they still on payroll? Are they still accruing PTO? Should they still appear on their manager's roster?
The status name doesn't tell you. The conditions do.
WorkBench separates the status name (what HR calls the situation) from the business logic (what every other system needs to know about it). Four parent statuses, ~32 children, seven conditions each. Change someone's status once; everything downstream stays consistent automatically.
Some conditions depend on your company's policy, not WorkBench's defaults. For example: does an employee on partial-pay leave keep accruing PTO? That's your call. WorkBench stores the value as customer_policy and reads from your company's policy lookup at runtime. Change the policy, every employee on that status updates automatically.
| Child | Rehire | Headcount | PTO | Payroll | Time Clock | Benefits | Roster |
|---|---|---|---|---|---|---|---|
| Active — Full Time | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Active — Part Time | ✓ | ✓ | policy | ✓ | ✓ | policy | ✓ |
| Active — Contractor | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✓ |
| Active — Temporary | ✓ | policy | ✗ | ✓ | ✓ | ✗ | ✓ |
| Active — Seasonal | ✓ | policy | ✗ | ✓ | ✓ | ✗ | ✓ |
| Active — Probationary | ✓ | ✓ | policy | ✓ | ✓ | policy | ✓ |
| Active — Intern | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✓ |
Eight universal tokens score observed work behavior on a 1–5 integer scale. The core seven converged unanimously across council review. USTR-08 is Growth by default, with Initiative/Passivity flagged as an alternative pending operator ruling. Role-specific tokens (audit, engineering, etc.) are deferred to their own council reviews.
Scoring scale: 1=Needs Improvement · 2=Developing · 3=Proficient · 4=Strong · 5=Exceptional. Strength/gap designation is derived, not stored.
Every change to an employee is recorded as an immutable event. The employee record you see is a derived view. Pay rates, status, and role are all computed from the fact history. This means HR & People never loses history — and when Payroll ships as Module 5, it reads the same substrate. Both modules see the same truth.
Every WorkBench module ships with three Starter Dashboards. The measures behind them are defined once in the measure layer — same definition everywhere, no drift between modules. HR & People ships Workforce, Composition, and Capability. (Compensation is flagged for V1.1 once pay data has accumulated.)
Seed roster: ~12 fictional employees across 6 departments, one management layer. All numbers here are representative — read the fact layer for real data.
Every employee record is a PortableRecord. The customer owns their data. Export exactly what belongs to the employee as a Ledger card — a snapshot at export, not a live feed. Tenure at export is what ships; old cards don't silently age.
WorkBench meets your data where it already lives. HR & People can bring data in from the systems you already use — like BambooHR or Gusto — and take data out via Ledger export, CSV, or webhook. External metadata is preserved on every ingestion.
We ship complete stages, not half-built products. Here's what the council ratified as planned-but-not-in-V1 — with trigger conditions for when each gets built. Honesty is the differentiator.