Reference
Response shapes
Non-entity response types returned by the Bedrock API — governance reports, drift signals, breakdown rows, and the other structured payloads the endpoints hand back.
These shapes are sourced directly from the public OpenAPI spec at apps/marketing/public/openapi.json — any schema under components.schemas that isn't an enum or a top-level data-model entity lands on this page automatically. Add a schema to the spec and it shows up here on the next build.
For the stored entities (Firm, User, ReviewJob, LedgerRecord, Incident, etc.) see the data model reference. For enum values see the enums reference.
BiasFlag
| Field | Type | Req | Description |
|---|---|---|---|
segment | string | Yes | |
value | string | Yes | |
metric | string | Yes | rejectionRatemodificationRate |
kind | string | Yes | 'divergence' — rate differs materially from the dimension baseline; 'absolute' — rate exceeds the configured absolute rejection threshold.divergenceabsolute |
observed | number (float) | Yes | |
baseline | number (float) | Yes | |
delta | number (float) | Yes | |
severity | string | Yes | infowarningalert |
sampleSize | integer | Yes |
BiasReport
| Field | Type | Req | Description |
|---|---|---|---|
periodFrom | string (date-time) | Yes | |
periodTo | string (date-time) | Yes | Inclusive end of the reporting period (23:59:59.999 UTC for date-only inputs). |
totalRecords | integer | Yes | |
overallRejectionRate | number (float) | Yes | Overall rejection rate across every completed job in the period, regardless of which segment dimensions each job populates. |
dimensions | SegmentDimension[] | Yes | |
flags | BiasFlag[] | Yes | All flags raised, aggregated across dimensions. |
thresholds | object | Yes | Divergence thresholds, absolute delta from baseline. |
rejectionAlertThreshold | number (float) | Yes | Absolute rejection-rate threshold used to raise 'absolute' flags. |
trend | BiasTrendPoint[] | Yes |
BiasTrendPoint
| Field | Type | Req | Description |
|---|---|---|---|
bucket | string | Yes | Time bucket identifier (e.g. YYYY-MM). |
segment | string | Yes | |
value | string | Yes | |
total | integer | Yes | |
rejectionRate | number (float) | Yes |
ConsumerDutyMetrics
| Field | Type | Req | Description |
|---|---|---|---|
outcomes | OutcomeBreakdown | Yes | |
sla | SlaMetrics | Yes | |
reviewerWorkload | ReviewerWorkload[] | Yes | |
documentTypeBreakdown | DocumentTypeBreakdown[] | Yes | |
controlEvidence | ControlEvidence | Yes | |
monthlyBuckets | MonthlyOutcomeBucket[] | Yes | |
cryptoAnchor | CryptoAnchor | Yes | |
previousPeriod | object | null | Same window length immediately before the reporting period, for comparison. |
ConsumerDutyReportResponse
| Field | Type | Req | Description |
|---|---|---|---|
periodFrom | string (date-time) | Yes | |
periodTo | string (date-time) | Yes | Inclusive end of the reporting period. |
metrics | ConsumerDutyMetrics | Yes |
ControlEvidence
| Field | Type | Req | Description |
|---|---|---|---|
totalReviewActions | integer | Yes | |
totalChecklistItemsChecked | integer | Yes | |
totalAnnotations | integer | Yes | |
averageActionsPerJob | number (float) | Yes | |
averageReadCompletionRate | number (float) | Yes | 0 to 1 — average share of a document read before a decision was recorded. |
CreateImpactAssessmentParams
| Field | Type | Req | Description |
|---|---|---|---|
useCase | string | Yes | |
description | string | Yes | |
modelProvider | string | null | Optional. Pair with modelVersion to tie this assessment to a specific model and feed the enforcement gate on job submission. | |
modelVersion | string | null | ||
outcomes | ImpactAssessmentOutcomes | Optional. When omitted, the draft is seeded with empty responses and a LOW risk rating per outcome. |
CreateIncidentParams
| Field | Type | Req | Description |
|---|---|---|---|
title | string | Yes | |
description | string | Yes | |
severity | IncidentSeverity | Yes | |
category | IncidentCategory | Yes | |
affectedReviewJobIds | string[] | ||
affectedLedgerRecordIds | string[] |
CreateRemediationParams
| Field | Type | Req | Description |
|---|---|---|---|
description | string | Yes | |
ownerName | string | ||
dueAt | string (date-time) |
CreateReportLogParams
| Field | Type | Req | Description |
|---|---|---|---|
type | ReportType | Yes | |
periodFrom | string (date-time) | Yes | |
periodTo | string (date-time) | Yes | |
metadata | object |
CryptoAnchor
Immutable-ledger anchor for the reporting period, proving the metrics were computed over a specific tamper-evident record range.
| Field | Type | Req | Description |
|---|---|---|---|
firstSequenceNumber | integer | null | ||
lastSequenceNumber | integer | null | ||
lastChainHash | string | null | ||
recordCount | integer | Yes |
DocumentTypeBreakdown
| Field | Type | Req | Description |
|---|---|---|---|
documentType | string | Yes | |
total | integer | Yes | |
approved | integer | Yes | |
rejected | integer | Yes | |
modified | integer | Yes |
ImpactAssessmentOutcomes
Responses for all four PRIN 2A outcomes. Template v1 covers products & services, price & value, consumer understanding and consumer support.
| Field | Type | Req | Description |
|---|---|---|---|
products_services | OutcomeResponse | Yes | |
price_value | OutcomeResponse | Yes | |
consumer_understanding | OutcomeResponse | Yes | |
consumer_support | OutcomeResponse | Yes |
IncidentStats
| Field | Type | Req | Description |
|---|---|---|---|
total | integer | Yes | |
open | integer | Yes | Incidents in OPEN, INVESTIGATING, or REMEDIATING state. |
resolved | integer | Yes | Incidents in RESOLVED or CLOSED state. |
critical | integer | Yes | Incidents with severity CRITICAL (any status). |
byCategory | object | Yes | Count of incidents per category. |
trend | object[] | Yes | Trailing 12 months of incident volume, oldest first. |
ModelDriftReport
| Field | Type | Req | Description |
|---|---|---|---|
signals | ModelDriftSignal[] | All triggered drift signals, sorted by severity (alert > warning > info). | |
thresholds | object | ||
baselineWindowDays | integer | ||
currentWindowDays | integer |
ModelDriftSignal
A single drift signal for one (provider, version, metric) tuple.
| Field | Type | Req | Description |
|---|---|---|---|
provider | string | ||
version | string | ||
metric | string | rejectionRatemodificationRateannotationFrequency | |
current | number (float) | Value of the metric in the current window. | |
baseline | number (float) | Value of the metric in the baseline window. | |
delta | number (float) | Signed difference (current - baseline). | |
severity | string | infowarningalert | |
sampleSize | integer | Number of completed jobs in the current window for this model. |
ModelSummary
Aggregate stats for a single (provider, version) pair across all completed jobs the firm has submitted.
| Field | Type | Req | Description |
|---|---|---|---|
provider | string | ||
version | string | ||
totalJobs | integer | Total review jobs tagged with this model (any status). | |
approved | integer | ||
approvedWithModifications | integer | ||
rejected | integer | ||
pending | integer | Jobs still in queue, assigned, or in review (no terminal outcome yet). | |
approvalRate | number (float) | Approved / completed (where completed = approved + modified + rejected). | |
modificationRate | number (float) | ||
rejectionRate | number (float) | ||
firstSeenAt | string (date-time) | ||
lastUsedAt | string (date-time) |
ModelTimelinePoint
Aggregate stats for one ISO week, used to plot per-model quality over time.
| Field | Type | Req | Description |
|---|---|---|---|
bucket | string (date-time) | ISO timestamp of the Monday that starts the week. | |
total | integer | ||
approved | integer | ||
approvedWithModifications | integer | ||
rejected | integer | ||
approvalRate | number (float) | ||
modificationRate | number (float) | ||
rejectionRate | number (float) | ||
annotationCount | integer | Number of NOTE_ADDED reviewer actions on jobs completed in this week. |
MonthlyOutcomeBucket
| Field | Type | Req | Description |
|---|---|---|---|
month | string | Yes | YYYY-MM. |
total | integer | Yes | |
approved | integer | Yes | |
approvedWithModifications | integer | Yes | |
rejected | integer | Yes |
OutcomeBreakdown
| Field | Type | Req | Description |
|---|---|---|---|
total | integer | Yes | |
approved | integer | Yes | |
approvedWithModifications | integer | Yes | |
rejected | integer | Yes | |
approvalRate | number (float) | Yes | |
modificationRate | number (float) | Yes | |
rejectionRate | number (float) | Yes |
OutcomeResponse
A firm's response for one PRIN 2A outcome area inside an impact assessment.
| Field | Type | Req | Description |
|---|---|---|---|
responses | object | Yes | Free-text answers keyed by the template question id (e.g. 'ps_target_market'). |
riskRating | RiskRating | Yes | |
narrative | string | Yes | Plain-English summary of the firm's position on this outcome. |
ReviewerWorkload
| Field | Type | Req | Description |
|---|---|---|---|
reviewerId | string | Yes | |
reviewerName | string | Yes | |
fcaRef | string | null | ||
jobsCompleted | integer | Yes | |
jobsApproved | integer | Yes | |
jobsRejected | integer | Yes | |
jobsModified | integer | Yes | |
averageHoursToComplete | number (float) | null |
SegmentDimension
| Field | Type | Req | Description |
|---|---|---|---|
segment | string | Yes | |
values | SegmentOutcome[] | Yes | |
baselineRejectionRate | number (float) | Yes | |
flags | BiasFlag[] | Yes |
SegmentOutcome
| Field | Type | Req | Description |
|---|---|---|---|
segment | string | Yes | Segment dimension key (e.g. ageBand, riskProfile, productType). |
value | string | Yes | Segment value within the dimension. |
total | integer | Yes | |
approved | integer | Yes | |
approvedWithModifications | integer | Yes | |
rejected | integer | Yes | |
approvalRate | number (float) | Yes | |
modificationRate | number (float) | Yes | |
rejectionRate | number (float) | Yes |
SlaMetrics
| Field | Type | Req | Description |
|---|---|---|---|
totalCompleted | integer | Yes | |
metDeadline | integer | Yes | |
breachedDeadline | integer | Yes | |
complianceRate | number (float) | Yes | |
averageHoursToComplete | number (float) | null | ||
p50HoursToComplete | number (float) | null | ||
p95HoursToComplete | number (float) | null |
UpdateImpactAssessmentParams
Partial update for a draft/pending assessment and/or a status transition. APPROVED and SUPERSEDED assessments accept status-only transitions (SUPERSEDED) — any content edit returns 409 CONFLICT. Approving transitions require an authenticated LEAD_REVIEWER or FIRM_ADMIN.
| Field | Type | Req | Description |
|---|---|---|---|
useCase | string | ||
description | string | ||
modelProvider | string | null | ||
modelVersion | string | null | ||
outcomes | ImpactAssessmentOutcomes | ||
status | ImpactAssessmentStatus |
UpdateIncidentParams
| Field | Type | Req | Description |
|---|---|---|---|
status | IncidentStatus | ||
rootCause | string | null | Pass null to clear a previously-set root cause. resolvedAt is server-controlled and cannot be set via this endpoint. |
UpdateRemediationParams
| Field | Type | Req | Description |
|---|---|---|---|
status | RemediationStatus |
VulnerabilityFlagBreakdown
| Field | Type | Req | Description |
|---|---|---|---|
flag | VulnerabilityFlag | Yes | |
total | integer | Yes | |
approved | integer | Yes | |
approvedWithModifications | integer | Yes | |
rejected | integer | Yes | |
pending | integer | Yes | |
approvalRate | number (float) | Yes | |
modificationRate | number (float) | Yes | |
rejectionRate | number (float) | Yes |
VulnerabilityReport
| Field | Type | Req | Description |
|---|---|---|---|
totalFlaggedJobs | integer | Yes | |
totalUnflaggedJobs | integer | Yes | |
flagBreakdown | VulnerabilityFlagBreakdown[] | Yes | |
specialistReviewerCount | integer | Yes | Reviewers trained to handle vulnerable clients. |
totalReviewerCount | integer | Yes | |
awaitingSeniorSignOff | integer | Yes | Flagged jobs still awaiting senior reviewer sign-off. |
recentFlaggedJobs | object[] | Yes |