---
id: JNY-CRM-REG-002
title: An administrator applies revised coverage to existing records
feature: FEAT-CRM-REG-04
product_area: crm
module: regions
revision: 2
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes:
  - CRM-ACC-0360
  - CRM-ACC-0749
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
actor: ACT-CRM-003
goal: Apply revised chapter coverage while preserving deliberate record exceptions.
capabilities:
  - CAP-CRM-REG-004
  - CAP-CRM-REG-010
  - CAP-CRM-REG-011
  - CAP-CRM-REG-012
  - CAP-CRM-REG-009
screens:
  - '/console/{tenantId}/configuration/crm/regions/assignmentRules'
  - '/console/{tenantId}/configuration/crm/regions?tab=rules'
steps:
  - 'n': 1
    surface: '/console/{tenantId}/configuration/crm/regions/assignmentRules'
    action: Change New York coverage to the second region and save the policy.
    capability: CAP-CRM-REG-004
    expected: The new coverage is stored without updating existing placements.
    provenance: test
    source: 'react-console:acceptance/crm/playwright/journeys/configuration/CRM-ACC-0360.spec.ts#CRM-ACC-0360'
  - 'n': 2
    surface: '/console/{tenantId}/configuration/crm/regions?tab=rules'
    action: Visit the saved Assignment Rules tab.
    capability: CAP-CRM-REG-010
    expected: The need banner provides the recalculation action.
    provenance: test
    source: >-
      react-console:e2e/dev/regions.dev.spec.ts#asks for a recalculation after a rule changes, and stops
      asking once it has run
  - 'n': 3
    surface: '/console/{tenantId}/configuration/crm/regions?tab=rules'
    action: Start recalculation from the banner.
    capability: CAP-CRM-REG-011
    expected: The view displays processing progress in place of the need notice.
    provenance: test
    source: >-
      react-console:components/regions/__tests__/recalculation.test.tsx#the banner › shows the progress of a
      run in its place, without a second button
  - 'n': 4
    surface: getRegionRecalculation
    action: Inspect the completed run record.
    capability: CAP-CRM-REG-012
    expected: The result identifies completion and the examined and changed counts.
    provenance: test
    source: 'services-crm:modules/regions/tests/e2e/regions.e2e.spec.js#reads the recalculation'
  - 'n': 5
    surface: '/console/{tenantId}/crm/contacts/{id}'
    action: 'Read the placements of an eligible New York member, an overridden member and a never-addressed member.'
    capability: CAP-CRM-REG-011
    expected: 'The eligible member moves, while the two exceptions retain their placements.'
    provenance: test
    source: 'react-console:acceptance/crm/playwright/journeys/configuration/CRM-ACC-0360.spec.ts#CRM-ACC-0360'
  - 'n': 6
    surface: '/console/{tenantId}/configuration/crm/regions?tab=rules'
    action: Return to the policy view after completion.
    capability: CAP-CRM-REG-010
    expected: A successful run covering the current generation clears the need signal.
    provenance: test
    source: >-
      react-console:e2e/dev/regions.dev.spec.ts#asks for a recalculation after a rule changes, and stops
      asking once it has run
alternates:
  - from_step: 3
    condition: Another start is requested while processing remains active.
    path: The request returns the existing running record.
    outcome: The workspace retains one active run.
    provenance: test
    source: 'react-console:acceptance/crm/playwright/journeys/adversarial/CRM-ACC-0749.spec.ts#CRM-ACC-0749'
  - from_step: 3
    condition: Policy changes before the run completes.
    path: Later batches read the changed coverage.
    outcome: Completion still leaves another recalculation needed.
    provenance: test
    source: >-
      services-crm:modules/regions/tests/integration/services/region-assignment/region-assignment-rules.integration.spec.js#whether
      a recalculation is needed › a rule saved while a recalculation is under way › says one is still needed,
      because the run was recorded under the rules as they were before
failures:
  - from_step: 3
    condition: A batch cannot finish.
    path: The run retains a redacted reason and resumes on later delivery.
    outcome: 'It recovers or becomes failed on final unsuccessful delivery, permitting a new run.'
    provenance: test
    source: >-
      services-crm:modules/regions/tests/integration/services/region-assignment/region-recalculation-errors.integration.spec.js#the
      last delivery of a run’s event › fails the run, because nothing will deliver its event again
rules_in_play:
  - BR-CAP-CRM-REG-010-01
  - BR-CAP-CRM-REG-010-02
  - BR-CAP-CRM-REG-011-02
  - BR-CAP-CRM-REG-011-05
  - BR-CAP-CRM-REG-011-06
  - BR-CAP-CRM-REG-012-03
  - BR-CAP-CRM-REG-012-04
  - BR-CAP-CRM-REG-009-01
assertions:
  - id: AS-JNY-CRM-REG-002-01
    statement: Eligible addressed records receive the updated policy’s result.
    provenance: test
    source: >-
      services-crm:modules/regions/tests/integration/services/region-assignment/region-assignment.integration.spec.js#rule
      changes and the recalculation › moves a contact to its region under the new rules
  - id: AS-JNY-CRM-REG-002-02
    statement: Overrides and records without a past or present deciding address preserve placement.
    provenance: test
    source: >-
      services-crm:modules/regions/tests/integration/services/region-assignment/region-assignment.integration.spec.js#rule
      changes and the recalculation › leaves a contact that overrides automatic assignment
  - id: AS-JNY-CRM-REG-002-03
    statement: Repeating the run without changed inputs does not alter placement.
    provenance: test
    source: >-
      services-crm:modules/regions/tests/integration/services/region-assignment/region-assignment.integration.spec.js#rule
      changes and the recalculation › changes nothing on a second run under the same rules
e2e_policy: required
e2e_reason: 'Starting, watching and completing background work involve console states that require browser coverage.'
proved_by: []
---

# An administrator applies revised coverage to existing records

## Story

An administrator adjusts chapter coverage and sees that existing placement still reflects earlier policy. They start recalculation from the need banner and follow its progress. Eligible addressed members receive the changed placement while deliberate exceptions remain. The policy view requests further processing if coverage changed during the run.
