---
id: ADR-ACC-CLS-007
title: Recovery Continues Committed Recognition Before Reversal
product_area: accounting
module: close
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Recovery retains committed financial work and moves forward; cancellation
  restores period state only before completed recognition or reversal.
constrains:
  - WF-ACC-CLS-004
  - WF-ACC-CLS-003
  - STATE-ACC-CLS-001
  - STATE-ACC-CLS-002
  - SCR-ACC-CLS-005
  - DOM-ACC-CLS-003
origin: >-
  OQ-ACC-CLS-003 (open); FND-ACC-CLS-003;
  services-accounting:docs/migrations/fiscal-close/README.md (FC2-4, Follow-ups
  6); batch posting amendment A2 (2026-10-16)
alternatives:
  - option: Permit revenue reversal while cancelling a closing month.
    why_not: >-
      That requires Batch management to add a guarded state exception its
      current system-reversal rule does not provide.
  - option: Forbid cancellation after every committed task.
    why_not: >-
      The current service can safely release protected state before financial
      recognition or reversal completes.
consequences:
  - >-
    Undoing recognized revenue requires completion of the close followed by an
    eligible reopen.
  - >-
    Cancellation messages should explain state restoration and financial-work
    restrictions.
  - >-
    Reopen failure can leave reversed revenue in a reopening month until
    recovery opens it.
supersedes: []
evidence:
  - >-
    services-accounting at f47cb263:
    modules/fiscal-close/services/jobs/close-run-actions.ts:cancelCloseRun;
    services/ports/revenue-recognition-port.ts;
    modules/batches/services/posting-period-guard.ts:POSTING_PERIOD_RULES.
---

# Recovery Continues Committed Recognition Before Reversal

## Context

Cancellation guidance must reflect the posting rules. The present close cannot reverse its own revenue while the period is still closing.

## Decision

Use retry to complete a retained close and a later reopen to reverse it. A retained reopen whose reversal completed must finish through retry. This is the implemented boundary, pending the existing product question.

## Alternatives Considered

Permit revenue reversal while cancelling a closing month. That requires Batch management to add a guarded state exception its current system-reversal rule does not provide.

Forbid cancellation after every committed task. The current service can safely release protected state before financial recognition or reversal completes.

## Consequences

Undoing recognized revenue requires completion of the close followed by an eligible reopen. Cancellation messages should explain state restoration and financial-work restrictions. Reopen failure can leave reversed revenue in a reopening month until recovery opens it.
