Roll up what a workflow takes
compass_workflow_rollupPer run and per month: hands-on minutes, waiting minutes, labor cost (hands-on time priced through each role's hourly rate), and hard costs, each as a low–high range, with every step's share and its gates (approvals, handoffs, re-keying, rework). A step that is itself a workflow uses that workflow's roll-up unless it has its own estimate. coverage says how many steps are timed — always say how much of the total rests on estimates before quoting it, and never present a range as one number. unpricedRoles are roles doing timed work with no hourly rate; their time counts and its cost doesn't. Where the waiting dwarfs the hands-on time, or a gate rarely sends anything back, is usually where the improvement is. at reads the estimates as of a date; variantId rolls up one variant.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | How things were on this date (YYYY-MM-DD). Default today. | |
| pageId | Yes | The WORKFLOW page id. | |
| knownAt | No | Count only what had been said by this date — the picture as we knew it then. | |
| changeIds | No | Project the workflow as these changes would leave it (ids from compass_scenario_changes). Compare with a call without them: before vs after, what stays human, overlapping changes. | |
| variantId | No | A variant id from compass_workflow_steps. | |
| workspace | No | Workspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys. |