---
id: ATS-ACC-CLS-007
scope: CAP-ACC-CLS-007
product_area: accounting
module: close
revision: 1
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
  - id: ATS-ACC-CLS-007-01
    title: Preview due recognition and missing accounts
    level: unit
    proves:
      - BR-CAP-ACC-CLS-007-01
      - BR-CAP-ACC-CLS-007-02
    preconditions: Due schedules include valid and incomplete setup.
    steps: Evaluate the recognition check.
    expected: >-
      Valid work has counts and amounts, while missing-account work blocks with
      an explanation.
    negative: true
    data_needs: Due schedules with account variants.
    bound_to:
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#passes
        with what the close will recognize: 41 schedules ($63,215.00)
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#maps
        a schedule to its preview line
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#is
        blocked by a due entry with no G/L account, naming the problem on its
        line
      - TST-ACC-CLS-042
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#revenue_recognition
    category: validation
  - id: ATS-ACC-CLS-007-02
    title: 'Bound recognition by currency, date and workspace'
    level: api
    proves:
      - BR-CAP-ACC-CLS-007-04
      - BR-CAP-ACC-CLS-007-06
      - BR-CAP-ACC-CLS-007-02
      - INV-DOM-ACC-CLS-002-09
    preconditions: 'Schedules span currencies, future dates and workspaces.'
    steps: Request a preview through period end.
    expected: >-
      Totals remain separate, incomplete schedules lead and future or foreign
      entries are excluded.
    negative: false
    data_needs: Multi-currency schedules in two workspaces.
    bound_to:
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#totals
        the schedules due per currency, counting the ones that cannot be
        recognized
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#answers
        each schedule due, those that cannot be recognized first, every property
        mapped
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#counts
        a later entry once its date is reached (premise for its absence above)
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#never
        answers another tenant’s schedules
      - TST-ACC-CLS-034
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#fiscal
      close persistence: previewing the revenue a close recognizes (integration)
    category: boundary
  - id: ATS-ACC-CLS-007-03
    title: Skip unsupported cost of goods sold work
    level: unit
    proves:
      - BR-CAP-ACC-CLS-007-05
    preconditions: A close can proceed on its other checks.
    steps: Evaluate the cost check and execute closing.
    expected: The check is not applicable and the step reports a skipped explanation.
    negative: false
    data_needs: A clean closing fixture.
    bound_to:
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#is
        not applicable, saying Rhythm 2.0 records no COGS entries yet
      - >-
        services-accounting:modules/fiscal-close/tests/e2e/fiscal-close-runs.e2e.spec.js#says
        why the revenue and COGS steps were skipped
      - TST-ACC-CLS-042
      - TST-ACC-CLS-017
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#is
      not applicable, saying Rhythm 2.0 records no COGS entries yet
    category: rule
  - id: ATS-ACC-CLS-007-04
    title: Compare recognition preview across correction
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-CLS-007-01
      - BR-CAP-ACC-CLS-007-04
    preconditions: An ended month has one due schedule and a later entry.
    steps: >-
      Review the preview, close, reopen and review the preview again before
      another close.
    expected: >-
      The recognized due share disappears from due work, returns after reversal
      and is recognized again; the later entry stays outside the first month’s
      work.
    negative: false
    data_needs: An ended month has one due schedule and a later entry.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-002-reopen-the-latest-closed-month.md#What
        It Does
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#passes
        with what the close will recognize: 41 schedules ($63,215.00)
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#totals
        the schedules due per currency, counting the ones that cannot be
        recognized
    exercises:
      - CAP-ACC-CLS-007
      - CAP-ACC-CLS-009
      - CAP-ACC-CLS-004
      - CAP-ACC-CLS-005
      - CAP-ACC-CLS-006
      - CAP-ACC-CLS-010
    workflows:
      - WF-ACC-CLS-005
  - id: ATS-ACC-CLS-007-05
    title: Review a preview with no due revenue
    category: edge
    level: unit
    proves:
      - BR-CAP-ACC-CLS-007-03
    preconditions: The supplied recognition preview has no due schedules.
    steps: Evaluate the revenue check.
    expected: The check passes and reports that there is no due recognition work.
    negative: false
    data_needs: The supplied recognition preview has no due schedules.
    bound_to:
      - TST-ACC-CLS-042
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#passes
        with nothing due
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#passes
      with nothing due
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: not-applicable
  validation: covered
  permission: not-applicable
  edge: covered
  failure: 'gap: FND-ACC-CLS-063'
  boundary: covered
  concurrency: 'gap: FND-ACC-CLS-063'
  invariant: 'gap: FND-ACC-CLS-063'
  interaction: covered
coverage_notes:
  rule:
    scenarios:
      - ATS-ACC-CLS-007-03
    provenance: inferred
    source:
      - ATS-ACC-CLS-007-03
    note: Specified coverage does not establish that all variants execute or pass.
  transition:
    reason: >-
      This capability evaluates or reads state; it defines no independent
      persisted lifecycle transition.
    provenance: inferred
    source:
      - CAP-ACC-CLS-007
      - WF-ACC-CLS-005
  validation:
    scenarios:
      - ATS-ACC-CLS-007-01
    provenance: inferred
    source:
      - ATS-ACC-CLS-007-01
    note: Specified coverage does not establish that all variants execute or pass.
  permission:
    reason: >-
      This capability declares no independent action grant; entry-point
      authority is exercised by the calling capability.
    provenance: inferred
    source:
      - CAP-ACC-CLS-007
      - WF-ACC-CLS-005
  edge:
    scenarios:
      - ATS-ACC-CLS-007-05
    provenance: inferred
    source:
      - ATS-ACC-CLS-007-05
    note: Specified coverage does not establish that all variants execute or pass.
  failure:
    reason: >-
      Amounts at currency minor-unit boundaries and a changing schedule between
      preview and execution need complete proof.
    provenance: unknown
    source: FND-ACC-CLS-063
  boundary:
    scenarios:
      - ATS-ACC-CLS-007-02
    provenance: inferred
    source:
      - ATS-ACC-CLS-007-02
    note: Specified coverage does not establish that all variants execute or pass.
  concurrency:
    reason: >-
      Amounts at currency minor-unit boundaries and a changing schedule between
      preview and execution need complete proof.
    provenance: unknown
    source: FND-ACC-CLS-063
  invariant:
    reason: >-
      Amounts at currency minor-unit boundaries and a changing schedule between
      preview and execution need complete proof.
    provenance: unknown
    source: FND-ACC-CLS-063
  interaction:
    scenarios:
      - ATS-ACC-CLS-007-04
    provenance: inferred
    source:
      - ATS-ACC-CLS-007-04
    note: Specified coverage does not establish that all variants execute or pass.
design_coverage:
  objects:
    - DOM-ACC-CLS-002
  invariants:
    - id: INV-DOM-ACC-CLS-002-01
      scenarios: []
      gap: FND-ACC-CLS-063
      provenance: unknown
      source: FND-ACC-CLS-063
    - id: INV-DOM-ACC-CLS-002-02
      scenarios: []
      gap: FND-ACC-CLS-063
      provenance: unknown
      source: FND-ACC-CLS-063
    - id: INV-DOM-ACC-CLS-002-03
      scenarios: []
      gap: FND-ACC-CLS-063
      provenance: unknown
      source: FND-ACC-CLS-063
    - id: INV-DOM-ACC-CLS-002-04
      scenarios: []
      gap: FND-ACC-CLS-063
      provenance: unknown
      source: FND-ACC-CLS-063
    - id: INV-DOM-ACC-CLS-002-05
      scenarios: []
      gap: FND-ACC-CLS-063
      provenance: unknown
      source: FND-ACC-CLS-063
    - id: INV-DOM-ACC-CLS-002-06
      scenarios: []
      gap: FND-ACC-CLS-063
      provenance: unknown
      source: FND-ACC-CLS-063
    - id: INV-DOM-ACC-CLS-002-07
      scenarios: []
      gap: FND-ACC-CLS-063
      provenance: unknown
      source: FND-ACC-CLS-063
    - id: INV-DOM-ACC-CLS-002-08
      scenarios: []
      gap: FND-ACC-CLS-063
      provenance: unknown
      source: FND-ACC-CLS-063
    - id: INV-DOM-ACC-CLS-002-09
      scenarios:
        - ATS-ACC-CLS-007-02
      provenance: test
      source:
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#fiscal
          close persistence: previewing the revenue a close recognizes
          (integration)
    - id: INV-DOM-ACC-CLS-002-10
      scenarios: []
      gap: FND-ACC-CLS-063
      provenance: unknown
      source: FND-ACC-CLS-063
  permissions:
    - key: accounting.fiscal-periods.read
      where_checked: api
      gap: FND-ACC-CLS-063
      provenance: unknown
      source: FND-ACC-CLS-063
      note: >-
        Existing permission scenarios cover the named cases; complete grant and
        surface variants need qualification.
  workflows:
    - WF-ACC-CLS-005
  state_models: []
  transitions: []
  interactions:
    - with: CAP-ACC-CLS-009
      scenario: ATS-ACC-CLS-007-04
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-002-reopen-the-latest-closed-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#passes
          with what the close will recognize: 41 schedules ($63,215.00)
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#totals
          the schedules due per currency, counting the ones that cannot be
          recognized
    - with: CAP-ACC-CLS-004
      scenario: ATS-ACC-CLS-007-04
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-002-reopen-the-latest-closed-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#passes
          with what the close will recognize: 41 schedules ($63,215.00)
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#totals
          the schedules due per currency, counting the ones that cannot be
          recognized
    - with: CAP-ACC-CLS-005
      scenario: ATS-ACC-CLS-007-04
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-002-reopen-the-latest-closed-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#passes
          with what the close will recognize: 41 schedules ($63,215.00)
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#totals
          the schedules due per currency, counting the ones that cannot be
          recognized
    - with: CAP-ACC-CLS-006
      scenario: ATS-ACC-CLS-007-04
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-002-reopen-the-latest-closed-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#passes
          with what the close will recognize: 41 schedules ($63,215.00)
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#totals
          the schedules due per currency, counting the ones that cannot be
          recognized
    - with: CAP-ACC-CLS-010
      scenario: ATS-ACC-CLS-007-04
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-002-reopen-the-latest-closed-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js#passes
          with what the close will recognize: 41 schedules ($63,215.00)
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/persistence/recognition-previews.queries.integration.spec.js#totals
          the schedules due per currency, counting the ones that cannot be
          recognized
---
# Preview the entries a close can recognize: Capability Test Specification

## Coverage

The table maps each required rule to its specified cases or an explicit finding. Category coverage describes the specification; executable bindings and recorded run results establish different kinds of evidence. Proposed cases remain unqualified.

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

## Interactions With Related Capabilities

Recognition preview and close execution examine the same schedules at different times. The proposed correction sequence compares the preview before closing and after reopening. Existing query tests establish selection and amounts without executing that complete comparison.
