Rensei docs

Seat scorecard by project, dispatch kind, card revision, model, profile, harness and effort.

Seat scorecard for every dispatch in a date range, grouped by project × dispatch kind × card revision at dispatch time × model × profile × harness × effort. Per bucket: seat count, status mix, the completed seats that delivered over budget (a stored runner budget breach - apart from failures), the review seats' typed verdict mix (with seats missing a verdict), the GitHub review mix, dollars and tokens per seat (every cost row), p50/p90 duration, eval pass rate, first-pass merge and rework rounds. Review accuracy, profile, effort, time to merge and cache share are not reported until their sources land; `unavailableDimensions` names the issue for each, and for seats with no stored launch revision or typed verdict. The window is half-open: dispatchedAfter is inclusive (default 30 days before dispatchedBefore or now) and dispatchedBefore is exclusive. The scan reads the newest dispatches first and sets `truncated` when the limit cut it. A projectId the caller cannot access answers 404, exactly like a missing project. Missing links land in an "unattributed" bucket; open PRs count as pending. Each source reports its latest row and fresh/stale status; every metric derived from a stale source is null, with the reason in `unavailable`.

GET
/api/factory/dispatch-scorecard

Authorization

headerAuthorizationBearer <WorkOS user access token>

WorkOS user access token created by the Rensei CLI. The authenticated organization is resolved from membership and may be narrowed with X-Rensei-Org.

Query Parameters

orgId?string
projectId?string
dispatchedAfter?string
dispatchedBefore?string
limit?integer
Range0 < value <= 50000

Response Body

Dispatch scorecard buckets with counts behind each rate.

application/json
  1. response
filter*
buckets*array<>
totals*
sources*
truncated*boolean
unavailable*
unavailableDimensions*
computedAt*string
Example Request
curl -X GET 'https://app.rensei.ai/api/factory/dispatch-scorecard'
Example Response
{  "filter": {    "workspaceId": "string",    "projectId": "string",    "dispatchedAfter": "string",    "dispatchedBefore": "string",    "limit": 0  },  "buckets": [    {      "project": "string",      "dispatchKind": "string",      "model": "string",      "harness": "string",      "card": "string",      "cardRevision": "string",      "profile": "string",      "effort": "string",      "dispatched": 0,      "seats": 0,      "merged": 0,      "abandoned": 0,      "pending": 0,      "completed": 0,      "failed": 0,      "other": 0,      "deliveredOverBudget": 0,      "verdictApprove": 0,      "verdictRequestChanges": 0,      "verdictMissing": 0,      "githubApprovals": 0,      "githubChangesRequested": 0,      "githubOtherReviews": 0,      "notDelivered": 0,      "costUsd": 0,      "costPerSeat": 0,      "listCostUsd": 0,      "listCostPerSeat": 0,      "unpricedRows": 0,      "tokens": 0,      "tokensPerSeat": 0,      "durationP50Minutes": 0,      "durationP90Minutes": 0,      "evals": 0,      "evalsPassed": 0,      "evalPassRate": 0,      "firstPassSuccess": 0,      "firstPassSuccessRate": 0,      "reviews": 0,      "reviewsApproved": 0,      "reviewPassRate": 0,      "reworkRoundsTotal": 0,      "mergedIssues": 0,      "meanReworkRounds": 0    }  ],  "totals": {    "dispatched": 0,    "seats": 0,    "merged": 0,    "abandoned": 0,    "pending": 0,    "completed": 0,    "failed": 0,    "other": 0,    "deliveredOverBudget": 0,    "notDelivered": 0,    "costUsd": 0,    "listCostUsd": 0,    "unpricedRows": 0,    "tokens": 0  },  "sources": {    "dispatches": {      "table": "string",      "latestAt": "string",      "status": "fresh"    },    "cost": {      "table": "string",      "latestAt": "string",      "status": "fresh"    },    "prs": {      "table": "string",      "latestAt": "string",      "status": "fresh"    },    "reviews": {      "table": "string",      "latestAt": "string",      "status": "fresh"    },    "rework": {      "table": "string",      "latestAt": "string",      "status": "fresh"    },    "evals": {      "table": "string",      "latestAt": "string",      "status": "fresh"    },    "delivery": {      "table": "string",      "latestAt": "string",      "status": "fresh"    }  },  "truncated": true,  "unavailable": {    "property1": "string",    "property2": "string"  },  "unavailableDimensions": {    "property1": "string",    "property2": "string"  },  "computedAt": "string"}