---
id: MOD-ACC-BAT
title: Batch Management
product_area: accounting
module: batches
revision: 2
status: draft
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
repositories:
  - name: services-accounting
    paths:
      - modules/batches
      - >-
        aws/accounting.service.ts (batches, batch-postings, subledger-entries,
        subledger-entry-lines, revenue-schedule-entries, recurring-batches,
        batch-assignment-settings permission groups)
      - docs/accounting/batches.md
      - docs/accounting/recurring-batches.md
      - docs/accounting/revenue-schedules.md
      - docs/migrations/batch-posting
      - docs/migrations/transaction-processing/batches
      - >-
        docs/architecture/accounting-2.0 (02-decisions, 08-batch-posting,
        14-posting-export-delivery)
      - docs/milestones/ACCT-M1-books-and-invoices.md
      - docs/milestones/plans/ACCT-M1-plan.md
      - docs/milestones/ACCT-M3-batch-posting-and-ledger.md
      - docs/milestones/walkthroughs/ACCT-M3-handoff.md
  - name: react-console
    paths:
      - 'app/(console)/console/[tenantId]/accounting/batches'
      - components/accounting/batches
      - components/configuration/recurring-batches
      - components/configuration/batch-assignment
      - lib/configuration/recurring-batches.ts
      - lib/authz/backend-aliases.ts (the batch keys)
      - acceptance/accounting/inventory (area BAT)
      - acceptance/accounting/journeys/batches-posting
      - acceptance/accounting/playwright/journeys/batches-posting
owns:
  - >-
    Accounting document collections and their lifecycle, timing, current totals,
    recorded statistics and protection
  - >-
    Recurring intake configuration, occurrence handling and business-unit
    assignment choices
  - Accounting submissions and retained posting and recovery history
  - 'Stored ledger entries, their account movements and line reporting'
  - Deferred revenue plans and the accounting functions consumed by fiscal close
  - Inter-unit account mappings consumed during posting
  - Posting attention and its scheduled maintenance
does_not_own:
  - record: >-
      Financial ownership, fiscal calendars, accounts and unit accounting
      policies
    owner: 'MOD-ACC-BKS (Books, business units and chart of accounts)'
  - record: >-
      Product accounting configuration, deferral strategies and revenue
      allocation
    owner: MOD-ACC-PRD (Products)
  - record: >-
      Source documents and their issuance, correction, receivable and money
      lifecycles
    owner: MOD-ACC-TRX (Transactions)
  - record: 'Fiscal orchestration, period states and close experiences'
    owner: MOD-ACC-CLS (Month-end close)
  - record: Payout investigation and its accounting requests
    owner: MOD-ACC-REC (Reconciliation)
  - record: Scheduled document generation through billing
    owner: MOD-BIL-BIL (Billing)
  - record: Checkout orders and their selected intake collections
    owner: MOD-COM-ORD (Commerce orders)
  - record: Occurrence delivery and workspace-deletion orchestration
    owner: >-
      Accounting maintenance module (scheduling) and MOD-PFM-TNL (workspace
      lifecycle)
  - record: >-
      Authorization, durable execution, query infrastructure and attention
      responsibility
    owner: 'Platform (MOD-PFM-SEC, MOD-PFM-OPS, MOD-PFM-QRY, MOD-PFM-ELG)'
  - record: Report presentation for ledger and deferred revenue analysis
    owner: MOD-PFM-QRY (Platform queries and reporting)
hosted_screens:
  - route: '/console/{tenantId}/accounting/batches'
    purpose: 'Inspect collection states, filters and current figures'
  - route: '/console/{tenantId}/accounting/batches/new'
    purpose: Create a collection with optional scheduled retirement
  - route: '/console/{tenantId}/accounting/batches/{batchId}'
    purpose: >-
      Review collection documents, validation, progress, ledger results and
      available actions
  - route: '/console/{tenantId}/accounting/batches/{batchId}/edit'
    purpose: Correct eligible collection details
  - route: '/console/{tenantId}/configuration/accounting/recurringBatches'
    purpose: Maintain recurring intake and inspect occurrence history
  - route: '/console/{tenantId}/configuration/accounting/batchAssignments'
    purpose: >-
      Maintain unit routing defaults and ordered rules, then evaluate example
      facts
supersedes:
  - >-
    react-console acceptance inventory area BAT (capabilities CAP-ACC-BAT-001 to
    020; CAP-ACC-BAT-021, delivery and export, is not built and is a finding)
  - react-console acceptance inventory rules RUL-ACC-BAT-001 to 071
  - >-
    react-console acceptance journeys ACT-ACC-0500 to ACT-ACC-0553
    (batches-posting)
evidence:
  - >-
    Pinned Accounting source registration includes the batch API, storage,
    rules, execution, recurring intake, attention and fiscal integration paths.
    The coverage index maps source families to their specification homes; it is
    not a claim that source tests were executed.
  - >-
    Pinned console registration includes batch experiences, recurring and
    assignment configuration, permission aliases and earlier acceptance
    material. Source citations and test bindings identify the inspected
    evidence; the examination report records the remaining proof limits.
  - >-
    Testing back-fill relocates detailed capability proof to design, adds
    cumulative feature acceptance and registers inspected executable suites.
    Binding identifies source assertions, not a run or product approval.
coverage_catalog: >-
  ### Indexed source coverage


  | Measure | Covered | Ratio |

  |---|---|---|

  | HTTP operations (`operationId` in `modules/batches/aws/api/*.routes.ts`; the
  health route is infrastructure) | 29 of 29 | 29/29 |

  | Table files `modules/batches/db/*.table.ts` (13 tables), each named in a
  capability's evidence | 10 of 10 | 10/10 |

  | Views `modules/batches/db/*.view.ts` | 3 of 3 | 3/3 |

  | Permission keys declared for the module's groups in
  `aws/accounting.service.ts` | 22 of 22 (4 explicitly declared keys required by
  no route: `FND-ACC-BAT-012`) | 22/22 |

  | End-to-end specification files `modules/batches/tests/e2e` (plus one support
  file) | 9 of 9 | 9/9 |

  | Integration specification files `modules/batches/tests/integration` | 55 of
  55 | 55/55 |

  | Unit specification files outside `tests/unit/carried` | 21 of 21 | 21/21 |

  | Carried Rhythm 1.0 unit suites `tests/unit/carried` (regression reference) |
  54 files, named by folder | 54/54 |

  | Posting state machines (`accounting-batch-posting-post`, `-unpost`); the
  stack also hosts fiscal close's two, owned by `MOD-ACC-CLS` | 2 of 2 | 2/2 |

  | Scheduled work and schedules (`accounting.recurring-batch.roll`,
  `accounting.batch.auto-close`, the hourly attention sweep) | 3 of 3 | 3/3 |

  | Queues | none | 0/0 |

  | Console screens in scope | 6 of 6 | 6/6 |

  | Acceptance inventory capabilities of area BAT named in a `supersedes` | 20
  of 21 (`FND-ACC-BAT-022`) | 20/21 |

  | Acceptance inventory rules of area BAT named in a `supersedes` | 71 of 71 |
  71/71 |

  | batches-posting journeys named in a `supersedes` | 54 of 54 | 54/54 |

  | Their Playwright specifications bound in an acceptance scenario | 30 of 32;
  two remain journey or finding evidence | 30/32 |


  ### Operation homes


  | Operation | Capability |

  |---|---|

  | `createBatch` | `CAP-ACC-BAT-001` |

  | `listBatches`, `getBatch`, `getDependentBatches` | `CAP-ACC-BAT-002` |

  | `updateBatch` | `CAP-ACC-BAT-003` |

  | `closeBatch`, `reopenBatch`, `archiveBatch`, `unarchiveBatch`,
  `listBatchActions`, `performBatchAction` | `CAP-ACC-BAT-004` |

  | `deleteBatch` | `CAP-ACC-BAT-006` |

  | `createRecurringBatch`, `listRecurringBatches`, `getRecurringBatch`,
  `updateRecurringBatch`, `deleteRecurringBatch` | `CAP-ACC-BAT-009` |

  | `listRecurringBatchRuns`, `previewRecurringBatchRoll` | `CAP-ACC-BAT-010` |

  | `getBatchAssignmentSettings`, `saveBatchAssignmentSettings`,
  `deleteBatchAssignmentSettings`, `evaluateBatchAssignment` | `CAP-ACC-BAT-011`
  |

  | `previewBatchPostings` | `CAP-ACC-BAT-012` |

  | `postBatches` (and the `post` action) | `CAP-ACC-BAT-013` |

  | `unpostBatches` (and the `unpost` action) | `CAP-ACC-BAT-016` |

  | `listSubledgerEntries`, `getSubledgerEntry` | `CAP-ACC-BAT-018` |

  | `describeInvoiceLineRevenue` | `CAP-ACC-BAT-019` |

  | `post_system_batch`, `reverse_system_batch`, `recognise_due_entries`,
  `unrecognise_entries` (service functions the close calls) | `CAP-ACC-BAT-020`
  |


  ### Storage and projection homes


  | File | Capabilities |

  |---|---|

  | `batches.table.ts` | `CAP-ACC-BAT-001` to `CAP-ACC-BAT-008`,
  `CAP-ACC-BAT-010` |

  | `batches.view.ts` | `CAP-ACC-BAT-002` |

  | `batch-postings.table.ts` | `CAP-ACC-BAT-013`, `CAP-ACC-BAT-016` |

  | `batch-posting-jobs.table.ts` | `CAP-ACC-BAT-013`, `CAP-ACC-BAT-016` |

  | `subledger-entries.table.ts`, `subledger-entry-lines.table.ts` |
  `CAP-ACC-BAT-015`, `CAP-ACC-BAT-017`, `CAP-ACC-BAT-018` |

  | `subledger-entry-lines.view.ts` | `CAP-ACC-BAT-018` |

  | `revenue-recognition-schedules.table.ts` | `CAP-ACC-BAT-019`,
  `CAP-ACC-BAT-020` |

  | `revenue-schedule-entries.view.ts` | `CAP-ACC-BAT-019` |

  | `recurring-batches.table.ts` | `CAP-ACC-BAT-009`, `CAP-ACC-BAT-010` |

  | `batch-assignment-settings.table.ts`, `batch-assignment-rules.table.ts` |
  `CAP-ACC-BAT-011` |

  | `business-unit-inter-entity-accounts.table.ts` | `CAP-ACC-BAT-014`
  (`FND-ACC-BAT-011`) |


  ### Authorization homes


  | Key | Capability or evidence home |

  |---|---|

  | `accounting.batches.read` | `CAP-ACC-BAT-002`, `CAP-ACC-BAT-004` |

  | `accounting.batches.create` | `CAP-ACC-BAT-001`, `CAP-ACC-BAT-005` |

  | `accounting.batches.update` | `CAP-ACC-BAT-003`, `CAP-ACC-BAT-004`,
  `CAP-ACC-BAT-005`, `CAP-ACC-BAT-007` |

  | `accounting.batches.delete` | `CAP-ACC-BAT-006` |

  | `accounting.batches.query` | `CAP-ACC-BAT-002` |

  | `accounting.batches.bulk` | `FND-ACC-BAT-012` |

  | `accounting.batch-postings.post` | `CAP-ACC-BAT-013`, `CAP-ACC-BAT-004` |

  | `accounting.batch-postings.unpost` | `CAP-ACC-BAT-016`, `CAP-ACC-BAT-004` |

  | `accounting.batch-postings.preview` | `CAP-ACC-BAT-012` |

  | `accounting.subledger-entries.read` | `CAP-ACC-BAT-018`, `CAP-ACC-BAT-019` |

  | `accounting.subledger-entry-lines.query` | `CAP-ACC-BAT-018` |

  | `accounting.revenue-schedule-entries.query` | `CAP-ACC-BAT-019` |

  | `accounting.recurring-batches.read`, `.create`, `.update`, `.delete` |
  `CAP-ACC-BAT-009`, `CAP-ACC-BAT-010` |

  | `accounting.recurring-batches.bulk` | `FND-ACC-BAT-012` |

  | `accounting.batch-assignment-settings.read`, `.update`, `.delete` |
  `CAP-ACC-BAT-011` |

  | `accounting.batch-assignment-settings.create`, `.bulk` | `FND-ACC-BAT-012` |


  ### Test-source homes


  | Files | Capabilities |

  |---|---|

  | `e2e/batches.e2e.spec.js`, `e2e/batch-actions.e2e.spec.js`,
  `e2e/batch-totals.e2e.spec.js` | `CAP-ACC-BAT-001` to `CAP-ACC-BAT-004`,
  `CAP-ACC-BAT-006`, `CAP-ACC-BAT-009` |

  | `e2e/recurring-batches.e2e.spec.js`, `e2e/batches-security.e2e.spec.js`,
  `e2e/batch-assignment-settings.e2e.spec.js` | `CAP-ACC-BAT-009`,
  `CAP-ACC-BAT-010`, `CAP-ACC-BAT-011` |

  | `e2e/batch-postings.e2e.spec.js`, `e2e/subledger-entries.e2e.spec.js`,
  `e2e/system-batches.e2e.spec.js` | `CAP-ACC-BAT-012`, `CAP-ACC-BAT-013`,
  `CAP-ACC-BAT-016`, `CAP-ACC-BAT-018`, `CAP-ACC-BAT-004`, `CAP-ACC-BAT-006` |

  | `integration/db/*` (5) | `CAP-ACC-BAT-001`, `CAP-ACC-BAT-002`,
  `CAP-ACC-BAT-009`, `CAP-ACC-BAT-011`, `CAP-ACC-BAT-018`, `CAP-ACC-BAT-019` |

  | `integration/services/persistence/batches*`, `batch-totals*`,
  `batch-attention-items*` | `CAP-ACC-BAT-001` to `CAP-ACC-BAT-008` |

  | `integration/services/persistence/recurring-batches*`,
  `batch-assignment-settings*` (including the queries spec) | `CAP-ACC-BAT-009`,
  `CAP-ACC-BAT-011` |

  | `integration/services/persistence/batch-postings.queries*`,
  `posting-periods.queries*` | `CAP-ACC-BAT-013`, `CAP-ACC-BAT-016` |

  | `integration/services/persistence/subledger-entries*`,
  `ledger-minor-units*`, `reference-records*` | `CAP-ACC-BAT-014`,
  `CAP-ACC-BAT-017`, `CAP-ACC-BAT-018` |

  | `integration/services/persistence/revenue-recognition-schedules*`,
  `system-batches.queries*` | `CAP-ACC-BAT-019`, `CAP-ACC-BAT-020` |

  | `integration/services/posting/*` (20, including
  `foreign-currency-table-rate`) | `CAP-ACC-BAT-013` to `CAP-ACC-BAT-016`,
  `CAP-ACC-BAT-019` |

  | `integration/services/jobs/*` (4) | `CAP-ACC-BAT-013` |

  | `integration/services/close/*` (6) | `CAP-ACC-BAT-013`, `CAP-ACC-BAT-016`,
  `CAP-ACC-BAT-020`, `CAP-ACC-BAT-004` |

  | `integration/services/roll/*` (2) | `CAP-ACC-BAT-009`, `CAP-ACC-BAT-010` |

  | `integration/services/lifecycle/ledger-purge*` | `CAP-ACC-BAT-017` |

  | `integration/well-known-objects*` | `CAP-ACC-BAT-015` (the carried suites'
  fixtures) |

  | `unit/actions`, `unit/attention`, `unit/close`, `unit/jobs`, `unit/rules`,
  `unit/defects`, `unit/carried-cases.spec.js` | `CAP-ACC-BAT-004`,
  `CAP-ACC-BAT-008`, `CAP-ACC-BAT-011` to `CAP-ACC-BAT-015`, `CAP-ACC-BAT-018`
  to `CAP-ACC-BAT-020` |

  | `unit/carried/**` (Rhythm 1.0 suites of batches, batch posting, recurring
  batches, batch assignment, financial transactions, fiscal years) |
  `CAP-ACC-BAT-001` to `CAP-ACC-BAT-015` (regression reference) |
testing:
  capability_test_specifications:
    - ATS-ACC-BAT-001
    - ATS-ACC-BAT-002
    - ATS-ACC-BAT-003
    - ATS-ACC-BAT-004
    - ATS-ACC-BAT-005
    - ATS-ACC-BAT-006
    - ATS-ACC-BAT-007
    - ATS-ACC-BAT-008
    - ATS-ACC-BAT-009
    - ATS-ACC-BAT-010
    - ATS-ACC-BAT-011
    - ATS-ACC-BAT-012
    - ATS-ACC-BAT-013
    - ATS-ACC-BAT-014
    - ATS-ACC-BAT-015
    - ATS-ACC-BAT-016
    - ATS-ACC-BAT-017
    - ATS-ACC-BAT-018
    - ATS-ACC-BAT-019
    - ATS-ACC-BAT-020
  feature_acceptance_suites:
    - FAS-ACC-BAT-01
    - FAS-ACC-BAT-02
    - FAS-ACC-BAT-03
    - FAS-ACC-BAT-04
    - FAS-ACC-BAT-05
  executable_suites:
    - TST-ACC-BAT-001
    - TST-ACC-BAT-002
    - TST-ACC-BAT-003
    - TST-ACC-BAT-004
    - TST-ACC-BAT-005
    - TST-ACC-BAT-006
    - TST-ACC-BAT-007
    - TST-ACC-BAT-008
    - TST-ACC-BAT-009
    - TST-ACC-BAT-010
    - TST-ACC-BAT-011
    - TST-ACC-BAT-012
    - TST-ACC-BAT-013
    - TST-ACC-BAT-014
    - TST-ACC-BAT-015
    - TST-ACC-BAT-016
    - TST-ACC-BAT-017
    - TST-ACC-BAT-018
    - TST-ACC-BAT-019
    - TST-ACC-BAT-020
    - TST-ACC-BAT-021
    - TST-ACC-BAT-022
    - TST-ACC-BAT-023
    - TST-ACC-BAT-024
    - TST-ACC-BAT-025
    - TST-ACC-BAT-026
    - TST-ACC-BAT-027
    - TST-ACC-BAT-028
    - TST-ACC-BAT-029
    - TST-ACC-BAT-030
    - TST-ACC-BAT-031
    - TST-ACC-BAT-032
    - TST-ACC-BAT-033
    - TST-ACC-BAT-034
    - TST-ACC-BAT-035
    - TST-ACC-BAT-036
    - TST-ACC-BAT-037
    - TST-ACC-BAT-038
    - TST-ACC-BAT-039
    - TST-ACC-BAT-040
    - TST-ACC-BAT-041
    - TST-ACC-BAT-042
    - TST-ACC-BAT-043
    - TST-ACC-BAT-044
    - TST-ACC-BAT-045
    - TST-ACC-BAT-046
    - TST-ACC-BAT-047
    - TST-ACC-BAT-048
    - TST-ACC-BAT-049
    - TST-ACC-BAT-050
    - TST-ACC-BAT-051
    - TST-ACC-BAT-052
    - TST-ACC-BAT-053
    - TST-ACC-BAT-054
    - TST-ACC-BAT-055
    - TST-ACC-BAT-056
    - TST-ACC-BAT-057
    - TST-ACC-BAT-058
    - TST-ACC-BAT-059
    - TST-ACC-BAT-060
    - TST-ACC-BAT-061
    - TST-ACC-BAT-062
    - TST-ACC-BAT-063
    - TST-ACC-BAT-064
    - TST-ACC-BAT-065
    - TST-ACC-BAT-066
    - TST-ACC-BAT-067
    - TST-ACC-BAT-068
    - TST-ACC-BAT-069
    - TST-ACC-BAT-070
    - TST-ACC-BAT-071
    - TST-ACC-BAT-072
    - TST-ACC-BAT-073
    - TST-ACC-BAT-074
    - TST-ACC-BAT-075
    - TST-ACC-BAT-076
    - TST-ACC-BAT-077
    - TST-ACC-BAT-078
    - TST-ACC-BAT-079
    - TST-ACC-BAT-080
    - TST-ACC-BAT-081
    - TST-ACC-BAT-082
    - TST-ACC-BAT-083
    - TST-ACC-BAT-084
    - TST-ACC-BAT-085
    - TST-ACC-BAT-086
    - TST-ACC-BAT-087
    - TST-ACC-BAT-088
    - TST-ACC-BAT-089
    - TST-ACC-BAT-090
    - TST-ACC-BAT-091
    - TST-ACC-BAT-092
    - TST-ACC-BAT-093
    - TST-ACC-BAT-094
    - TST-ACC-BAT-095
    - TST-ACC-BAT-096
    - TST-ACC-BAT-097
    - TST-ACC-BAT-098
    - TST-ACC-BAT-099
    - TST-ACC-BAT-100
    - TST-ACC-BAT-101
    - TST-ACC-BAT-102
    - TST-ACC-BAT-103
    - TST-ACC-BAT-104
    - TST-ACC-BAT-105
    - TST-ACC-BAT-106
    - TST-ACC-BAT-107
    - TST-ACC-BAT-108
    - TST-ACC-BAT-109
    - TST-ACC-BAT-110
    - TST-ACC-BAT-111
    - TST-ACC-BAT-112
    - TST-ACC-BAT-113
    - TST-ACC-BAT-114
    - TST-ACC-BAT-115
    - TST-ACC-BAT-116
    - TST-ACC-BAT-117
    - TST-ACC-BAT-118
    - TST-ACC-BAT-119
    - TST-ACC-BAT-120
    - TST-ACC-BAT-121
    - TST-ACC-BAT-122
    - TST-ACC-BAT-123
    - TST-ACC-BAT-124
    - TST-ACC-BAT-125
    - TST-ACC-BAT-126
    - TST-ACC-BAT-127
    - TST-ACC-BAT-128
    - TST-ACC-BAT-129
    - TST-ACC-BAT-130
    - TST-ACC-BAT-131
    - TST-ACC-BAT-132
    - TST-ACC-BAT-133
    - TST-ACC-BAT-134
    - TST-ACC-BAT-135
  counts:
    specifications_extended: 20
    capability_scenarios_before: 159
    capability_scenarios_after: 258
    capability_scenarios_added: 99
    scenarios_added_by_category:
      rule: 4
      transition: 0
      validation: 4
      permission: 3
      edge: 0
      failure: 2
      boundary: 5
      concurrency: 2
      invariant: 1
      interaction: 78
    feature_suites_written: 5
    feature_scenarios: 25
    executable_suites_registered: 135
    executable_suites_by_repository:
      services-accounting: 81
      react-console: 54
    service_suite_kinds:
      integration: 55
      api-lifecycle: 9
      unit: 17
    console_suite_locations:
      acceptance: 32
      e2e: 22
    bindings_made: 267
    bound_capability_scenarios: 142
    bound_feature_scenarios: 0
    proposed_capability_scenarios: 116
    proposed_feature_scenarios: 25
    coverage_gap_findings: 21
    category_gaps: 68
    contradiction_findings: 1
  report: reports/TESTING-EXAMINATION-2026-10-23.md
  requested_report: reports/TESTING-BACKFILL-2026-10-23.md
  pending_binding: FAS-ACC-BAT-05-03
---
# Batch Management

## Purpose

Batch Management connects document collection with accounting completion. Finance preparers gather eligible documents, finish intake and inspect the result. Administrators recover ordinary posted work when correction is allowed. Recurring configuration supplies successive collections and assignment choices, while posting produces ledger records and applicable revenue plans.

## Boundary

This module owns collections, recurring intake, accounting execution, ledger storage and revenue schedules. Transactions owns the source documents. Books and Products own the configuration consumed during posting. Month-end Close orchestrates fiscal recognition and reopening through this module’s system-accounting functions. Reconciliation, Billing and Commerce supply document work at those boundaries. Platform provides authorization, durable jobs, reporting infrastructure, attention responsibility and workspace lifecycle. External accounting delivery remains an identified gap.

## Features

| Feature | Active concepts | Capabilities | Journeys |
|---|---|---|---|
| `FEAT-ACC-BAT-01` — Batch collection and control | 1 | 8 | 1 |
| `FEAT-ACC-BAT-02` — Recurring intake and assignment | 0 | 3 | 1 |
| `FEAT-ACC-BAT-03` — Posting and ordinary recovery | 1 | 5 | 2 |
| `FEAT-ACC-BAT-04` — Ledger protection and reading | 1 | 2 | 0 |
| `FEAT-ACC-BAT-05` — Deferred revenue and fiscal recognition | 1 | 2 | 1 |

There are four active broad concepts and one retained superseded concept. The capabilities contain 208 rules, with 201 marked must-prove and 52 deriving confirmed intent from recorded origins. Capability testing contains 258 scenarios, of which 142 bind to registered executable evidence. Five feature suites define twenty-five cumulative scenarios. The frontmatter index identifies coverage homes; findings record incomplete behavior and proof rather than treating indexed coverage as product approval.

## Capabilities

| Id | Feature | Outcome | Intent | Evidence |
|---|---|---|---|---|
| `CAP-ACC-BAT-001` | `FEAT-ACC-BAT-01` | Collect a business unit’s documents in a new batch | proposed; 2 rules with recorded origins | observed |
| `CAP-ACC-BAT-002` | `FEAT-ACC-BAT-01` | Locate batches and inspect their current contents | proposed; 0 rules with recorded origins | observed |
| `CAP-ACC-BAT-003` | `FEAT-ACC-BAT-01` | Correct batch details before posting | proposed; 2 rules with recorded origins | observed |
| `CAP-ACC-BAT-004` | `FEAT-ACC-BAT-01` | Use the batch’s permitted lifecycle actions | proposed; 4 rules with recorded origins | observed |
| `CAP-ACC-BAT-005` | `FEAT-ACC-BAT-01` | Arrange automatic close and posting | proposed; 3 rules with recorded origins | observed |
| `CAP-ACC-BAT-006` | `FEAT-ACC-BAT-01` | Remove an unused batch safely | proposed; 1 rules with recorded origins | observed |
| `CAP-ACC-BAT-007` | `FEAT-ACC-BAT-01` | Place documents in eligible batches and protect posted work | proposed; 5 rules with recorded origins | observed |
| `CAP-ACC-BAT-008` | `FEAT-ACC-BAT-01` | Bring waiting batches to the posting team’s attention | proposed; 0 rules with recorded origins | observed |
| `CAP-ACC-BAT-009` | `FEAT-ACC-BAT-02` | Configure recurring batch streams | proposed; 0 rules with recorded origins | observed |
| `CAP-ACC-BAT-010` | `FEAT-ACC-BAT-02` | Advance a scheduled stream and post its predecessor | proposed; 5 rules with recorded origins | observed |
| `CAP-ACC-BAT-011` | `FEAT-ACC-BAT-02` | Assign new documents to the appropriate batch stream | proposed; 1 rules with recorded origins | observed |
| `CAP-ACC-BAT-012` | `FEAT-ACC-BAT-03` | Inspect posting readiness before submission | proposed; 0 rules with recorded origins | observed |
| `CAP-ACC-BAT-013` | `FEAT-ACC-BAT-03` | Run and monitor a batch posting job | proposed; 3 rules with recorded origins | observed |
| `CAP-ACC-BAT-014` | `FEAT-ACC-BAT-03` | Resolve posting accounts and retain their snapshots | proposed; 9 rules with recorded origins | observed |
| `CAP-ACC-BAT-015` | `FEAT-ACC-BAT-03` | Produce document entries using the applicable accounting method | proposed; 1 rules with recorded origins | observed |
| `CAP-ACC-BAT-016` | `FEAT-ACC-BAT-03` | Unpost a batch for correction and replacement posting | proposed; 7 rules with recorded origins | observed |
| `CAP-ACC-BAT-017` | `FEAT-ACC-BAT-04` | Protect ledger balance, immutability and workspace isolation | proposed; 5 rules with recorded origins | observed |
| `CAP-ACC-BAT-018` | `FEAT-ACC-BAT-04` | Inspect and report on posted ledger entries | proposed; 2 rules with recorded origins | observed |
| `CAP-ACC-BAT-019` | `FEAT-ACC-BAT-05` | Plan deferred revenue and adjust its remaining releases | proposed; 1 rules with recorded origins | observed |
| `CAP-ACC-BAT-020` | `FEAT-ACC-BAT-05` | Post and reverse fiscal-close system batches | proposed; 1 rules with recorded origins | observed |

## Journeys

| Id | Outcome | Intent | E2E policy |
|---|---|---|---|
| `JNY-ACC-BAT-001` | Staff complete a daily collection and review its ledger result | proposed | required |
| `JNY-ACC-BAT-002` | An administrator corrects ordinary posted work | proposed | required |
| `JNY-ACC-BAT-003` | An administrator configures recurring intake and document routing | proposed | required |
| `JNY-ACC-BAT-004` | Staff resolve a failed posting and its dependent work | proposed | required |
| `JNY-ACC-BAT-005` | Fiscal close recognises deferred amounts and protects the period | proposed | required |

## Testing Artifact Tree

| Stage | Directory | Artifacts |
|---|---|---|
| Planning | `planning/acceptance/` | `FAS-ACC-BAT-01`, `FAS-ACC-BAT-02`, `FAS-ACC-BAT-03`, `FAS-ACC-BAT-04`, `FAS-ACC-BAT-05` |
| Design | `design/tests/` | `ATS-ACC-BAT-001`, `ATS-ACC-BAT-002`, `ATS-ACC-BAT-003`, `ATS-ACC-BAT-004`, `ATS-ACC-BAT-005`, `ATS-ACC-BAT-006`, `ATS-ACC-BAT-007`, `ATS-ACC-BAT-008`, `ATS-ACC-BAT-009`, `ATS-ACC-BAT-010`, `ATS-ACC-BAT-011`, `ATS-ACC-BAT-012`, `ATS-ACC-BAT-013`, `ATS-ACC-BAT-014`, `ATS-ACC-BAT-015`, `ATS-ACC-BAT-016`, `ATS-ACC-BAT-017`, `ATS-ACC-BAT-018`, `ATS-ACC-BAT-019`, `ATS-ACC-BAT-020` |
| Implementation | `implementation/tests/` | `TST-ACC-BAT-001`, `TST-ACC-BAT-002`, `TST-ACC-BAT-003`, `TST-ACC-BAT-004`, `TST-ACC-BAT-005`, `TST-ACC-BAT-006`, `TST-ACC-BAT-007`, `TST-ACC-BAT-008`, `TST-ACC-BAT-009`, `TST-ACC-BAT-010`, `TST-ACC-BAT-011`, `TST-ACC-BAT-012`, `TST-ACC-BAT-013`, `TST-ACC-BAT-014`, `TST-ACC-BAT-015`, `TST-ACC-BAT-016`, `TST-ACC-BAT-017`, `TST-ACC-BAT-018`, `TST-ACC-BAT-019`, `TST-ACC-BAT-020`, `TST-ACC-BAT-021`, `TST-ACC-BAT-022`, `TST-ACC-BAT-023`, `TST-ACC-BAT-024`, `TST-ACC-BAT-025`, `TST-ACC-BAT-026`, `TST-ACC-BAT-027`, `TST-ACC-BAT-028`, `TST-ACC-BAT-029`, `TST-ACC-BAT-030`, `TST-ACC-BAT-031`, `TST-ACC-BAT-032`, `TST-ACC-BAT-033`, `TST-ACC-BAT-034`, `TST-ACC-BAT-035`, `TST-ACC-BAT-036`, `TST-ACC-BAT-037`, `TST-ACC-BAT-038`, `TST-ACC-BAT-039`, `TST-ACC-BAT-040`, `TST-ACC-BAT-041`, `TST-ACC-BAT-042`, `TST-ACC-BAT-043`, `TST-ACC-BAT-044`, `TST-ACC-BAT-045`, `TST-ACC-BAT-046`, `TST-ACC-BAT-047`, `TST-ACC-BAT-048`, `TST-ACC-BAT-049`, `TST-ACC-BAT-050`, `TST-ACC-BAT-051`, `TST-ACC-BAT-052`, `TST-ACC-BAT-053`, `TST-ACC-BAT-054`, `TST-ACC-BAT-055`, `TST-ACC-BAT-056`, `TST-ACC-BAT-057`, `TST-ACC-BAT-058`, `TST-ACC-BAT-059`, `TST-ACC-BAT-060`, `TST-ACC-BAT-061`, `TST-ACC-BAT-062`, `TST-ACC-BAT-063`, `TST-ACC-BAT-064`, `TST-ACC-BAT-065`, `TST-ACC-BAT-066`, `TST-ACC-BAT-067`, `TST-ACC-BAT-068`, `TST-ACC-BAT-069`, `TST-ACC-BAT-070`, `TST-ACC-BAT-071`, `TST-ACC-BAT-072`, `TST-ACC-BAT-073`, `TST-ACC-BAT-074`, `TST-ACC-BAT-075`, `TST-ACC-BAT-076`, `TST-ACC-BAT-077`, `TST-ACC-BAT-078`, `TST-ACC-BAT-079`, `TST-ACC-BAT-080`, `TST-ACC-BAT-081`, `TST-ACC-BAT-082`, `TST-ACC-BAT-083`, `TST-ACC-BAT-084`, `TST-ACC-BAT-085`, `TST-ACC-BAT-086`, `TST-ACC-BAT-087`, `TST-ACC-BAT-088`, `TST-ACC-BAT-089`, `TST-ACC-BAT-090`, `TST-ACC-BAT-091`, `TST-ACC-BAT-092`, `TST-ACC-BAT-093`, `TST-ACC-BAT-094`, `TST-ACC-BAT-095`, `TST-ACC-BAT-096`, `TST-ACC-BAT-097`, `TST-ACC-BAT-098`, `TST-ACC-BAT-099`, `TST-ACC-BAT-100`, `TST-ACC-BAT-101`, `TST-ACC-BAT-102`, `TST-ACC-BAT-103`, `TST-ACC-BAT-104`, `TST-ACC-BAT-105`, `TST-ACC-BAT-106`, `TST-ACC-BAT-107`, `TST-ACC-BAT-108`, `TST-ACC-BAT-109`, `TST-ACC-BAT-110`, `TST-ACC-BAT-111`, `TST-ACC-BAT-112`, `TST-ACC-BAT-113`, `TST-ACC-BAT-114`, `TST-ACC-BAT-115`, `TST-ACC-BAT-116`, `TST-ACC-BAT-117`, `TST-ACC-BAT-118`, `TST-ACC-BAT-119`, `TST-ACC-BAT-120`, `TST-ACC-BAT-121`, `TST-ACC-BAT-122`, `TST-ACC-BAT-123`, `TST-ACC-BAT-124`, `TST-ACC-BAT-125`, `TST-ACC-BAT-126`, `TST-ACC-BAT-127`, `TST-ACC-BAT-128`, `TST-ACC-BAT-129`, `TST-ACC-BAT-130`, `TST-ACC-BAT-131`, `TST-ACC-BAT-132`, `TST-ACC-BAT-133`, `TST-ACC-BAT-134`, `TST-ACC-BAT-135` |

The module performs no inference. Detailed proof gaps remain visible separately from executable registration and execution results.
