---
id: ATS-ACC-CLS-010
scope: CAP-ACC-CLS-010
product_area: accounting
module: close
revision: 2
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
  - id: ATS-ACC-CLS-010-01
    title: Complete the year through its final period
    level: api
    proves:
      - BR-CAP-ACC-CLS-010-01
      - BR-CAP-ACC-CLS-010-02
    preconditions: The year’s first eleven periods are closed.
    steps: Close the twelfth period.
    expected: A successful year-close run includes year checks and leaves the year closed.
    negative: false
    data_needs: A year awaiting its final close.
    bound_to:
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#runs
        it as a year close, succeeded
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
        the fiscal year with its twelfth period
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#evaluates
        the year’s checks in the close
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
        blocked by every other period of the year not closed
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#passes
        saying the close generates the next year when it is missing
      - TST-ACC-CLS-021
      - TST-ACC-CLS-043
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#the
      year’s last period
    category: transition
  - id: ATS-ACC-CLS-010-02
    title: Keep year-end reconciliation review advisory
    level: api
    proves:
      - BR-CAP-ACC-CLS-010-03
    preconditions: Other months retain reconciliation findings.
    steps: Evaluate the final month with year scope.
    expected: The year review lists those findings as warnings without making them required blockers.
    negative: false
    data_needs: Other-period reconciliation findings.
    bound_to:
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#warns,
        advisory, listing the findings of every other period
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/readiness/evaluate-readiness.integration.spec.js#reviews
        reconciliation’s findings in the other periods of the year
      - TST-ACC-CLS-045
      - TST-ACC-CLS-037
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#year_end_review
    category: rule
  - id: ATS-ACC-CLS-010-03
    title: Generate the expected future years
    level: api
    proves:
      - BR-CAP-ACC-CLS-010-05
    preconditions: September 2026 is open with 2026 and 2027 generated.
    steps: Complete September’s close.
    expected: Roll-forward reports generated 2028 and 2029.
    negative: false
    data_needs: The integration calendar fixture.
    bound_to:
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
        the fiscal years forward to three open years after September 2026
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#records
        the years it generated
      - >-
        services-accounting:modules/fiscal-close/tests/e2e/fiscal-close-runs.e2e.spec.js#lists the
        fiscal years the roll-forward generated as the step’s outputs
      - TST-ACC-CLS-021
      - TST-ACC-CLS-017
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
      the fiscal years forward to three open years after September 2026
    category: rule
  - id: ATS-ACC-CLS-010-04
    title: Stop generation at the calendar horizon
    level: api
    proves:
      - BR-CAP-ACC-CLS-010-06
    preconditions: The unit’s generated years reach its permitted horizon.
    steps: Execute closing and roll-forward.
    expected: The close remains successful and output explains the generation stop.
    negative: false
    data_needs: A horizon-limit calendar fixture.
    bound_to: []
    provenance: proposed
    source: 'services-accounting:modules/fiscal-close/services/jobs/fiscal-close-job-tasks.ts:rollForward'
    category: boundary
  - id: ATS-ACC-CLS-010-05
    title: Preserve closing after generation failure
    level: api
    proves:
      - BR-CAP-ACC-CLS-010-07
    preconditions: Year generation has an injected failure.
    steps: 'Close a month, remove the fault and close the next month.'
    expected: >-
      The first close stays successful despite its failed job, and later generation can fill the
      calendar.
    negative: true
    data_needs: A generation fault and a following eligible close.
    bound_to: []
    provenance: proposed
    source: >-
      services-accounting:docs/migrations/fiscal-close/README.md#Decisions and departures from the
      brief
    category: failure
  - id: ATS-ACC-CLS-010-06
    title: Read year-level readiness before and after completion
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-CLS-010-01
      - BR-CAP-ACC-CLS-010-02
      - BR-CAP-ACC-CLS-010-05
    preconditions: The final month is clean but an earlier month remains open and the next fiscal year is absent.
    steps: >-
      Review the calendar and year checks, complete earlier work, close the final month, then read
      the calendar and readiness for the next current month.
    expected: >-
      The year checks respond to the earlier completion, year standing follows the final close and
      generated years support the next calendar selection.
    negative: false
    data_needs: The final month is clean but an earlier month remains open and the next fiscal year is absent.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
        It Does
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
        the fiscal year with its twelfth period
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
        blocked by every other period of the year not closed
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
        the fiscal years forward to three open years after September 2026
    exercises:
      - CAP-ACC-CLS-010
      - CAP-ACC-CLS-001
      - CAP-ACC-CLS-004
      - CAP-ACC-CLS-008
      - CAP-ACC-CLS-009
      - CAP-ACC-CLS-014
      - CAP-ACC-CLS-015
      - CAP-ACC-CLS-003
      - CAP-ACC-CLS-005
      - CAP-ACC-CLS-006
      - CAP-ACC-CLS-007
    workflows:
      - WF-ACC-CLS-001
      - WF-ACC-CLS-005
evidence:
  - 'services-accounting examination inputs: the bound unit, integration and end-to-end files.'
  - >-
    Testing back-fill: pinned executable files are inspected; no backend or browser result is
    claimed.
coverage:
  rule: covered
  transition: covered
  validation: 'gap: FND-ACC-CLS-066'
  permission: not-applicable
  edge: 'gap: FND-ACC-CLS-066'
  failure: covered
  boundary: covered
  concurrency: 'gap: FND-ACC-CLS-066'
  invariant: 'gap: FND-ACC-CLS-066'
  interaction: covered
coverage_notes:
  rule:
    scenarios:
      - ATS-ACC-CLS-010-02
      - ATS-ACC-CLS-010-03
    provenance: inferred
    source:
      - ATS-ACC-CLS-010-02
      - ATS-ACC-CLS-010-03
    note: Specified coverage does not establish that all variants execute or pass.
  transition:
    scenarios:
      - ATS-ACC-CLS-010-01
    provenance: inferred
    source:
      - ATS-ACC-CLS-010-01
    note: Specified coverage does not establish that all variants execute or pass.
  validation:
    reason: >-
      Generation horizon refusal, partial generation replay and failure after a successful close
      remain unbound.
    provenance: unknown
    source: FND-ACC-CLS-066
  permission:
    reason: >-
      This capability declares no independent action grant; entry-point authority is exercised by
      the calling capability.
    provenance: inferred
    source:
      - CAP-ACC-CLS-010
      - WF-ACC-CLS-001
      - WF-ACC-CLS-005
  edge:
    reason: >-
      Generation horizon refusal, partial generation replay and failure after a successful close
      remain unbound.
    provenance: unknown
    source: FND-ACC-CLS-066
  failure:
    scenarios:
      - ATS-ACC-CLS-010-05
    provenance: inferred
    source:
      - ATS-ACC-CLS-010-05
    note: Specified coverage does not establish that all variants execute or pass.
  boundary:
    scenarios:
      - ATS-ACC-CLS-010-04
    provenance: inferred
    source:
      - ATS-ACC-CLS-010-04
    note: Specified coverage does not establish that all variants execute or pass.
  concurrency:
    reason: >-
      Generation horizon refusal, partial generation replay and failure after a successful close
      remain unbound.
    provenance: unknown
    source: FND-ACC-CLS-066
  invariant:
    reason: >-
      Generation horizon refusal, partial generation replay and failure after a successful close
      remain unbound.
    provenance: unknown
    source: FND-ACC-CLS-066
  interaction:
    scenarios:
      - ATS-ACC-CLS-010-06
    provenance: inferred
    source:
      - ATS-ACC-CLS-010-06
    note: Specified coverage does not establish that all variants execute or pass.
design_coverage:
  objects:
    - DOM-ACC-CLS-001
  invariants:
    - id: INV-DOM-ACC-CLS-001-01
      scenarios: []
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
    - id: INV-DOM-ACC-CLS-001-02
      scenarios: []
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
    - id: INV-DOM-ACC-CLS-001-03
      scenarios: []
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
    - id: INV-DOM-ACC-CLS-001-04
      scenarios: []
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
    - id: INV-DOM-ACC-CLS-001-05
      scenarios: []
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
    - id: INV-DOM-ACC-CLS-001-06
      scenarios: []
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
    - id: INV-DOM-ACC-CLS-001-07
      scenarios: []
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
    - id: INV-DOM-ACC-CLS-001-08
      scenarios: []
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
    - id: INV-DOM-ACC-CLS-001-09
      scenarios: []
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
    - id: INV-DOM-ACC-CLS-001-10
      scenarios: []
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
  permissions:
    - key: accounting.fiscal-periods.close
      where_checked: api
      gap: FND-ACC-CLS-066
      provenance: unknown
      source: FND-ACC-CLS-066
      note: >-
        Existing permission scenarios cover the named cases; complete grant and surface variants
        need qualification.
  workflows:
    - WF-ACC-CLS-001
    - WF-ACC-CLS-005
  state_models:
    - STATE-ACC-CLS-001
    - STATE-ACC-CLS-002
  transitions:
    - model: STATE-ACC-CLS-001
      from: open
      to: closing
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-001
      from: closing
      to: closed
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-001
      from: closing
      to: open
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-001
      from: closed
      to: reopening
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-001
      from: reopening
      to: open
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-001
      from: reopening
      to: closed
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-002
      from: queued
      to: running
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-002
      from: running
      to: succeeded
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-002
      from: running
      to: failed
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-002
      from: queued
      to: failed
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-002
      from: failed
      to: running
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-002
      from: queued
      to: cancelled
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
    - model: STATE-ACC-CLS-002
      from: failed
      to: cancelled
      provenance: unknown
      source: FND-ACC-CLS-066
      gap: FND-ACC-CLS-066
      note: >-
        Writer and workflow scenarios supply selected outcomes; full guard, side-effect and race
        variants require qualification.
  interactions:
    - with: CAP-ACC-CLS-001
      scenario: ATS-ACC-CLS-010-06
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
          the fiscal year with its twelfth period
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
          blocked by every other period of the year not closed
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
          the fiscal years forward to three open years after September 2026
    - with: CAP-ACC-CLS-004
      scenario: ATS-ACC-CLS-010-06
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
          the fiscal year with its twelfth period
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
          blocked by every other period of the year not closed
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
          the fiscal years forward to three open years after September 2026
    - with: CAP-ACC-CLS-008
      scenario: ATS-ACC-CLS-010-06
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
          the fiscal year with its twelfth period
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
          blocked by every other period of the year not closed
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
          the fiscal years forward to three open years after September 2026
    - with: CAP-ACC-CLS-009
      scenario: ATS-ACC-CLS-010-06
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
          the fiscal year with its twelfth period
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
          blocked by every other period of the year not closed
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
          the fiscal years forward to three open years after September 2026
    - with: CAP-ACC-CLS-014
      scenario: ATS-ACC-CLS-010-06
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
          the fiscal year with its twelfth period
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
          blocked by every other period of the year not closed
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
          the fiscal years forward to three open years after September 2026
    - with: CAP-ACC-CLS-015
      scenario: ATS-ACC-CLS-010-06
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
          the fiscal year with its twelfth period
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
          blocked by every other period of the year not closed
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
          the fiscal years forward to three open years after September 2026
    - with: CAP-ACC-CLS-003
      scenario: ATS-ACC-CLS-010-06
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
          the fiscal year with its twelfth period
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
          blocked by every other period of the year not closed
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
          the fiscal years forward to three open years after September 2026
    - with: CAP-ACC-CLS-005
      scenario: ATS-ACC-CLS-010-06
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
          the fiscal year with its twelfth period
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
          blocked by every other period of the year not closed
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
          the fiscal years forward to three open years after September 2026
    - with: CAP-ACC-CLS-006
      scenario: ATS-ACC-CLS-010-06
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
          the fiscal year with its twelfth period
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
          blocked by every other period of the year not closed
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
          the fiscal years forward to three open years after September 2026
    - with: CAP-ACC-CLS-007
      scenario: ATS-ACC-CLS-010-06
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-005-evaluate-a-month-s-close-readiness.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#closes
          the fiscal year with its twelfth period
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/period-rules.spec.js#is
          blocked by every other period of the year not closed
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/jobs/close-job.integration.spec.js#rolls
          the fiscal years forward to three open years after September 2026
---
# Finish the fiscal year and maintain future calendars: Capability Test Specification

## Coverage

Coverage records the cases specified here. Proposed cases and remaining variants need executable proof before qualification.

| Rule | Scenarios or Finding |
|---|---|
| `BR-CAP-ACC-CLS-010-01` | `ATS-ACC-CLS-010-01`, `ATS-ACC-CLS-010-06` |
| `BR-CAP-ACC-CLS-010-02` | `ATS-ACC-CLS-010-01`, `ATS-ACC-CLS-010-06` |
| `BR-CAP-ACC-CLS-010-03` | `ATS-ACC-CLS-010-02` |
| `BR-CAP-ACC-CLS-010-05` | `ATS-ACC-CLS-010-03`, `ATS-ACC-CLS-010-06` |
| `BR-CAP-ACC-CLS-010-06` | `ATS-ACC-CLS-010-04` |
| `BR-CAP-ACC-CLS-010-07` | `ATS-ACC-CLS-010-05` |

## Interactions With Related Capabilities

Read year-level readiness before and after completion. Review the calendar and year checks, complete earlier work, close the final month, then read the calendar and readiness for the next current month. The year checks respond to the earlier completion, year standing follows the final close and generated years support the next calendar selection. The interaction scenario names related capabilities and the workflows it exercises in its structured evidence.
