Type Alias: ActivityOutcome
ActivityOutcome = typeof
ActivityOutcome[keyof typeofActivityOutcome]
Defined in: packages/sdk/src/types/generated/family.ts:88
Whether anybody has to do something about an occurrence.
The second axis of the row, and the one that carries the colour. It is orthogonal to the family — a family says what kind of thing happened, an outcome says whether it went fine — so a summary row can show a family's counts split three ways without inventing a glyph per event type.
OK— it happened and it is done. Nothing is owed.ATTENTION— a person is expected to follow up. These are exactly the facts the priority lane is built out of, which is why anATTENTIONcount links into that lane, filtered, rather than into the feed: the feed would show you the event, and what you want is the item.FAILED— the system tried and did not succeed.
The honest limit of this axis
An outcome is a property of the event type, not of the occurrence, and
it has to be: the rollup materializes (hour, scope, event_type) and
carries no detail, so a count can only be split by something the type
already decides. That is a real ceiling. import.completed carries a
failed_count and assignment.concluded carries a
SYSTEM_ERROR conclusion, and neither can colour its own row here,
because the aggregate that counted them never saw the payload.
Splitting those would mean either a second rollup keyed on an outcome
column — a second materialized grain, which § "Aggregation" rules out — or
promoting the distinction into the vocabulary as its own type
(import.failed), which is a review-gated change with an emitter behind
it and the right way to do it when a specific failure earns a row. So this
axis is exactly as rich as the type vocabulary is, and no richer. It is not
a severity model; it is a reading of one.