---
id: CAP-ACC-REC-019
title: Review reconciliation stages and attention
feature: FEAT-ACC-REC-06
product_area: accounting
module: reconciliation
revision: 2
status: draft
product_intent: confirmed
implementation_evidence: observed
supersedes:
  - react-console acceptance inventory CAP-ACC-REC-012
  - react-console acceptance inventory CAP-ACC-REC-024
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources:
  - 'services-accounting:docs/milestones/plans/ACCT-M8-plan.md#D10 (§3: the overview tiles)'
  - >-
    services-accounting:docs/milestones/plans/ACCT-M8-plan.md#D6 (the console Reconciliation screens on the
    live service)
purpose: Staff need a daily summary that directs them toward unfinished financial work.
outcomes:
  - The daily view summarizes reconciliation progress.
  - Attention counts direct staff toward unfinished work.
concepts:
  - CON-ACC-REC-005
  - CON-ACC-REC-003
actors:
  - ACT-ACC-017
  - ACT-ACC-018
  - ACT-ACC-007
  - ACT-ACC-019
surfaces:
  - console
  - api
preconditions: []
postconditions: []
permissions:
  - key: accounting.reconciliation-batches.read
    where_checked: api
    scope: tenant
  - key: accounting.application.access
    where_checked: console
    scope: tenant
rules:
  - id: BR-CAP-ACC-REC-019-01
    proved_by: [ATS-ACC-REC-004-08, ATS-ACC-REC-018-12, ATS-ACC-REC-019-01, ATS-ACC-REC-019-06, TST-ACC-REC-024, TST-ACC-REC-056]
    statement: >-
      The service overview groups captured, unheld-deposited, open and finalized money by currency, includes
      ten recent payouts and reports overdue and open-blocker counts.
    kind: calculation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#answers
      every stage by currency, the recent payouts and what needs attention, for a business unit;
      services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#counts
      every unit’s blockers when no unit is named;
      services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#answers 200 with alpha’s
      stages, recent payouts and what needs attention
    origin: 'services-accounting:docs/milestones/plans/ACCT-M8-plan.md#D10 (§3: the overview tiles)'
  - id: BR-CAP-ACC-REC-019-02
    proved_by: [ATS-ACC-REC-019-02, TST-ACC-REC-024, TST-ACC-REC-056]
    statement: >-
      Overview filters unit, merchant and date range using item occurrence, payout accounting and
      reconciliation finalization dates, rejecting a reversed range.
    kind: validation
    enforced_at:
      - api
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#keeps
      payouts to their accounting dates and finalized batches to their finalization date within from and to;
      services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#keeps
      to a merchant account;
      services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a from after its to
      with 400
    origin: none
  - id: BR-CAP-ACC-REC-019-03
    proved_by: [ATS-ACC-REC-004-08, ATS-ACC-REC-018-12, ATS-ACC-REC-019-01, ATS-ACC-REC-019-06, TST-ACC-REC-024, TST-ACC-REC-056]
    statement: An overview without a unit includes blockers from every unit.
    kind: calculation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#counts
      every unit’s blockers when no unit is named;
      services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#answers
      every stage by currency, the recent payouts and what needs attention, for a business unit;
      services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#answers 200 with alpha’s
      stages, recent payouts and what needs attention
    origin: none
  - id: BR-CAP-ACC-REC-019-04
    proved_by: [ATS-ACC-REC-019-03, TST-ACC-REC-026, TST-ACC-REC-060]
    statement: >-
      Reconciliation lists page by newest number, include their payouts and filter state, merchant and unit,
      rejecting unknown states.
    kind: policy
    enforced_at:
      - api
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-batches.queries.integration.spec.js#answers
      every batch of the tenant, newest number first, each summary whole;
      services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-batches.queries.integration.spec.js#filters
      by state;
      services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-batches.queries.integration.spec.js#filters
      by merchant account;
      services-accounting:modules/reconciliation/tests/e2e/reconciliation-lists.e2e.spec.js#answers 200 with
      the tenant’s batches and the payouts each explains;
      services-accounting:modules/reconciliation/tests/e2e/reconciliation-lists.e2e.spec.js#refuses a state
      outside the vocabulary with 400
    origin: none
  - id: BR-CAP-ACC-REC-019-05
    proved_by: [ATS-ACC-REC-019-04, TST-ACC-REC-024, TST-ACC-REC-026]
    statement: >-
      Reconciliation read alone permits overview and reconciliation lists, which exclude another workspace’s
      records.
    kind: permission
    enforced_at:
      - api
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#lets a principal with the
      read keys alone read the overview;
      services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a principal without
      accounting.reconciliation-batches.read with 403;
      services-accounting:modules/reconciliation/tests/e2e/reconciliation-lists.e2e.spec.js#refuses the batch
      list without accounting.reconciliation-batches.read with 403;
      services-accounting:modules/reconciliation/tests/e2e/reconciliation-lists.e2e.spec.js#shows none of
      tenant A’s batches in tenant B
    origin: 'services-accounting:docs/milestones/plans/ACCT-M8-plan.md#D10 (§2: permissions)'
  - id: BR-CAP-ACC-REC-019-06
    proved_by: [ATS-ACC-REC-019-05, TST-ACC-REC-019]
    statement: >-
      Accounting access and a selected unit precede the console’s overview, payout, reconciliation,
      outstanding, exception and readiness views loaded from that unit’s records.
    kind: policy
    enforced_at:
      - console
    must_prove: false
    provenance: observed
    source: 'react-console:lib/accounting/reconciliation/store.tsx:ReconProvider'
    origin: 'services-accounting:docs/milestones/plans/ACCT-M8-plan.md#D6'
  - id: BR-CAP-ACC-REC-019-07
    proved_by: [ATS-ACC-REC-019-05, TST-ACC-REC-019]
    statement: >-
      Console overview tiles apply date, processor and merchant filters to loaded records rather than
      requesting the service overview.
    kind: policy
    enforced_at:
      - console
    must_prove: false
    provenance: observed
    source: 'react-console:components/accounting/reconciliation/overview.tsx:ReconOverview'
    origin: none
scenarios:
  - id: SC-CAP-ACC-REC-019-01
    given: The unit has money at every stage of explanation.
    when: Request its overview.
    then: 'Currency-separated stage values, recent payouts and attention counts are returned.'
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#answers 200 with alpha’s
      stages, recent payouts and what needs attention
edge_cases: []
constraints: []
depends_on:
  - CAP-ACC-REC-004
  - CAP-ACC-REC-006
related:
  - CAP-ACC-REC-018
journeys:
  - JNY-ACC-REC-001
open_questions: []
evidence:
  - >-
    Examined supporting service material: outstanding.routes.ts (getReconciliationOverview),
    reconciliation.routes.ts (listReconciliationBatches), services/overview/reconciliation-overview.ts,
    persistence/reconciliation-overviews.ts, reconciliation-batches.ts; tests integration
    reconciliation-overview and reconciliation-batches.queries, e2e outstanding (overview) and
    reconciliation-lists.
  - >-
    Examined supporting console material: app/(console)/console/[tenantId]/accounting/reconciliation/**
    (layout and eight pages); components/accounting/reconciliation/overview.tsx, batches-screen.tsx,
    recon-page.tsx, recon-ui.tsx; lib/accounting/reconciliation/store.tsx, load.ts; acceptance journey
    ACT-ACC-0623.
controls: [TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-IAM-006, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-006, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-LOG-004, TC-PI-001, TC-PI-002, TC-PI-005]
exercised_by: [FAS-ACC-REC-06-01, FAS-ACC-REC-06-02, FAS-ACC-REC-06-03, FAS-ACC-REC-06-04, FAS-ACC-REC-06-05]
suites: [TST-ACC-REC-019, TST-ACC-REC-024, TST-ACC-REC-026, TST-ACC-REC-056, TST-ACC-REC-060]
---

# Review reconciliation stages and attention

## Purpose

Staff need a daily summary that directs them toward unfinished financial work.

## How It Works

Staff enter the selected unit’s Reconciliation Center. The summary places money into the stages of explanation and identifies attention counts. Lists let the reader follow the underlying deposits and explanations. The service overview and console tiles use different calculation paths today. Invalid ranges or missing read grants stop the service read.

## Relationships

Payouts, items and reconciliations supply the stage records; readiness provides the period-specific review when staff approach close.
