---
id: CAP-PFM-ELG-012
title: Monitor eligibility failures and delays
feature: FEAT-PFM-ELG-02
product_area: platform
module: eligibility
revision: 1
status: draft
product_intent: confirmed
implementation_evidence: observed
supersedes:
  - CAP-ELIG-OBS-001
  - CAP-ELIG-OBS-002
  - CAP-ELIG-OBS-003
  - CAP-ELIG-OBS-004
  - CAP-ELIG-OBS-005
  - CAP-ELIG-OBS-007
  - CAP-ELIG-OBS-008
  - CAP-ELIG-OBS-009
  - CAP-ELIG-REG-010
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources:
  - 'services-platform:docs/milestones/plans/PLAT-M11-plan.md#2. Scope'
  - 'services-platform:docs/milestones/plans/PLAT-M11-plan.md#7. Deliverables'
purpose: >-
  Operators need to identify eligibility trouble before it becomes a widespread
  customer problem. Metrics and logs provide signals and diagnostic context.
outcomes:
  - Four alarm definitions alert operators to degraded evaluation.
  - Decision logs support tracing without exposing personal information.
concepts:
  - CON-PFM-ELG-003
actors:
  - ACT-PFM-025
surfaces:
  - job
  - api
preconditions: []
postconditions: []
permissions:
  - key: platform.eligibility.read
    where_checked: api
    scope: tenant
rules:
  - id: BR-CAP-PFM-ELG-012-01
    proved_by: [ATS-PFM-ELG-012-01, TST-PFM-ELG-248, TST-PFM-ELG-467]
    statement: >-
      The closed-policy uncertainty alarm triggers above five percent over 15
      minutes when at least 20 evaluations exist.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/eligibility/tests/unit/alarm-inputs.spec.ts#reads
      the evaluation counts under the API function’s service
    origin: none
  - id: BR-CAP-PFM-ELG-012-02
    proved_by: [ATS-PFM-ELG-008-19, ATS-PFM-ELG-012-02, ATS-PFM-ELG-012-06, TST-PFM-ELG-249, TST-PFM-ELG-467]
    statement: >-
      The provider-circuit alarm triggers on any refused call in five minutes
      across interactive evaluation and population work.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/eligibility/tests/unit/alarm-inputs.spec.ts#reads
      the circuit refusals under both services that evaluate: the API function’s
      and the population task’s
    origin: none
  - id: BR-CAP-PFM-ELG-012-03
    proved_by: [ATS-PFM-ELG-010-10, ATS-PFM-ELG-011-11, ATS-PFM-ELG-012-03, ATS-PFM-ELG-012-08, ATS-PFM-ELG-012-09, TST-PFM-ELG-250, TST-PFM-ELG-251, TST-PFM-ELG-467]
    statement: >-
      Role-recheck queue age above 15 minutes and any population failure within
      an hour each trigger an alarm.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/eligibility/tests/unit/alarm-inputs.spec.ts#reads
      the population run’s failure under the service its task function records
      it as (DEF-ELIG-0675)
    origin: none
  - id: BR-CAP-PFM-ELG-012-04
    proved_by: [ATS-PFM-ELG-012-04, TST-PFM-ELG-247, TST-PFM-ELG-467]
    statement: >-
      Alarm inputs match emitted metrics and their dimensions rather than
      watching nonexistent series.
    kind: invariant
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/eligibility/tests/unit/alarm-inputs.spec.ts#reads
      only metrics some code path emits, under the emitter’s dimensions
    origin: none
  - id: BR-CAP-PFM-ELG-012-05
    proved_by: [ATS-PFM-ELG-009-10, ATS-PFM-ELG-012-05, ATS-PFM-ELG-012-07, TST-PFM-ELG-253, TST-PFM-ELG-259, TST-PFM-ELG-430]
    statement: >-
      Evaluations, provider calls, population pages and publications produce
      structured diagnostic logs by workspace, rule and version without fact
      values, personal data or provider payloads.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/eligibility/tests/integration/services/evaluate/hosted-evaluate.integration.spec.js#logs
      one eligibility.evaluate event per evaluation with the plan and the state
    origin: none
  - id: BR-CAP-PFM-ELG-012-06
    proved_by: [ATS-PFM-ELG-012-10]
    statement: >-
      An authorized workspace health request reads no business data, while the
      public health route reports the deployed service build.
    kind: permission
    enforced_at:
      - api
    must_prove: false
    provenance: test
    source: >-
      react-console:acceptance/eligibility/playwright/journeys/registry/ELIG-ACC-0005.spec.ts#ELIG-ACC-0005
    origin: none
  - id: BR-CAP-PFM-ELG-012-07
    proved_by: []
    statement: >-
      Eligibility has no dashboard, so operators inspect logs and metrics
      directly pending a product-wide dashboard choice.
    kind: policy
    enforced_at:
      - service
    must_prove: false
    provenance: documented
    source: 'services-platform:docs/eligibility.md#18. Observability'
    origin: none
scenarios:
  - id: SC-CAP-PFM-ELG-012-01
    given: Thirty closed-policy questions cannot be determined and therefore deny.
    when: The alarm’s quarter-hour window is assessed.
    then: The uncertainty-rate alarm alerts the operator.
    provenance: test
    source: >-
      react-console:acceptance/eligibility/playwright/journeys/observability/ELIG-ACC-0661.spec.ts#ELIG-ACC-0661
  - id: SC-CAP-PFM-ELG-012-02
    given: A pricing refusal has a retained decision.
    when: Support locates its diagnostics.
    then: >-
      Workspace, rule and version identify the log entry without personal
      payloads.
    provenance: test
    source: >-
      react-console:acceptance/eligibility/playwright/journeys/observability/ELIG-ACC-0666.spec.ts#ELIG-ACC-0666
edge_cases: []
constraints: []
depends_on: []
related:
  - CAP-PFM-ELG-008
  - CAP-PFM-ELG-009
  - CAP-PFM-ELG-011
journeys: []
open_questions: []
evidence:
  - >-
    services-platform: docs/eligibility.md;
    docs/milestones/PLAT-M11-eligibility-rules.md,
    PLAT-M12-eligibility-who-qualifies.md,
    PLAT-M13-eligibility-roles-and-permissions.md, plans/PLAT-M11-plan.md;
    docs/proposals/eligibility/17-decision-register.md;
    modules/eligibility/aws/logic/eligibility-alarms.cloudwatch.ts,
    services/observability/names.ts, aws/resources/*.logs.ts,
    aws/api/eligibility.routes.ts (health); tests/aws/platform.synth.ts named by
    docs; rule-level source and test references
  - >-
    react-console: acceptance/eligibility/journeys/observability/*.json and
    matching browser specifications.
controls: [TC-AVL-004, TC-AVL-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-CHG-001, TC-CHG-002, TC-CHG-003, TC-CHG-004, TC-CHG-005, TC-CHG-006, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-IAM-001, TC-IAM-006, TC-LOG-004, TC-LOG-005, TC-MON-001, TC-MON-002, TC-MON-003, TC-PI-001, TC-PI-002, TC-PI-003, TC-PI-004, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-VEN-001, TC-VEN-002, TC-VEN-003]
exercised_by: [FAS-PFM-ELG-02-02, FAS-PFM-ELG-02-05]
suites: [TST-PFM-ELG-247, TST-PFM-ELG-248, TST-PFM-ELG-249, TST-PFM-ELG-250, TST-PFM-ELG-251, TST-PFM-ELG-253, TST-PFM-ELG-259, TST-PFM-ELG-430, TST-PFM-ELG-467]
---
# Monitor eligibility failures and delays

## Purpose

Operators need to identify eligibility trouble before it becomes a widespread customer problem. Metrics and logs provide signals and diagnostic context.

## How It Works

Platform emits evaluation and provider measurements as work runs. Configured alarms watch uncertainty, failed providers, reconciliation delay and population failure. Thresholds avoid treating a tiny uncertainty sample as an incident. Alarm tests check that inputs match produced series. Diagnostic logs relate operations to a workspace and expression version. Those logs omit the evaluated personal values. Health requests provide a basic service check. Engineers inspect the existing log and metric tools because no eligibility dashboard is supplied.

## Relationships

Monitoring observes both individual decisions and bulk qualification work.
