---
id: DOM-ACC-REC-005
title: Period Reconciliation Readiness
realises: CON-ACC-REC-005
product_area: accounting
module: reconciliation
revision: 3
status: draft
design_intent: confirmed
origin: >-
  Andrew, 2026-10-16 (one finding per problem), recorded in services-accounting
  docs/reconciliation/architecture.md §15.2; ACCT-M8 plan §1 and D10 (approved
  2026-10-22)
implementation_evidence: observed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
owned_by: SVC-ACC-REC-reconciliation
readable_by:
  - SVC-ACC-CLS-fiscal-close
custom_fields: none
identity: >-
  Readiness is an unstored assessment of a unit, fiscal year and period for a
  requested state day. A finding’s code and principal record identify the
  reported concern.
attributes:
  - name: scope
    kind: collection
    required: true
    computed: false
    notes: >-
      A unit and period define scope; the assessment uses period end or an
      earlier requested day.
  - name: blockers
    kind: collection
    required: true
    computed: true
    notes: >-
      Checks cover unfinished payout work, overdue money, unresolved blockers,
      reversal approval, pending posting, late review, drift and clearing
      imbalance.
  - name: warnings
    kind: collection
    required: true
    computed: true
    notes: >-
      Warnings include traveling money, late arrival, missing bank verification,
      later draft holdings and possible duplication.
  - name: finding
    kind: collection
    required: true
    computed: true
    notes: >-
      Each finding retains code, severity, subject, unit, amount, message,
      related records, navigation metadata and evaluation time.
  - name: clearing lines
    kind: collection
    required: true
    computed: true
    notes: >-
      Merchant and currency lines compare outstanding positions with the posted
      clearing balance.
  - name: payment positions
    kind: collection
    required: true
    computed: true
    notes: >-
      Six currency positions classify period effects; processor matching remains
      unavailable.
  - name: accepted exceptions
    kind: collection
    required: true
    computed: true
    notes: >-
      Up to five hundred accepted period concerns retain approval evidence and
      indicate truncation.
  - name: evaluated at
    kind: date
    required: true
    computed: true
    notes: The assessment retains the instant it was calculated.
relationships:
  - to: DOM-ACC-REC-001
    cardinality: one-to-many
    ownership: Assessment reads these records without changing them.
    cross_service: false
  - to: DOM-ACC-REC-002
    cardinality: one-to-many
    ownership: Assessment reads these records without changing them.
    cross_service: false
  - to: DOM-ACC-REC-003
    cardinality: one-to-many
    ownership: >-
      The explanation owns its holding references and preserves released
      history.
    cross_service: false
  - to: DOM-ACC-REC-004
    cardinality: one-to-many
    ownership: The concern retains its own references to affected records.
    cross_service: false
invariants:
  - id: INV-DOM-ACC-REC-005-01
    statement: >-
      A reported problem uses one principal finding with associated records
      rather than separate duplicate exception findings.
    enforced_at:
      - service
    provenance: documented
    source: >-
      services-accounting:docs/reconciliation/architecture.md#15.2 Structured
      finding
  - id: INV-DOM-ACC-REC-005-02
    statement: Traveling funds do not block close; overdue unexplained funds do.
    enforced_at:
      - service
    provenance: documented
    source: >-
      services-accounting:docs/reconciliation/architecture.md#6. Reconciliation
      financial invariants (INV-17)
  - id: INV-DOM-ACC-REC-005-03
    statement: Assessment requires an existing caller transaction.
    enforced_at:
      - service
    provenance: observed
    source: >-
      services-accounting:modules/reconciliation/services/close-readiness/assess-period.ts:assessReconciliationReadiness
  - id: INV-DOM-ACC-REC-005-04
    statement: >-
      Every unresolved effect by the state day contributes to one clearing
      position, except effects held by finalized records.
    enforced_at:
      - service
    provenance: observed
    source: >-
      services-accounting:modules/reconciliation/services/close-readiness/assess-period.ts:assessReconciliationReadiness
  - id: INV-DOM-ACC-REC-005-05
    statement: A period effect contributes to at most one payment position.
    enforced_at:
      - service
    provenance: observed
    source: >-
      services-accounting:modules/reconciliation/services/rules/payment-states.ts
  - id: INV-DOM-ACC-REC-005-06
    statement: >-
      The writability helper returns the first subsequent open period start for
      a closed document day and flags the effect late.
    enforced_at:
      - service
    provenance: observed
    source: >-
      services-accounting:modules/reconciliation/services/close-readiness/assess-period.ts:assertPeriodWritable
physical: []
evidence:
  - >-
    services-accounting at f47cb263:
    modules/reconciliation/services/close-readiness/assess-period.ts;
    services/persistence/readiness-findings.ts, fiscal-period-locks.ts;
    services/rules/readiness.ts, payment-states.ts;
    modules/fiscal-close/services/readiness/evaluate-readiness.ts (the caller);
    docs/reconciliation/architecture.md §15.
  - >-
    react-console at baf6dae3:
    components/accounting/reconciliation/close-screen.tsx.
---
# Period Reconciliation Readiness

## What It Models

Readiness tells a controller which reconciliation concerns prevent a period from closing and how outstanding money explains clearing. It is calculated on demand; Close owns any retained closing snapshot.

## Identity and Attributes

Scope and state day determine the assessment. Findings, clearing lines, payment positions and accepted concerns preserve distinct review information.

## Relationships

The assessment reads Reconciliation’s records, Books’ period configuration and posted clearing entries. It owns no source record.

## Invariants

The structured invariants describe finding grouping and money classification. Requiring a caller transaction does not freeze every source record: the period lock coordinates posting changes, while other reconciliation mutations need separate concurrency analysis.

## How It Is Stored and Shared

Console preview and in-process close evaluation use the same evaluator. The writability helper reports a later open date, but actual request dates follow the selected operational batch.

## Open Design Questions

Late-effect review remains incomplete. The console loses parts of the assessment during adaptation, and the close concurrency guarantee needs examination beyond posting locks.
