event

Commit Adjusted

Published when a manager overrides a submitted forecast for someone in their team.

Event

Event Overview

Fired when a manager changes a rep’s number through POST /tenants/{tenant_id}/forecast/adjust, guarded by require_adjust_permission. The adjustment is stored as a new fact_forecast_revision row, so the original submission is preserved.

Envelope

FieldValue
Bus{env}-rio-events (but see the service page - this repo defaults to rio-commit-events)
sourcerio.commit (api/events/schemas.py:11)
detail-typeCommit Adjusted (api/events/schemas.py:21)
detail.event_namerio.commit.commit.adjusted
detail.entity_typecommit
detail.actionadjusted
Emitted atapi/services/forecast_service.py:2083-2088

What the payload carries

Only the audit envelope. The rich domain fields (amounts, breakdowns, quarter labels) are dropped before publishing - see the service page. before and after are always null.

Who consumes it

Only the Audit Service, through its catch-all rule matching any source beginning with rio. No service subscribes to it specifically.

Payload Schema

Event-driven architecture documentation: RIO

JSON Schema

19 properties

Published when a manager overrides a submitted forecast for someone in their team. Envelope built by _enrich_event_detail (rio-commit-service/api/events/eventbridge.py:36-96) and published on source `rio.commit` with detail-type `Commit Adjusted`.

event_idstring<uuid>
required
event_namestringconstant: rio.commit.commit.adjusted
required
source_servicestringconstant: rio.commit
required
tenant_idstring
required
domainstringconstant: commit
required
subdomainstringconstant: commit
entity_typestringconstant: commit
required
entity_idstring
required

The forecast submission id being adjusted.

actionstringconstant: adjusted
required
statusstring
required
actor_typestringconstant: user
required
actor_idstring
required
occurred_atstring<date-time>
required
correlation_idstring | null

Taken from EventContextMiddleware contextvars.

request_idstring | null
beforenull

Always null - the domain models never populate it.

afternull

Always null - the domain models never populate it.

error_codestring | null
error_messagestring | null