---
id: MOD-ACC-CLS
title: Month-End Closing
product_area: accounting
module: close
revision: 2
status: draft
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
repositories:
  - name: services-accounting
    paths:
      - modules/fiscal-close
      - 'aws/accounting.service.ts (FiscalPeriodActions, FiscalPeriodsPermissions)'
      - tests/unit/fiscal-close-permissions.spec.ts
      - tests/aws/fiscal-close.synth.ts
      - docs/fiscal-close
      - docs/migrations/fiscal-close
      - 'docs/architecture/accounting-2.0 (fiscal close passages of chapters 03, 04, 05, 07, 12)'
      - 'docs/milestones/ACCT-M1-books-and-invoices.md (D10.2, D10.3, D15)'
      - >-
        docs/milestones/ACCT-M4-contracts-and-events-for-commerce.md (rulings of 2026-10-21 09:47
        ET)
      - 'docs/milestones/plans/ACCT-M4-plan.md (section 4a rows 73 to 78, D8, D12)'
      - docs/milestones/walkthroughs/ACCT-M3-handoff.md (Reporting D7)
      - docs/milestones/walkthroughs/ACCT-M4-handoff.md (DEF-ACT-0819)
      - docs/milestones/README.md (milestone 10)
      - >-
        modules/maintenance/services/participants/fiscal-close-participant.ts and its integration
        spec (named as a dependency)
  - name: react-console
    paths:
      - 'app/(console)/console/[tenantId]/accounting/close'
      - components/accounting/close
      - lib/accounting/close
      - acceptance/accounting/inventory
      - >-
        acceptance/accounting/journeys/reconciliation-close (ACT-ACC-0613 to ACT-ACC-0622,
        ACT-ACC-0624, ACT-ACC-0626, ACT-ACC-0627)
      - acceptance/accounting/journeys/configuration/ACT-ACC-0025.json
      - acceptance/accounting/playwright/journeys/reconciliation-close
owns:
  - Period closing state and metadata on the calendar owned by Books.
  - 'Evaluated readiness, reconciliation context and close effects.'
  - 'Period close, year close and reopen requests with durable execution history.'
  - Captured readiness and reconciliation evidence for successful closes.
  - Close and reopen workflow definitions.
  - The use of workspace bank-verification policy during closing.
  - The fiscal-close export definition and deletion dependencies.
does_not_own:
  - record: 'Fiscal calendar creation and maintenance, business units and accounting policy.'
    owner: MOD-ACC-BKS
  - record: 'Batch posting, system batches and recognition schedules.'
    owner: MOD-ACC-BAT
  - record: Customer money documents and the receivables aging report type.
    owner: MOD-ACC-TRX
  - record: Payment reconciliation and eligible late-effect posting.
    owner: MOD-ACC-REC
  - record: 'Durable execution, snapshot infrastructure, permission and user services.'
    owner: 'Platform (MOD-PFM-OPS, MOD-PFM-SEC)'
  - record: Customer export and erasure orchestration.
    owner: MOD-PFM-TNL (the Accounting participants are hosted by Accounting Maintenance)
hosted_screens:
  - route: '/console/{tenantId}/accounting/close'
    purpose: Review the selected unit’s current month and available close actions.
  - route: '/console/{tenantId}/accounting/close/periods/{fiscalYearId}/{periodNumber}'
    purpose: Review and act on a specifically selected period.
  - route: '/console/{tenantId}/accounting/close/years/{fiscalYearId}'
    purpose: Review the final month together with its year checks.
  - route: '/console/{tenantId}/accounting/close/history'
    purpose: Inspect the calendar and earlier requests.
  - route: '/console/{tenantId}/accounting/close/runs/{runId}'
    purpose: 'Follow execution, review evidence and recover eligible failures.'
supersedes:
  - >-
    react-console acceptance inventory CAP-ACC-REC-015 to CAP-ACC-REC-023 and the bank-verification
    half of CAP-ACC-REC-025
  - >-
    react-console acceptance inventory RUL-ACC-REC-062 to RUL-ACC-REC-095 and RUL-ACC-RPT-024 (the
    close's request)
  - >-
    react-console acceptance journeys ACT-ACC-0025, ACT-ACC-0613 to ACT-ACC-0622 (0619 and 0620
    bound as acceptance scenarios and evidence) and the bank-verification half of ACT-ACC-0624
evidence:
  - >-
    services-accounting examination inputs: pinned fiscal-close routes, request schemas, twelve
    readiness evaluators, persistence, ports, job tasks, three table declarations, export definition
    and two workflow definitions; all thirty-two module test files; permission and synthesis tests;
    registered fiscal-close documentation and cited milestone records.
  - >-
    react-console examination inputs: pinned five hosted pages and their permission layout, close
    components, adapter and adapter test, acceptance inventory and reconciliation-close browser
    specifications.
  - >-
    Coverage: operations 10/10, published permission keys 3/3, table declarations 3/3 representing
    eight tables, workflows 2/2, module test files indexed 32/32, console pages 5/5 and layout 1/1.
    No module-owned queues or schedules are declared.
  - >-
    Proof linkage after testing back-fill: 112 capability scenarios, 77 with executable-suite
    references and 116 scenario-to-suite edges. Four feature suites contain twenty scenarios; eleven
    execution candidates await checker support and two browser chains have source contradictions.
    Registrations retain not-run results and not-verified conformance.
coverage: >-
  The coverage tables identify the capability owning each operation, permission, persisted record
  group and workflow. Indexed source coverage is complete for the declared module boundaries;
  acceptance gaps and broader behavioral concerns remain in the findings.
artifact_tree:
  planning/acceptance:
    - id: FAS-ACC-CLS-01
      file: FAS-ACC-CLS-01-close-calendar-and-period-lock.md
    - id: FAS-ACC-CLS-02
      file: FAS-ACC-CLS-02-close-readiness.md
    - id: FAS-ACC-CLS-03
      file: FAS-ACC-CLS-03-closing-and-reopening.md
    - id: FAS-ACC-CLS-04
      file: FAS-ACC-CLS-04-close-runs-and-records.md
  design/tests:
    - id: ATS-ACC-CLS-001
      file: ATS-ACC-CLS-001-see-where-each-business-unit-stands-in-its-close-calendar.md
    - id: ATS-ACC-CLS-002
      file: ATS-ACC-CLS-002-know-whether-a-month-may-be-closed-or-reopened-now.md
    - id: ATS-ACC-CLS-003
      file: ATS-ACC-CLS-003-keep-a-closing-or-closed-month-shut-to-new-postings.md
    - id: ATS-ACC-CLS-004
      file: ATS-ACC-CLS-004-judge-whether-a-month-is-ready-to-close.md
    - id: ATS-ACC-CLS-005
      file: ATS-ACC-CLS-005-make-sure-the-month-s-ledger-is-complete-before-it-closes.md
    - id: ATS-ACC-CLS-006
      file: ATS-ACC-CLS-006-make-sure-the-month-s-payments-are-reconciled-before-it-closes.md
    - id: ATS-ACC-CLS-007
      file: ATS-ACC-CLS-007-know-what-the-close-will-post-before-it-runs.md
    - id: ATS-ACC-CLS-008
      file: ATS-ACC-CLS-008-close-a-month-once-on-what-is-true-when-the-close-runs.md
    - id: ATS-ACC-CLS-009
      file: ATS-ACC-CLS-009-recognise-the-deferred-revenue-due-at-close-and-take-it-back.md
    - id: ATS-ACC-CLS-010
      file: ATS-ACC-CLS-010-close-the-fiscal-year-with-its-last-month-and-keep-years-open.md
    - id: ATS-ACC-CLS-011
      file: ATS-ACC-CLS-011-reopen-the-latest-closed-month-with-a-reason.md
    - id: ATS-ACC-CLS-012
      file: ATS-ACC-CLS-012-recover-a-close-or-reopen-that-stopped-partway.md
    - id: ATS-ACC-CLS-013
      file: ATS-ACC-CLS-013-follow-a-close-as-it-runs-and-find-every-past-run.md
    - id: ATS-ACC-CLS-014
      file: ATS-ACC-CLS-014-keep-a-lasting-record-of-what-each-close-saw.md
    - id: ATS-ACC-CLS-015
      file: ATS-ACC-CLS-015-hand-the-closed-month-s-receivables-to-reporting.md
    - id: ATS-ACC-CLS-016
      file: ATS-ACC-CLS-016-carry-the-close-history-through-the-workspace-s-export-and.md
  implementation/tests:
    - id: TST-ACC-CLS-001
      file: TST-ACC-CLS-001-clean-monthly-close-and-retained.md
    - id: TST-ACC-CLS-002
      file: TST-ACC-CLS-002-latest-month-correction-and-closing.md
    - id: TST-ACC-CLS-003
      file: TST-ACC-CLS-003-deferred-revenue-recognition-and.md
    - id: TST-ACC-CLS-004
      file: TST-ACC-CLS-004-blocked-ledger-review-and-a-fresh.md
    - id: TST-ACC-CLS-005
      file: TST-ACC-CLS-005-competing-commands-and-browser.md
    - id: TST-ACC-CLS-006
      file: TST-ACC-CLS-006-blocked-retained-close-recovery.md
    - id: TST-ACC-CLS-007
      file: TST-ACC-CLS-007-reader-and-closer-authority-across-closing.md
    - id: TST-ACC-CLS-008
      file: TST-ACC-CLS-008-protected-dates-and-late-reconciliation.md
    - id: TST-ACC-CLS-009
      file: TST-ACC-CLS-009-reconciliation-screens-and-their-close-readiness.md
    - id: TST-ACC-CLS-010
      file: TST-ACC-CLS-010-reconciliation-finalization-and-incomplete-posting.md
    - id: TST-ACC-CLS-011
      file: TST-ACC-CLS-011-posting-evidence-during-close-and.md
    - id: TST-ACC-CLS-012
      file: TST-ACC-CLS-012-demonstrated-closing-screens-and-confirmation.md
    - id: TST-ACC-CLS-013
      file: TST-ACC-CLS-013-close-transport-mapping-and-user-name.md
    - id: TST-ACC-CLS-014
      file: TST-ACC-CLS-014-close-supporting-record.md
    - id: TST-ACC-CLS-015
      file: TST-ACC-CLS-015-demonstrated-readiness-and.md
    - id: TST-ACC-CLS-016
      file: TST-ACC-CLS-016-calendar-readiness-and-authorization-api.md
    - id: TST-ACC-CLS-017
      file: TST-ACC-CLS-017-close-reopen-and-retained-record-api.md
    - id: TST-ACC-CLS-018
      file: TST-ACC-CLS-018-close-state-run-and-snapshot-database.md
    - id: TST-ACC-CLS-019
      file: TST-ACC-CLS-019-close-and-reopen-action.md
    - id: TST-ACC-CLS-020
      file: TST-ACC-CLS-020-period-locking-against-posting-and-late.md
    - id: TST-ACC-CLS-021
      file: TST-ACC-CLS-021-close-execution-refusal-and.md
    - id: TST-ACC-CLS-022
      file: TST-ACC-CLS-022-reopen-execution-and.md
    - id: TST-ACC-CLS-023
      file: TST-ACC-CLS-023-real-deferred-revenue-through-close-reopen-and.md
    - id: TST-ACC-CLS-024
      file: TST-ACC-CLS-024-current-period-and-year.md
    - id: TST-ACC-CLS-025
      file: TST-ACC-CLS-025-workspace-bank-verification-policy.md
    - id: TST-ACC-CLS-026
      file: TST-ACC-CLS-026-guarded-fiscal-period-state.md
    - id: TST-ACC-CLS-027
      file: TST-ACC-CLS-027-ordered-workspace-calendar.md
    - id: TST-ACC-CLS-028
      file: TST-ACC-CLS-028-workspace-merchant-account.md
    - id: TST-ACC-CLS-029
      file: TST-ACC-CLS-029-command-identity-competing-requests-and-run.md
    - id: TST-ACC-CLS-030
      file: TST-ACC-CLS-030-filtered-run-and-linked-reopen.md
    - id: TST-ACC-CLS-031
      file: TST-ACC-CLS-031-snapshot-persistence-and-payload.md
    - id: TST-ACC-CLS-032
      file: TST-ACC-CLS-032-snapshot-reads-within-workspace.md
    - id: TST-ACC-CLS-033
      file: TST-ACC-CLS-033-read-only-readiness-and-evaluator.md
    - id: TST-ACC-CLS-034
      file: TST-ACC-CLS-034-due-recognition-amounts-and-workspace.md
    - id: TST-ACC-CLS-035
      file: TST-ACC-CLS-035-outstanding-transaction.md
    - id: TST-ACC-CLS-036
      file: TST-ACC-CLS-036-outstanding-ordinary.md
    - id: TST-ACC-CLS-037
      file: TST-ACC-CLS-037-combined-monthly-and-year.md
    - id: TST-ACC-CLS-038
      file: TST-ACC-CLS-038-carried-batch-closing.md
    - id: TST-ACC-CLS-039
      file: TST-ACC-CLS-039-carried-close-sequence.md
    - id: TST-ACC-CLS-040
      file: TST-ACC-CLS-040-carried-reopen-sequence.md
    - id: TST-ACC-CLS-041
      file: TST-ACC-CLS-041-batch-readiness-classification-and-item.md
    - id: TST-ACC-CLS-042
      file: TST-ACC-CLS-042-recognition-cost-and-authority.md
    - id: TST-ACC-CLS-043
      file: TST-ACC-CLS-043-calendar-readiness-and-closing-date.md
    - id: TST-ACC-CLS-044
      file: TST-ACC-CLS-044-combined-readiness-verdict-and.md
    - id: TST-ACC-CLS-045
      file: TST-ACC-CLS-045-payment-findings-policy-and-captured.md
    - id: TST-ACC-CLS-046
      file: TST-ACC-CLS-046-transaction-readiness-reasons-and.md
    - id: TST-ACC-CLS-047
      file: TST-ACC-CLS-047-period-and-run-transition.md
    - id: TST-ACC-CLS-048
      file: TST-ACC-CLS-048-close-history-erasure.md
    - id: TST-ACC-CLS-049
      file: TST-ACC-CLS-049-close-and-reopen-infrastructure.md
    - id: TST-ACC-CLS-050
      file: TST-ACC-CLS-050-fiscal-period-permission.md
    - id: TST-ACC-CLS-051
      file: TST-ACC-CLS-051-demonstrated-reconciliation-close-readiness-handoff.md
  reports:
    - file: TESTING-EXAMINATION-2026-10-23.md
      title: Partial Month-End Close Testing Back-Fill
---
# Month-End Closing

## Purpose

Month-End Closing gives finance staff a review, execution and evidence trail for completing each business unit’s monthly books. Controllers inspect outstanding work, submit a close and follow its durable result. An eligible reopen supports correction while retaining the evidence of the earlier close.

## Boundary

The module manages closing state, readiness, execution and retained closing evidence. Books supplies the calendar and policy configuration. Batch management performs the close-owned revenue posting and reversal, while Transactions supplies the aging report type. Reconciliation owns payment findings and late-effect posting. Platform supplies execution, permissions, names and snapshot infrastructure, and Accounting Maintenance hosts the customer data participant. The present deployment shares functions with other Accounting modules.

## Features

| Feature | Concepts | Capabilities | Journeys |
|---|---|---|---|
| `FEAT-ACC-CLS-01` — Period Calendar and Posting Protection | 1 | 3 | 1 |
| `FEAT-ACC-CLS-02` — Readiness Review | 1 | 4 | 1 |
| `FEAT-ACC-CLS-03` — Close Execution and Correction | 1 | 5 | 3 |
| `FEAT-ACC-CLS-04` — Execution History and Retained Evidence | 1 | 4 | 1 |

These groups cover every declared operation and published action grant. The source index includes all module tables, workflows, test files and hosted pages; proof limitations remain recorded separately.

## Capabilities

| Id | Title | Product Intent | Implementation Evidence |
|---|---|---|---|
| `CAP-ACC-CLS-001` | Understand a business unit’s close calendar | proposed | observed |
| `CAP-ACC-CLS-002` | Check whether a close or reopen is available | proposed | observed |
| `CAP-ACC-CLS-003` | Protect periods from ordinary postings during close | confirmed | observed |
| `CAP-ACC-CLS-004` | Assess a month’s readiness to close | confirmed | observed |
| `CAP-ACC-CLS-005` | Resolve ledger work that prevents closing | confirmed | observed |
| `CAP-ACC-CLS-006` | Review payment reconciliation before closing | confirmed | partially-observed |
| `CAP-ACC-CLS-007` | Preview the entries a close can recognize | confirmed | partially-observed |
| `CAP-ACC-CLS-008` | Complete a guarded month-end close | confirmed | partially-observed |
| `CAP-ACC-CLS-009` | Recognize close-owned revenue and reverse it on reopen | proposed | observed |
| `CAP-ACC-CLS-010` | Finish the fiscal year and maintain future calendars | proposed | observed |
| `CAP-ACC-CLS-011` | Reopen the most recent closed month for correction | confirmed | observed |
| `CAP-ACC-CLS-012` | Recover an interrupted close or reopen | proposed | inconsistent |
| `CAP-ACC-CLS-013` | Track execution and review close history | proposed | observed |
| `CAP-ACC-CLS-014` | Retain the evidence and history of each close | proposed | observed |
| `CAP-ACC-CLS-015` | Request receivables aging for the closed month | confirmed | inconsistent |
| `CAP-ACC-CLS-016` | Include close history in data export and erasure | proposed | observed |

## Journeys

| Id | Title | Product Intent | Browser Policy |
|---|---|---|---|
| `JNY-ACC-CLS-001` | A controller completes a clean close and reviews its evidence | proposed | required |
| `JNY-ACC-CLS-002` | A controller resolves the work preventing a close | proposed | required |
| `JNY-ACC-CLS-003` | A controller corrects the latest closed month | proposed | required |
| `JNY-ACC-CLS-004` | A controller completes the year through its final month | proposed | optional |
| `JNY-ACC-CLS-005` | A controller recovers an interrupted close | proposed | optional |
| `JNY-ACC-CLS-006` | Staff handle work dated in a closed month | confirmed | required |

## Testing Tree

Detailed capability tests live in Design, cumulative feature acceptance lives in Planning and executable-suite records live in Implementation. The structured tree lists sixteen capability specifications, four feature suites and fifty-one executable suites. Category, invariant, permission and lifecycle dispositions retain the open coverage gaps, and the examination report records the remaining checker limitation.
