---
id: CAP-ACC-CLS-013
title: Track execution and review close history
feature: FEAT-ACC-CLS-04
product_area: accounting
module: close
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes:
  - >-
    CAP-ACC-REC-019 (react-console acceptance inventory, the run and the runs
    list)
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources: []
purpose: >-
  Staff follow close progress and locate earlier close or reopen runs for
  review.
outcomes:
  - 'Each run exposes its steps, attempts and events.'
  - Reviewers locate requests and outcomes across the workspace.
concepts:
  - CON-ACC-CLS-003
actors:
  - ACT-ACC-015
  - ACT-ACC-007
surfaces:
  - console
  - api
preconditions: []
postconditions: []
permissions:
  - key: accounting.fiscal-periods.read
    where_checked: api
    scope: tenant
rules:
  - id: BR-CAP-ACC-CLS-013-01
    proved_by: [ATS-ACC-CLS-013-01, ATS-ACC-CLS-013-05, TST-ACC-CLS-017, TST-ACC-CLS-021]
    statement: >-
      The run view presents period context, ordered step states, cumulative
      attempts, failures, outputs and events in chronological order.
    kind: calculation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/e2e/fiscal-close-runs.e2e.spec.js#lists
      the run’s events, oldest first
    origin: none
  - id: BR-CAP-ACC-CLS-013-02
    proved_by: [ATS-ACC-CLS-013-01, ATS-ACC-CLS-013-05, TST-ACC-CLS-017, TST-ACC-CLS-021]
    statement: A close run includes the readiness captured by its revalidation step.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/e2e/fiscal-close-runs.e2e.spec.js#carries
      the readiness evaluated in the close, and the period as closed
    origin: none
  - id: BR-CAP-ACC-CLS-013-03
    proved_by: [ATS-ACC-CLS-013-02, TST-ACC-CLS-005]
    statement: >-
      The console refreshes queued and running runs every two seconds and
      reloads the selected run after browser refresh.
    kind: policy
    enforced_at:
      - console
    must_prove: true
    provenance: observed
    source: 'react-console:components/accounting/close/close-run-view.tsx:CloseRunView'
    origin: none
  - id: BR-CAP-ACC-CLS-013-04
    proved_by: [ATS-ACC-CLS-013-03, TST-ACC-CLS-017, TST-ACC-CLS-030]
    statement: >-
      Run listing returns newest runs first with unit, year, kind and status
      filters, using pages from one to one hundred items and a default of
      twenty-five.
    kind: policy
    enforced_at:
      - api
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/integration/services/persistence/period-close-runs.queries.integration.spec.js#answers
      every run of the tenant, newest first
    origin: none
  - id: BR-CAP-ACC-CLS-013-05
    proved_by: [ATS-ACC-CLS-013-03, TST-ACC-CLS-017, TST-ACC-CLS-030]
    statement: >-
      Unknown kinds or statuses, invalid page sizes and malformed continuation
      identifiers are refused.
    kind: validation
    enforced_at:
      - api
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/e2e/fiscal-close-runs.e2e.spec.js#refuses
      an unknown kind with 400
    origin: none
  - id: BR-CAP-ACC-CLS-013-06
    proved_by: [ATS-ACC-CLS-013-04, TST-ACC-CLS-017, TST-ACC-CLS-050]
    statement: >-
      A run absent from the workspace, including a foreign run, returns not
      found.
    kind: validation
    enforced_at:
      - service
      - database
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/e2e/fiscal-close-runs.e2e.spec.js#answers
      404 for the run in another tenant
    origin: none
  - id: BR-CAP-ACC-CLS-013-07
    proved_by: [ATS-ACC-CLS-013-04, TST-ACC-CLS-017, TST-ACC-CLS-050]
    statement: >-
      Run reading and console Close History require fiscal-periods read
      permission.
    kind: permission
    enforced_at:
      - api
      - console
    must_prove: true
    provenance: test
    source: >-
      services-accounting:tests/unit/fiscal-close-permissions.spec.ts#is
      required by the fiscal close routes: close by the close, reopen by the
      reopen, read by every other
    origin: >-
      services-accounting:docs/milestones/ACCT-M4-contracts-and-events-for-commerce.md#Rulings
      recorded during the milestone
  - id: BR-CAP-ACC-CLS-013-08
    proved_by: [ATS-ACC-CLS-013-07, TST-ACC-CLS-013]
    statement: >-
      The console resolves returned user references through Platform and retains
      the identifier when a person cannot be named.
    kind: policy
    enforced_at:
      - console
    must_prove: false
    provenance: test
    source: >-
      react-console:lib/accounting/close/http-service.test.ts#names every user
      reference of an answer with one lookup, keeping the id when nobody can be
      named
    origin: none
  - id: BR-CAP-ACC-CLS-013-09
    proved_by: [ATS-ACC-CLS-013-06]
    statement: >-
      The execution view reads at most one hundred jobs for a run, oldest first,
      with no continuation.
    kind: policy
    enforced_at:
      - service
    must_prove: false
    provenance: observed
    source: >-
      services-accounting:modules/fiscal-close/services/persistence/fiscal-close-jobs.ts:listFiscalCloseJobsOfRun
    origin: none
scenarios:
  - id: SC-CAP-ACC-CLS-013-01
    given: September’s close is active.
    when: The controller reloads its run page.
    then: The page restores that run and displays subsequent progress.
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0617.spec.ts#ACT-ACC-0617
  - id: SC-CAP-ACC-CLS-013-02
    given: History contains both run kinds across two business units.
    when: The auditor filters to one unit’s reopens.
    then: The result contains that unit’s reopen runs in newest-first order.
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/integration/services/persistence/period-close-runs.queries.integration.spec.js#filters
      by unit and year
edge_cases: []
constraints: []
depends_on:
  - CAP-ACC-CLS-008
related:
  - CAP-ACC-CLS-012
  - CAP-ACC-CLS-014
journeys:
  - JNY-ACC-CLS-001
  - JNY-ACC-CLS-005
open_questions: []
evidence:
  - >-
    services-accounting examination inputs:
    modules/fiscal-close/aws/api/fiscal-close.routes.ts (getFiscalCloseRun,
    listFiscalCloseRuns), fiscal-close.schemas.ts (runPathSchema,
    runsQuerySchema), services/runs/close-run-view.ts,
    services/persistence/period-close-runs.ts, fiscal-close-jobs.ts; tests
    e2e/fiscal-close-runs.e2e.spec.js,
    integration/services/persistence/period-close-runs.queries.integration.spec.js.
  - >-
    react-console examination inputs:
    app/(console)/console/[tenantId]/accounting/close/runs/[runId]/page.tsx,
    history/page.tsx; components/accounting/close/close-run-view.tsx,
    close-history.tsx; lib/accounting/close/http-service.ts and its test.
controls: [TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-IAM-006, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-006, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-TEN-004, TC-DAT-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-AVL-001, TC-AVL-004, TC-MON-001, TC-MON-002, TC-MON-004, TC-PI-001, TC-PI-002, TC-PI-003, TC-PI-004, TC-PI-005]
exercised_by: [FAS-ACC-CLS-04-01, FAS-ACC-CLS-04-02, FAS-ACC-CLS-04-03, FAS-ACC-CLS-04-04, FAS-ACC-CLS-04-05]
suites: [TST-ACC-CLS-005, TST-ACC-CLS-013, TST-ACC-CLS-017, TST-ACC-CLS-021, TST-ACC-CLS-030, TST-ACC-CLS-050]
---

# Track execution and review close history

## Purpose

Staff follow close progress and locate earlier close or reopen runs for review.

## How It Works

Submitting an action takes the controller to its run page. The page follows active execution automatically. Each step includes its outcome and relevant produced records or skipped explanation. Attempt counts span retry jobs for the same run. Events provide an ordered execution history. A browser reload returns to the selected run rather than starting another action. Close History lets a reviewer filter and page through earlier runs. Unsupported filters return validation errors. Missing or foreign runs return not found. The console adds people’s names when Platform can resolve them.

## Relationships

- Close and reopen create the listed runs.
- Recovery begins from failed execution on the run page.
- A successful close links to its lasting record.
