---
id: FAS-ACC-PRD-04
title: Accounting Configuration Acceptance
feature: FEAT-ACC-PRD-04
product_area: accounting
module: products
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
capabilities:
  - CAP-ACC-PRD-015
  - CAP-ACC-PRD-016
  - CAP-ACC-PRD-017
  - CAP-ACC-PRD-018
scenarios:
  - id: FAS-ACC-PRD-04-01
    title: Finance prepares recognition and allocations on an existing product
    kind: behaviour
    exercises:
      - CAP-ACC-PRD-015
      - CAP-ACC-PRD-016
    relies_on:
      - ATS-ACC-PRD-015-07
      - ATS-ACC-PRD-016-02
      - ATS-ACC-PRD-016-05
    preconditions: A product has eligible income and liability accounts and a standard price.
    steps: >-
      Create a setup with complete fixed-date recognition and valid shares, then read the product summary and
      full setup.
    expected: >-
      The summary and full setup identify the same financial configuration; both collections retain their
      saved values.
    negative: false
    data_needs: A product has eligible income and liability accounts and a standard price.
    bound_to: []
    provenance: proposed
    source: >-
      rhythm-v2-docs:specs/accounting/products/planning/features/FEAT-ACC-PRD-04-product-accounting.md#capabilities;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-015-decide-where-a-product-s-money-goes.md#ATS-ACC-PRD-015-07;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-016-recognise-a-product-s-revenue-over-time-and-share-it.md#ATS-ACC-PRD-016-02;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-016-recognise-a-product-s-revenue-over-time-and-share-it.md#ATS-ACC-PRD-016-05
  - id: FAS-ACC-PRD-04-02
    title: Removing setup restores default classification and missing-setup visibility
    kind: interaction
    exercises:
      - CAP-ACC-PRD-015
      - CAP-ACC-PRD-017
      - CAP-ACC-PRD-018
      - CAP-ACC-PRD-003
    relies_on:
      - ATS-ACC-PRD-015-10
      - ATS-ACC-PRD-017-01
      - ATS-ACC-PRD-018-01
      - ATS-ACC-PRD-018-04
    preconditions: A product has its own class and setup while its kind supplies another default.
    steps: >-
      Remove the setup, inspect the product and missing-setup list, then remove the kind default and inspect
      again.
    expected: >-
      The product reappears as incomplete, falls back to its kind class, then resolves no class after default
      removal.
    negative: false
    data_needs: A product has its own class and setup while its kind supplies another default.
    bound_to: []
    provenance: proposed
    source: >-
      rhythm-v2-docs:specs/accounting/products/planning/features/FEAT-ACC-PRD-04-product-accounting.md#capabilities;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-015-decide-where-a-product-s-money-goes.md#ATS-ACC-PRD-015-10;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-017-find-products-still-lacking-an-accounting-setup-and-set-many-up-at-once.md#ATS-ACC-PRD-017-01;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-018-set-the-default-tax-class-for-each-kind-of-product.md#ATS-ACC-PRD-018-01;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-018-set-the-default-tax-class-for-each-kind-of-product.md#ATS-ACC-PRD-018-04
  - id: FAS-ACC-PRD-04-03
    title: Grouped allocation failure keeps every product incomplete
    kind: lifecycle
    exercises:
      - CAP-ACC-PRD-015
      - CAP-ACC-PRD-016
      - CAP-ACC-PRD-017
    relies_on:
      - ATS-ACC-PRD-017-03
      - ATS-ACC-PRD-016-05
      - ATS-ACC-PRD-015-08
    preconditions: Two products lack setups and the later proposed setup has excessive fixed shares.
    steps: >-
      Bulk-save both, verify neither setup exists, correct the later shares and retry; replace a returned
      setup at its own version.
    expected: >-
      The failed group leaves both incomplete; the corrected group and later versioned replacement produce
      complete setups.
    negative: true
    data_needs: Two products lack setups and the later proposed setup has excessive fixed shares.
    bound_to: []
    provenance: proposed
    source: >-
      rhythm-v2-docs:specs/accounting/products/planning/features/FEAT-ACC-PRD-04-product-accounting.md#capabilities;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-017-find-products-still-lacking-an-accounting-setup-and-set-many-up-at-once.md#ATS-ACC-PRD-017-03;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-016-recognise-a-product-s-revenue-over-time-and-share-it.md#ATS-ACC-PRD-016-05;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-015-decide-where-a-product-s-money-goes.md#ATS-ACC-PRD-015-08
  - id: FAS-ACC-PRD-04-04
    title: Financial specialists and catalogue editors retain separate powers
    kind: permission
    exercises:
      - CAP-ACC-PRD-015
      - CAP-ACC-PRD-017
      - CAP-ACC-PRD-018
      - CAP-ACC-PRD-002
    relies_on:
      - ATS-ACC-PRD-015-12
      - ATS-ACC-PRD-017-05
      - ATS-ACC-PRD-018-07
      - ATS-ACC-PRD-002-13
    preconditions: 'Callers separately hold product, accounting and tax permissions.'
    steps: >-
      Exercise setup reads and writes, missing-setup queries, bulk saving, default changes and product
      creation for each caller.
    expected: >-
      Each operation follows its own permission family, without setup authority granting catalogue or tax
      authority.
    negative: true
    data_needs: 'Callers separately hold product, accounting and tax permissions.'
    bound_to: []
    provenance: proposed
    source: >-
      rhythm-v2-docs:specs/accounting/products/planning/features/FEAT-ACC-PRD-04-product-accounting.md#capabilities;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-015-decide-where-a-product-s-money-goes.md#ATS-ACC-PRD-015-12;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-017-find-products-still-lacking-an-accounting-setup-and-set-many-up-at-once.md#ATS-ACC-PRD-017-05;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-018-set-the-default-tax-class-for-each-kind-of-product.md#ATS-ACC-PRD-018-07;
      rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-002-establish-a-product-under-a-stable-identity.md#ATS-ACC-PRD-002-13
  - id: FAS-ACC-PRD-04-05
    title: Posted accounts survive later setup corrections
    kind: regression
    exercises:
      - CAP-ACC-PRD-015
    relies_on:
      - ATS-ACC-PRD-015-14
    preconditions: An issued invoice names one configured product and one product using unit defaults.
    steps: >-
      Post the batch, inspect resolved ledger accounts, change the configured product revenue account and
      reread the posted entries.
    expected: >-
      Posting uses current configuration and unit fallback; the later setup change leaves existing posted
      accounts unchanged.
    negative: false
    data_needs: An issued invoice names one configured product and one product using unit defaults.
    bound_to:
      - TST-ACC-PRD-011
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/products/ACT-ACC-0121.spec.ts#ACT-ACC-0121'
evidence:
  - >-
    rhythm-v2-docs:specs/accounting/products/planning/features/FEAT-ACC-PRD-04-product-accounting.md#capabilities;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-015-decide-where-a-product-s-money-goes.md#ATS-ACC-PRD-015-07;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-016-recognise-a-product-s-revenue-over-time-and-share-it.md#ATS-ACC-PRD-016-02;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-016-recognise-a-product-s-revenue-over-time-and-share-it.md#ATS-ACC-PRD-016-05
  - >-
    rhythm-v2-docs:specs/accounting/products/planning/features/FEAT-ACC-PRD-04-product-accounting.md#capabilities;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-015-decide-where-a-product-s-money-goes.md#ATS-ACC-PRD-015-10;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-017-find-products-still-lacking-an-accounting-setup-and-set-many-up-at-once.md#ATS-ACC-PRD-017-01;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-018-set-the-default-tax-class-for-each-kind-of-product.md#ATS-ACC-PRD-018-01;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-018-set-the-default-tax-class-for-each-kind-of-product.md#ATS-ACC-PRD-018-04
  - >-
    rhythm-v2-docs:specs/accounting/products/planning/features/FEAT-ACC-PRD-04-product-accounting.md#capabilities;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-017-find-products-still-lacking-an-accounting-setup-and-set-many-up-at-once.md#ATS-ACC-PRD-017-03;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-016-recognise-a-product-s-revenue-over-time-and-share-it.md#ATS-ACC-PRD-016-05;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-015-decide-where-a-product-s-money-goes.md#ATS-ACC-PRD-015-08
  - >-
    rhythm-v2-docs:specs/accounting/products/planning/features/FEAT-ACC-PRD-04-product-accounting.md#capabilities;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-015-decide-where-a-product-s-money-goes.md#ATS-ACC-PRD-015-12;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-017-find-products-still-lacking-an-accounting-setup-and-set-many-up-at-once.md#ATS-ACC-PRD-017-05;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-018-set-the-default-tax-class-for-each-kind-of-product.md#ATS-ACC-PRD-018-07;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-002-establish-a-product-under-a-stable-identity.md#ATS-ACC-PRD-002-13
  - >-
    rhythm-v2-docs:specs/accounting/products/planning/features/FEAT-ACC-PRD-04-product-accounting.md#capabilities;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-015-decide-where-a-product-s-money-goes.md#ATS-ACC-PRD-015-14;
    rhythm-v2-docs:specs/accounting/products/design/tests/ATS-ACC-PRD-016-recognise-a-product-s-revenue-over-time-and-share-it.md#ATS-ACC-PRD-016-01
regression_record:
  - revision: 1
    change: initial
    scenarios:
      - FAS-ACC-PRD-04-01
      - FAS-ACC-PRD-04-02
      - FAS-ACC-PRD-04-03
      - FAS-ACC-PRD-04-04
      - FAS-ACC-PRD-04-05
    reason: Initial cumulative feature acceptance coverage from the pinned specification and executable evidence.
    provenance: documented
    source: 'rhythm-v2-docs:specs/CONVENTIONS.md#5.3 Feature Acceptance Suite (`FAS`)'
---

# Accounting Configuration: Feature Acceptance Suite

## What the Feature Must Do as a Whole

The suite follows financial completeness through setup, recognition, allocation, grouped saving and subsequent correction. Existing posted entries provide a separate regression boundary from configuration used for future posting.

## Interactions Between Capabilities

Setup deletion changes both missing-setup visibility and tax fallback. Grouped saving couples allocation validation to every entry in the request, and independent permissions remain relevant even when the console presents one editor.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish cumulative acceptance for the feature and retain the unresolved execution boundaries. |
