---
id: JNY-ACC-PRD-005
title: Finance completes revenue treatment and missing setups
feature: FEAT-ACC-PRD-04
product_area: accounting
module: products
revision: 3
status: draft
product_intent: proposed
implementation_evidence: partially-observed
supersedes:
  - ACT-ACC-0116
  - ACT-ACC-0118
  - ACT-ACC-0119
  - ACT-ACC-0121
  - ACT-ACC-0133
  - ACT-ACC-0117
  - ACT-ACC-0120
  - ACT-ACC-0141
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
actor: ACT-ACC-008
goal: Provide explicit account and recognition instructions for a course and remaining active products.
capabilities:
  - CAP-ACC-PRD-015
  - CAP-ACC-PRD-016
  - CAP-ACC-PRD-017
  - CAP-ACC-PRD-003
screens:
  - '/console/{tenantId}/configuration/accounting/products/{id}'
  - '/console/{tenantId}/configuration/accounting/products'
steps:
  - 'n': 1
    surface: '/console/{tenantId}/configuration/accounting/products/{id}'
    action: 'Configure course accounts, three recognition dates, a percentage share and Foundation accounts.'
    capability: CAP-ACC-PRD-016
    expected: The saved setup returns its dates and account allocations.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/products/ACT-ACC-0116.spec.ts#ACT-ACC-0116'
  - 'n': 2
    surface: replaceProductAccounting
    action: Attempt foreign-unit revenue and asset revenue assignments.
    capability: CAP-ACC-PRD-015
    expected: Both refusals preserve the previous setup.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/products/ACT-ACC-0118.spec.ts#ACT-ACC-0118'
  - 'n': 3
    surface: '/console/{tenantId}/configuration/accounting/products'
    action: Review catalogue accounting indicators at month end.
    capability: CAP-ACC-PRD-003
    expected: Rows without setups identify reliance on unit defaults.
    provenance: observed
    source: 'react-console:components/accounting-config/products/products-page.tsx:AccountingCell'
  - 'n': 4
    surface: listProductsWithoutAccounting
    action: Request active products in the unit still lacking setups.
    capability: CAP-ACC-PRD-017
    expected: The response lists the missing setups in product order.
    provenance: test
    source: >-
      services-accounting:modules/products/tests/e2e/product-accounting-setups.e2e.spec.js#answers the active
      products with no setup, by name
  - 'n': 5
    surface: replaceProductAccountings
    action: Submit their complete setup configurations together.
    capability: CAP-ACC-PRD-017
    expected: Creation and replacement results retain request order and leave the selected unit fully configured.
    provenance: test
    source: >-
      services-accounting:modules/products/tests/e2e/product-accounting-setups.e2e.spec.js#leaves only the
      product of the other unit without a setup
alternates:
  - from_step: 5
    condition: Posting occurs while a product lacks setup.
    path: Apply the missing-product default and later correct setup without replaying posted entries.
    outcome: The original posted entry stays at its posting-time account.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/products/ACT-ACC-0121.spec.ts#ACT-ACC-0121'
failures:
  - from_step: 5
    condition: A bulk entry selects another unit’s account.
    path: Reject all entries and identify the offending position.
    outcome: Finance retries the corrected request with no partial write.
    provenance: test
    source: >-
      services-accounting:modules/products/tests/e2e/product-accounting-setups.e2e.spec.js#refuses another
      unit’s account in a later setup 400, naming it, and writes nothing
rules_in_play:
  - BR-CAP-ACC-PRD-015-01
  - BR-CAP-ACC-PRD-015-03
  - BR-CAP-ACC-PRD-015-04
  - BR-CAP-ACC-PRD-015-08
  - BR-CAP-ACC-PRD-016-01
  - BR-CAP-ACC-PRD-016-02
  - BR-CAP-ACC-PRD-016-06
  - BR-CAP-ACC-PRD-016-08
  - BR-CAP-ACC-PRD-017-01
  - BR-CAP-ACC-PRD-017-03
assertions:
  - id: AS-JNY-ACC-PRD-005-01
    statement: 'The course setup retains its deferred account, complete date allocation, share and other-unit accounts.'
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/products/ACT-ACC-0116.spec.ts#ACT-ACC-0116'
  - id: AS-JNY-ACC-PRD-005-02
    statement: 'After bulk saving, the chosen unit has no active product lacking setup.'
    provenance: test
    source: >-
      services-accounting:modules/products/tests/e2e/product-accounting-setups.e2e.spec.js#leaves only the
      product of the other unit without a setup
  - id: AS-JNY-ACC-PRD-005-03
    statement: Later setup correction leaves the existing posted entry unchanged.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/products/ACT-ACC-0121.spec.ts#ACT-ACC-0121'
e2e_policy: optional
e2e_reason: Recognition editing has browser coverage while missing-setup bulk work is API-only.
evidence:
  - 'react-console:acceptance/accounting/journeys/products/ACT-ACC-0116.json'
  - 'react-console:acceptance/accounting/playwright/journeys/products/ACT-ACC-0116.spec.ts'
  - 'react-console:acceptance/accounting/playwright/journeys/products/ACT-ACC-0118.spec.ts'
  - 'react-console:acceptance/accounting/playwright/journeys/products/ACT-ACC-0121.spec.ts'
  - 'react-console:components/accounting-config/products/products-page.tsx'
  - 'services-accounting:modules/products/tests/e2e/product-accounting-setups.e2e.spec.js'
  - 'services-accounting:modules/products/tests/e2e/product-accounting.e2e.spec.js'
proved_by: []
---

# Finance completes revenue treatment and missing setups

## Story

Finance supplies recognition and allocation instructions for a course, then reviews the remaining missing setups before closing work. Bulk replacement completes those setups together. Refusals identify the failing configuration without partial persistence. The related posting test checks that later setup changes leave recorded entries intact.
