---
generated_by: tools/trace-sync.mjs
module: MOD-ACC-PRD
generated_at: 2026-10-23
---

# Products: Traceability

Generated from the test side of the corpus (CONVENTIONS §15). Do not edit: run `node tools/trace-sync.mjs accounting/products`.

## Rules and Their Proof

| Capability | Rule | Must prove | Proving scenarios | Executable suites (latest result) |
|---|---|---|---|---|
| CAP-ACC-PRD-001 | `BR-CAP-ACC-PRD-001-01` All workspaces share a release-managed register of product kinds that application callers cannot modify. | yes | ATS-ACC-PRD-001-01 | TST-ACC-PRD-031 (not-run) |
| CAP-ACC-PRD-001 | `BR-CAP-ACC-PRD-001-02` Accounting kinds appear first: Accounting Products use fixed prices and support bundles, Donation Products take the giver’s amount, and Legacy Products use fixed prices but are never sold. | yes | ATS-ACC-PRD-001-02 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-038 (not-run) |
| CAP-ACC-PRD-001 | `BR-CAP-ACC-PRD-001-03` The register identifies Membership, Commerce and Events kinds by owner and extension record, with membership add-ons and Events kinds inactive. | yes | ATS-ACC-PRD-001-02, ATS-ACC-PRD-001-06 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-038 (not-run) |
| CAP-ACC-PRD-001 | `BR-CAP-ACC-PRD-001-04` A kind declares its pricing model and whether its products support selling, shipping, inventory, deferral, installments and bundles. | no |  |  |
| CAP-ACC-PRD-001 | `BR-CAP-ACC-PRD-001-05` Registry reads return every kind in display order with a count and fail if the register exceeds two hundred entries. | yes | ATS-ACC-PRD-001-05 |  |
| CAP-ACC-PRD-001 | `BR-CAP-ACC-PRD-001-06` Access to the product-kind register requires product read permission. | yes | ATS-ACC-PRD-001-03 | TST-ACC-PRD-028 (not-run) |
| CAP-ACC-PRD-001 | `BR-CAP-ACC-PRD-001-07` The Accounting Products page provides tabs only for Accounting Products, Donation Products and Legacy Products. | yes | ATS-ACC-PRD-001-04 | TST-ACC-PRD-021 (not-run) |
| CAP-ACC-PRD-001 | `BR-CAP-ACC-PRD-001-08` The console creates active Accounting-owned kinds except Legacy Products, which require API creation. | no |  |  |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-01` A new product uses a supplied or name-derived configuration identity of at most 63 characters, starting with a lowercase letter and using lowercase letters, digits and single underscores without reserved words. | yes | ATS-ACC-PRD-002-01 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-031 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-02` Name-derived identities receive no automatic suffix: a collision or a name yielding no valid identity requires the caller to supply one. | yes | ATS-ACC-PRD-002-02 | TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-03` Within a workspace, product identities are unique across product kinds. | yes | ATS-ACC-PRD-002-03 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-031 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-04` Creation requires an active registered kind, an existing business unit in the workspace and a nonblank name. | yes | ATS-ACC-PRD-001-06, ATS-ACC-PRD-002-04 | TST-ACC-PRD-029 (not-run), TST-ACC-PRD-031 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-05` The server discards a submitted pricing model and uses the kind’s model, which the database also requires. | yes | ATS-ACC-PRD-002-05 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-031 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-06` Creation fixes the product’s identity, kind and business unit, and both service and database reject later changes. | yes | ATS-ACC-PRD-002-06, ATS-ACC-PRD-007-10 | TST-ACC-PRD-015 (not-run), TST-ACC-PRD-031 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-07` Creation defaults to active and permits inactive, while ordinary creation and replacement requests cannot choose retired. | no | ATS-ACC-PRD-002-14 |  |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-08` A sale window with both boundaries requires its opening instant to precede its closing instant. | yes | ATS-ACC-PRD-002-07 | TST-ACC-PRD-031 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-09` Cancellation and restocking fees use nonnegative whole minor units of the business unit’s base currency. | yes | ATS-ACC-PRD-002-08 | TST-ACC-PRD-031 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-10` Unsellable kinds reject fees and selling settings, while giver-priced kinds also reject quantity discounts and bundles. | yes | ATS-ACC-PRD-002-09 | TST-ACC-PRD-039 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-11` Product creation commits its record, pricing, components and feature collections together or retains none of those writes. | yes | ATS-ACC-PRD-002-10, ATS-ACC-PRD-002-15 | TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-12` Products with older generated identities remain readable, referenceable and deletable, but replacement, retirement and reactivation fail. | yes | ATS-ACC-PRD-002-11 | TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-13` Products support no custom field values and reject requests containing them. | yes | ATS-ACC-PRD-002-12 | TST-ACC-PRD-029 (not-run), TST-ACC-PRD-042 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-14` Product creation requires product create permission. | yes | ATS-ACC-PRD-002-13 | TST-ACC-PRD-028 (not-run) |
| CAP-ACC-PRD-002 | `BR-CAP-ACC-PRD-002-15` The console derives an editable Code from Name during creation, selects the list’s unit or the working unit, and returns to the list after successful creation. | no |  |  |
| CAP-ACC-PRD-003 | `BR-CAP-ACC-PRD-003-01` Product pages sort by name and identity, default to fifty entries, allow limits up to two hundred and provide a continuation cursor when more entries exist. | yes | ATS-ACC-PRD-003-01 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-041 (not-run) |
| CAP-ACC-PRD-003 | `BR-CAP-ACC-PRD-003-02` Product queries combine kind, status and unit filters with case-insensitive name and identity searches that treat wildcard characters as text. | no |  |  |
| CAP-ACC-PRD-003 | `BR-CAP-ACC-PRD-003-03` Product reads include prices, components, selling settings, an accounting summary or none, and the resolved tax class. | no | ATS-ACC-PRD-003-05, ATS-ACC-PRD-018-09, ATS-ACC-PRD-019-03 |  |
| CAP-ACC-PRD-003 | `BR-CAP-ACC-PRD-003-04` A workspace cannot list or retrieve another workspace’s products. | yes | ATS-ACC-PRD-003-02 | TST-ACC-PRD-013 (not-run), TST-ACC-PRD-028 (not-run), TST-ACC-PRD-031 (not-run) |
| CAP-ACC-PRD-003 | `BR-CAP-ACC-PRD-003-05` Product reads require product read permission, while full accounting setup reads require the separate product-accounting read permission. | yes | ATS-ACC-PRD-003-03 | TST-ACC-PRD-028 (not-run) |
| CAP-ACC-PRD-003 | `BR-CAP-ACC-PRD-003-06` Readers without product edit authority can inspect the product editor with its controls disabled. | yes | ATS-ACC-PRD-003-04 | TST-ACC-PRD-012 (not-run) |
| CAP-ACC-PRD-003 | `BR-CAP-ACC-PRD-003-07` The console defaults to the working unit, keeps tab and unit selections in the address, pages twenty-five records, hides inactive and retired entries by default and identifies missing accounting setup. | no |  |  |
| CAP-ACC-PRD-003 | `BR-CAP-ACC-PRD-003-08` The portal projection removes components, version, accounting summary, confirmation settings, purchase limits and task instructions, retaining only base-currency prices; no portal product route currently uses it. | no |  |  |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-01` Replacement requires the version originally read and rejects a stale version without persisting changes. | yes | ATS-ACC-PRD-004-01, ATS-ACC-PRD-004-11 | TST-ACC-PRD-007 (not-run), TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-02` Replacement clears omitted optional fields and replaces every owned collection, except an omitted confirmation setting retains its stored value. | yes | ATS-ACC-PRD-004-02, ATS-ACC-PRD-014-07 | TST-ACC-PRD-039 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-03` Replacement rejects a body identity differing from the addressed product and refuses changes to kind or business unit. | yes | ATS-ACC-PRD-004-03 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-04` Retired products reject replacement until reactivated. | yes | ATS-ACC-PRD-004-04, ATS-ACC-PRD-005-09, ATS-ACC-PRD-007-10 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-05` An update-locked product accepts replacement only when the request explicitly removes that lock or reduces it to delete-only; product editors may make that change. | yes | ATS-ACC-PRD-004-05, ATS-ACC-PRD-004-10 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-044 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-06` A failed replacement preserves the previous product, prices and components. | yes | ATS-ACC-PRD-002-15, ATS-ACC-PRD-004-06 | TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-07` Product replacement holds the product lock throughout its transaction, serializing it with other product and accounting setup writes. | no |  |  |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-08` Product replacement requires product update permission. | yes | ATS-ACC-PRD-004-07 | TST-ACC-PRD-028 (not-run) |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-09` A replacement naming another workspace is rejected, while submitted pricing model, accounting summary and tax class are discarded as derived values. | yes | ATS-ACC-PRD-004-08 |  |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-10` Console replacement resends loaded values for availability, portal visibility and settings whose controls are hidden. | yes | ATS-ACC-PRD-004-09, ATS-ACC-PRD-012-04, ATS-ACC-PRD-013-05 | TST-ACC-PRD-006 (not-run) |
| CAP-ACC-PRD-004 | `BR-CAP-ACC-PRD-004-11` A console save rejected for a newer version explains the conflict and offers Reload. | no |  |  |
| CAP-ACC-PRD-005 | `BR-CAP-ACC-PRD-005-01` Ordinary replacement changes active products to inactive and back; inactive products leave sale while existing invoices remain valid. | yes | ATS-ACC-PRD-005-01 | TST-ACC-PRD-003 (not-run) |
| CAP-ACC-PRD-005 | `BR-CAP-ACC-PRD-005-02` Retirement advances the read version and changes only status, rejecting an already retired product. | yes | ATS-ACC-PRD-005-02, ATS-ACC-PRD-005-07, ATS-ACC-PRD-005-09, ATS-ACC-PRD-007-10, ATS-ACC-PRD-011-09 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-005 | `BR-CAP-ACC-PRD-005-03` Reactivation makes inactive or retired products active and rejects products already active. | yes | ATS-ACC-PRD-004-11, ATS-ACC-PRD-005-03, ATS-ACC-PRD-005-07, ATS-ACC-PRD-006-11 | TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-005 | `BR-CAP-ACC-PRD-005-04` Retirement and reactivation reject requests missing the read version or carrying an obsolete version. | yes | ATS-ACC-PRD-005-04 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-005 | `BR-CAP-ACC-PRD-005-05` An update lock prevents both retirement and reactivation. | yes | ATS-ACC-PRD-005-05, ATS-ACC-PRD-005-07 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-005 | `BR-CAP-ACC-PRD-005-06` Both lifecycle actions require product update permission. | yes | ATS-ACC-PRD-005-06, ATS-ACC-PRD-005-08 | TST-ACC-PRD-028 (not-run) |
| CAP-ACC-PRD-005 | `BR-CAP-ACC-PRD-005-07` Recorded product intent excludes retired products from new invoice selection while preserving existing invoices. | no |  |  |
| CAP-ACC-PRD-005 | `BR-CAP-ACC-PRD-005-08` Row actions ask for confirmation before activation, deactivation, retirement and reactivation; retired names do not open the editor. | no |  |  |
| CAP-ACC-PRD-006 | `BR-CAP-ACC-PRD-006-01` Products included in another product’s bundle cannot be removed. | yes | ATS-ACC-PRD-005-09, ATS-ACC-PRD-006-01, ATS-ACC-PRD-006-11, ATS-ACC-PRD-011-09 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-031 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-006 | `BR-CAP-ACC-PRD-006-02` Invoice product references, invoice discount-product references and installment line references prevent product deletion. | yes | ATS-ACC-PRD-006-02, ATS-ACC-PRD-006-03 | TST-ACC-PRD-011 (not-run) |
| CAP-ACC-PRD-006 | `BR-CAP-ACC-PRD-006-03` Deletion cascades to prices, components, feature collections, accounting setup and its children, and migrated pricing handovers. | yes | ATS-ACC-PRD-006-04, ATS-ACC-PRD-006-10, ATS-ACC-PRD-009-04 | TST-ACC-PRD-031 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-006 | `BR-CAP-ACC-PRD-006-04` Either product lock prevents deletion. | yes | ATS-ACC-PRD-006-05 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-006 | `BR-CAP-ACC-PRD-006-05` A lock preventing deletion of the accounting setup also prevents deletion of its owning product. | yes | ATS-ACC-PRD-006-06, ATS-ACC-PRD-006-11, ATS-ACC-PRD-015-17 | TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-006 | `BR-CAP-ACC-PRD-006-06` After product deletion commits, Accounting clears its owned confirmation template; cleanup failure is logged and leaves the deletion committed. | yes | ATS-ACC-PRD-006-07, ATS-ACC-PRD-006-11, ATS-ACC-PRD-014-07 | TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-006 | `BR-CAP-ACC-PRD-006-07` A business unit containing products cannot be deleted. | yes | ATS-ACC-PRD-006-08 | TST-ACC-PRD-030 (not-run) |
| CAP-ACC-PRD-006 | `BR-CAP-ACC-PRD-006-08` Product deletion requires product delete permission. | yes | ATS-ACC-PRD-006-09 | TST-ACC-PRD-028 (not-run) |
| CAP-ACC-PRD-006 | `BR-CAP-ACC-PRD-006-09` Deletion returns not found for products outside the current workspace or absent from it. | no | ATS-ACC-PRD-006-10 |  |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-01` Service callers may mutate only product kinds owned by their application, with refusals identifying the owner, kind and caller. | yes | ATS-ACC-PRD-001-06, ATS-ACC-PRD-007-01 | TST-ACC-PRD-042 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-02` Domain service callers cannot mutate Accounting-owned product kinds. | yes | ATS-ACC-PRD-007-01 | TST-ACC-PRD-042 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-03` Console and system callers may write any active product kind, allowing the console to save the common product before its domain extension. | yes | ATS-ACC-PRD-007-02 | TST-ACC-PRD-029 (not-run), TST-ACC-PRD-042 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-04` A domain can save the common product within its own database transaction so the common record and extension share a commit boundary. | yes | ATS-ACC-PRD-007-03, ATS-ACC-PRD-007-10 | TST-ACC-PRD-032 (not-run) |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-05` Database product writes derive workspace, actor and application from session context and reject sessions lacking a workspace or application identity. | yes | ATS-ACC-PRD-007-04 | TST-ACC-PRD-032 (not-run) |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-06` The database saving path shares product validation sentences with Accounting and distinguishes invalid input, incompatible state, absence and unauthorized callers. | yes | ATS-ACC-PRD-007-05 | TST-ACC-PRD-032 (not-run) |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-07` The database saving path requires a supplied identity, writes no accounting setup and rejects product-owned confirmation content. | yes | ATS-ACC-PRD-007-06 | TST-ACC-PRD-032 (not-run) |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-08` Database replacement preserves omitted scalar properties, clears explicit empty values and replaces collections in full. | yes | ATS-ACC-PRD-007-07, ATS-ACC-PRD-007-10 | TST-ACC-PRD-032 (not-run) |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-09` The database path provides creation, replacement and retirement; console API reactivation and deletion currently expose no domain service route. | no |  |  |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-10` Accounting permits a domain product without an extension record and leaves completion or retirement to that domain. | no |  |  |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-11` Database domain saving defaults an omitted component price to zero and compares unweighted component price sums with the bundle’s list prices. | yes | ATS-ACC-PRD-007-08 |  |
| CAP-ACC-PRD-007 | `BR-CAP-ACC-PRD-007-12` Database domain saving continues admitting audiences already held by the product when Commerce’s audience registry exists. | yes | ATS-ACC-PRD-007-09 |  |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-01` A fixed-priced product requires a manually set standard price in its business unit’s base currency. | yes | ATS-ACC-PRD-002-15, ATS-ACC-PRD-008-01, ATS-ACC-PRD-008-11 | TST-ACC-PRD-014 (not-run), TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-02` A giver-priced product rejects price rows because the purchaser supplies the amount. | yes | ATS-ACC-PRD-008-01 | TST-ACC-PRD-014 (not-run), TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-03` Price currencies must belong to the unit, and supported foreign currencies require multicurrency to be enabled. | yes | ATS-ACC-PRD-008-02 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-04` Each price cell selects an amount, a percentage of standard, conversion or prohibition and supplies only the values that mode requires, with percentages from zero to one hundred and at most two decimals. | yes | ATS-ACC-PRD-008-03 | TST-ACC-PRD-031 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-05` Conversion and prohibition modes cannot apply to the base currency. | yes | ATS-ACC-PRD-008-04 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-06` A percentage price cannot target the standard audience and requires a set standard price in the same currency from its own period or the always period. | yes | ATS-ACC-PRD-008-05 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-07` A converted price requires its own audience’s set or percentage base-currency price from the same period or the always period. | yes | ATS-ACC-PRD-008-06 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-08` Validation uses backing rows from the matching or always period and never another named period; Commerce owns actual price selection. | yes | ATS-ACC-PRD-008-05 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-09` Rows sharing audience, currency and period cannot overlap in time, with opening instants included and closing instants excluded. | yes | ATS-ACC-PRD-008-07 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-10` Known audiences are standard, member and active Commerce audiences in the workspace; before that vocabulary exists, previously held audiences are also accepted. | yes | ATS-ACC-PRD-008-08 | TST-ACC-PRD-035 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-11` Price amounts use nonnegative integer minor units of their currency. | no | ATS-ACC-PRD-008-10 |  |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-12` Each product accepts up to five hundred price cells and replaces the entire grid on creation or replacement. | yes | ATS-ACC-PRD-004-11, ATS-ACC-PRD-008-09, ATS-ACC-PRD-010-05, ATS-ACC-PRD-016-09 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-13` Documented pricing responsibility assigns missing foreign-currency cells to unit defaults and conversion with frozen rates to Commerce. | no |  |  |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-14` The product API retains the deprecated audience alias in responses and accepts it instead of the current audience field. | no |  |  |
| CAP-ACC-PRD-008 | `BR-CAP-ACC-PRD-008-15` The console fills an empty standard foreign-currency cell with prohibition unless the unit default supplies conversion. | no |  |  |
| CAP-ACC-PRD-009 | `BR-CAP-ACC-PRD-009-01` Migration creates a product-local audience price for each former special price and preserves its name, criteria, amount, formula and ordering in a Commerce handover. | yes | ATS-ACC-PRD-009-01, ATS-ACC-PRD-009-04 | TST-ACC-PRD-033 (not-run) |
| CAP-ACC-PRD-009 | `BR-CAP-ACC-PRD-009-02` The former special-price list is rejected; only an empty setting remains accepted for compatibility. | yes | ATS-ACC-PRD-009-02 | TST-ACC-PRD-027 (not-run) |
| CAP-ACC-PRD-009 | `BR-CAP-ACC-PRD-009-03` The migration record assigns audience realization to Commerce before a migrated audience can price a purchaser. | no |  |  |
| CAP-ACC-PRD-009 | `BR-CAP-ACC-PRD-009-04` The handover record assigns realization marking to Commerce, with no Accounting route for editing handovers. | no |  |  |
| CAP-ACC-PRD-009 | `BR-CAP-ACC-PRD-009-05` After Commerce’s audience table exists, an unrealized or inactive migrated audience blocks replacement that resubmits its price rows. | yes | ATS-ACC-PRD-008-11, ATS-ACC-PRD-009-03 |  |
| CAP-ACC-PRD-010 | `BR-CAP-ACC-PRD-010-01` A quantity band includes both endpoints or has no upper endpoint and reduces unit price by a zero-to-one-hundred percentage with two decimals or a nonnegative minor-unit amount. | yes | ATS-ACC-PRD-010-01 | TST-ACC-PRD-039 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-010 | `BR-CAP-ACC-PRD-010-02` A band’s final quantity cannot be smaller than its initial quantity. | yes | ATS-ACC-PRD-010-01 | TST-ACC-PRD-039 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-010 | `BR-CAP-ACC-PRD-010-03` Quantity bands cannot overlap, and validation compares every pair and identifies the conflicting ranges. | yes | ATS-ACC-PRD-010-02, ATS-ACC-PRD-010-05 | TST-ACC-PRD-027 (not-run), TST-ACC-PRD-039 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-010 | `BR-CAP-ACC-PRD-010-04` Up to fifty bands replace the previous collection; empty feature arrays are rejected and an empty setting disables the feature. | yes | ATS-ACC-PRD-010-03, ATS-ACC-PRD-010-04 | TST-ACC-PRD-006 (not-run), TST-ACC-PRD-027 (not-run) |
| CAP-ACC-PRD-010 | `BR-CAP-ACC-PRD-010-05` Documented responsibility leaves purchase-time discount application to Orders while retaining discount information in the portal projection. | no |  |  |
| CAP-ACC-PRD-010 | `BR-CAP-ACC-PRD-010-06` The console offers Bulk Pricing only for kinds that permit quantity discounts. | no |  |  |
| CAP-ACC-PRD-011 | `BR-CAP-ACC-PRD-011-01` Bundle components are accepted only for kinds supporting bundles, including Accounting Products among Accounting’s kinds. | yes | ATS-ACC-PRD-011-01 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-011 | `BR-CAP-ACC-PRD-011-02` Each component must be a unique, existing sellable product in the bundle’s unit and must differ from the bundle itself. | yes | ATS-ACC-PRD-002-15, ATS-ACC-PRD-011-02 | TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-011 | `BR-CAP-ACC-PRD-011-03` Retired components already held by a bundle may remain, but newly added retired components are rejected. | yes | ATS-ACC-PRD-005-09, ATS-ACC-PRD-006-11, ATS-ACC-PRD-011-03, ATS-ACC-PRD-011-09 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-011 | `BR-CAP-ACC-PRD-011-04` Component relationships cannot create a cycle back to the containing bundle. | yes | ATS-ACC-PRD-011-04 | TST-ACC-PRD-030 (not-run), TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-011 | `BR-CAP-ACC-PRD-011-05` Each component requires an explicit price, including when its price is zero. | yes | ATS-ACC-PRD-011-05 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-011 | `BR-CAP-ACC-PRD-011-06` Quantity-weighted component totals fit set standard and member prices in the always base-currency period, preferring an undated row and otherwise its first dated row; absent member price counts as zero. | yes | ATS-ACC-PRD-008-11, ATS-ACC-PRD-011-06, ATS-ACC-PRD-011-09, ATS-ACC-PRD-016-09 | TST-ACC-PRD-040 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-011 | `BR-CAP-ACC-PRD-011-07` Documented posting responsibility treats inline components as fixed revenue splits rather than separate bundled items. | no |  |  |
| CAP-ACC-PRD-011 | `BR-CAP-ACC-PRD-011-08` Bundle replacement accepts at most fifty components and replaces the complete collection. | yes | ATS-ACC-PRD-011-07 | TST-ACC-PRD-040 (not-run) |
| CAP-ACC-PRD-011 | `BR-CAP-ACC-PRD-011-09` The console hides bundle controls but preserves components configured through the API. | yes | ATS-ACC-PRD-011-08 | TST-ACC-PRD-005 (not-run) |
| CAP-ACC-PRD-012 | `BR-CAP-ACC-PRD-012-01` A purchase ceiling stores a customer maximum of at least one, an all-time or positive rolling interval in days, weeks, months or years, and an optional refusal message. | yes | ATS-ACC-PRD-012-01 | TST-ACC-PRD-027 (not-run), TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-012 | `BR-CAP-ACC-PRD-012-02` Rolling ceilings require an interval and all-time ceilings prohibit one. | yes | ATS-ACC-PRD-012-01 | TST-ACC-PRD-027 (not-run), TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-012 | `BR-CAP-ACC-PRD-012-03` Replacement clears the purchase ceiling when it is omitted or explicitly empty. | no | ATS-ACC-PRD-012-03 |  |
| CAP-ACC-PRD-012 | `BR-CAP-ACC-PRD-012-04` Documented responsibility assigns purchase-time enforcement to Orders and excludes the ceiling from the portal projection. | no |  |  |
| CAP-ACC-PRD-012 | `BR-CAP-ACC-PRD-012-05` The console hides purchase-ceiling controls while retaining API-configured values during saves. | yes | ATS-ACC-PRD-012-02, ATS-ACC-PRD-012-04 | TST-ACC-PRD-006 (not-run) |
| CAP-ACC-PRD-013 | `BR-CAP-ACC-PRD-013-01` A task instruction requires a name and CRM task type and may include description, queue, assignee and a nonnegative delay in days, weeks or months. | no | ATS-ACC-PRD-013-04 | TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-013 | `BR-CAP-ACC-PRD-013-02` Task types and queues must exist in the workspace and be active when newly assigned, while previously held inactive choices remain acceptable. | yes | ATS-ACC-PRD-013-01 | TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-013 | `BR-CAP-ACC-PRD-013-03` Assignee values must match the Rhythm user identity format, with no check that a user exists. | yes | ATS-ACC-PRD-013-02 | TST-ACC-PRD-027 (not-run), TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-013 | `BR-CAP-ACC-PRD-013-04` A product stores at most twenty task instructions and replaces or clears the whole collection on save. | yes | ATS-ACC-PRD-013-03, ATS-ACC-PRD-013-05 | TST-ACC-PRD-006 (not-run), TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-013 | `BR-CAP-ACC-PRD-013-05` Documented responsibility assigns task creation at purchase to Orders and excludes staff task instructions from the portal projection. | no |  |  |
| CAP-ACC-PRD-013 | `BR-CAP-ACC-PRD-013-06` The console edits task instructions in a dialog and selects assignees from a user chooser. | no |  |  |
| CAP-ACC-PRD-014 | `BR-CAP-ACC-PRD-014-01` Confirmation configuration selects either a product-owned template or a shared workspace template for product confirmations, with an empty setting disabling it. | no | ATS-ACC-PRD-014-05 |  |
| CAP-ACC-PRD-014 | `BR-CAP-ACC-PRD-014-02` A newly selected shared template must be active, belong to the workspace and confirmation purpose, and have no record owner. | yes | ATS-ACC-PRD-014-01 | TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-014 | `BR-CAP-ACC-PRD-014-03` Platform stores product-owned content and validates its Liquid, allowed variables and required reply-to information. | yes | ATS-ACC-PRD-014-02, ATS-ACC-PRD-014-05 | TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-014 | `BR-CAP-ACC-PRD-014-04` Accounting requests template changes after its product writes but before committing, and a Platform failure rolls back those product writes. | yes | ATS-ACC-PRD-014-02, ATS-ACC-PRD-014-06 | TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-014 | `BR-CAP-ACC-PRD-014-05` Disabling a product-owned confirmation or choosing a shared template clears the previously owned template. | yes | ATS-ACC-PRD-006-11, ATS-ACC-PRD-014-03, ATS-ACC-PRD-014-05 | TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-014 | `BR-CAP-ACC-PRD-014-06` Omitting confirmation configuration preserves both setting and template; supplied owned content merges retained fields and clears optional fields explicitly set empty. | yes | ATS-ACC-PRD-014-04, ATS-ACC-PRD-014-07 | TST-ACC-PRD-039 (not-run) |
| CAP-ACC-PRD-014 | `BR-CAP-ACC-PRD-014-07` The documented confirmation purpose provides product and unit details, line quantity and price, and customer name. | no |  |  |
| CAP-ACC-PRD-014 | `BR-CAP-ACC-PRD-014-08` The current console hides confirmation controls. | no |  |  |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-01` A product may lack an accounting setup, in which case its summary is empty and recorded posting policy uses unit defaults. | yes | ATS-ACC-PRD-015-01, ATS-ACC-PRD-015-14 | TST-ACC-PRD-011 (not-run), TST-ACC-PRD-026 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-02` Sellable products require a revenue account in their setup, while Legacy Products may omit it. | yes | ATS-ACC-PRD-015-02 | TST-ACC-PRD-026 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-03` Setup accounts and dimensions belong to the product’s unit, except tax classes belong to the workspace as a whole. | yes | ATS-ACC-PRD-015-03 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-04` Receivable and inventory slots require asset accounts, revenue requires income, deferred revenue requires liability, and write-off and cost of goods sold require expense. | yes | ATS-ACC-PRD-015-04 | TST-ACC-PRD-009 (not-run), TST-ACC-PRD-036 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-05` New setup references require active records; an inactive record retained in the same field remains acceptable. | yes | ATS-ACC-PRD-015-05 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-06` A setup tax class overrides its kind default, and an already held class remains acceptable after retirement. | yes | ATS-ACC-PRD-015-06 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-07` A first setup needs no read version, but existing setups require their read version and reject stale replacement. | yes | ATS-ACC-PRD-004-11, ATS-ACC-PRD-015-07, ATS-ACC-PRD-015-15 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-08` Setup replacement clears omitted values and replaces all child collections transactionally, preserving previous data if it fails. | yes | ATS-ACC-PRD-015-08, ATS-ACC-PRD-017-07 | TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-09` Update-locked setups require explicit lock removal for replacement, either lock blocks deletion, and authorized setup editors may remove locks. | yes | ATS-ACC-PRD-006-11, ATS-ACC-PRD-015-09, ATS-ACC-PRD-015-16 | TST-ACC-PRD-036 (not-run), TST-ACC-PRD-044 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-10` Deleting an accounting setup leaves its product intact with an empty accounting summary. | yes | ATS-ACC-PRD-003-05, ATS-ACC-PRD-015-10, ATS-ACC-PRD-015-15, ATS-ACC-PRD-015-17 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-11` Accounts, dimensions, merchant accounts and tax classes referenced by setups cannot be deleted while referenced. | yes | ATS-ACC-PRD-015-11 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-031 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-12` Setup reads, replacement and deletion require separate product-accounting permissions, independent of product permissions. | yes | ATS-ACC-PRD-015-12 | TST-ACC-PRD-012 (not-run), TST-ACC-PRD-028 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-13` A setup’s product and business unit are fixed at creation and cannot change. | yes | ATS-ACC-PRD-015-13 | TST-ACC-PRD-031 (not-run) |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-14` The console groups accounting into five cards, saves it separately after the product, and requires a receivable account beyond backend requirements. | no |  |  |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-15` Accounting permits creation and replacement of setups on retired products. | no |  |  |
| CAP-ACC-PRD-015 | `BR-CAP-ACC-PRD-015-16` Changing an accounting setup after posting leaves the account recorded on the existing posted entry unchanged. | yes | ATS-ACC-PRD-015-14 | TST-ACC-PRD-011 (not-run) |
| CAP-ACC-PRD-016 | `BR-CAP-ACC-PRD-016-01` Revenue treatment selects immediate, automatic, relative-date or fixed-date recognition, with deferred treatment requiring a capable kind and deferred revenue account. | yes | ATS-ACC-PRD-015-17, ATS-ACC-PRD-016-01 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-016 | `BR-CAP-ACC-PRD-016-02` Fixed-date treatment requires up to one hundred twenty distinct dates whose percentages sum to exactly one hundred. | yes | ATS-ACC-PRD-016-02 | TST-ACC-PRD-010 (not-run), TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-016 | `BR-CAP-ACC-PRD-016-03` Relative-date treatment requires up to twelve inclusive transaction-month ranges with no shared month, permits ranges crossing December and stores them by starting month. | yes | ATS-ACC-PRD-016-03 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-016 | `BR-CAP-ACC-PRD-016-04` Relative-date fallback configuration selects immediate recognition or default deferral for transactions outside configured ranges. | no |  |  |
| CAP-ACC-PRD-016 | `BR-CAP-ACC-PRD-016-05` Each revenue split names an income account in the product’s unit and supplies either a percentage or fixed amount. | yes | ATS-ACC-PRD-016-04 | TST-ACC-PRD-036 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-016 | `BR-CAP-ACC-PRD-016-06` Percentage shares total at most one hundred; fixed shares fit the standard set base price from the always period when available, preferring undated then first matching dated rows. | yes | ATS-ACC-PRD-008-11, ATS-ACC-PRD-011-09, ATS-ACC-PRD-016-05, ATS-ACC-PRD-016-09, ATS-ACC-PRD-017-07 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run), TST-ACC-PRD-066 (not-run) |
| CAP-ACC-PRD-016 | `BR-CAP-ACC-PRD-016-07` Revenue split identities are retained when supplied and generated when absent, with repeated identities rejected. | yes | ATS-ACC-PRD-016-06 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-016 | `BR-CAP-ACC-PRD-016-08` Inter-entity entries appear once per other unit, exclude the product’s unit and name accounts belonging to that other unit. | yes | ATS-ACC-PRD-016-07 | TST-ACC-PRD-026 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-016 | `BR-CAP-ACC-PRD-016-09` Accounting setup accepts no more than fifty revenue splits and two hundred inter-entity entries. | yes | ATS-ACC-PRD-016-08 |  |
| CAP-ACC-PRD-016 | `BR-CAP-ACC-PRD-016-10` The console rejects transaction-month ranges crossing December and omits split identities from saves, causing identities to be generated again. | no |  |  |
| CAP-ACC-PRD-017 | `BR-CAP-ACC-PRD-017-01` Products lacking a setup use the regular product filters, sort, paging and shape, with active status selected unless another status is requested. | yes | ATS-ACC-PRD-015-17, ATS-ACC-PRD-017-01 | TST-ACC-PRD-025 (not-run), TST-ACC-PRD-037 (not-run) |
| CAP-ACC-PRD-017 | `BR-CAP-ACC-PRD-017-02` The bulk API accepts one to one hundred distinct product setups and uses single-setup replacement semantics for each. | yes | ATS-ACC-PRD-017-02 | TST-ACC-PRD-025 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-017 | `BR-CAP-ACC-PRD-017-03` A failing bulk setup rolls back the entire request and identifies its position and product. | yes | ATS-ACC-PRD-017-03, ATS-ACC-PRD-017-06, ATS-ACC-PRD-017-07 | TST-ACC-PRD-025 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-017 | `BR-CAP-ACC-PRD-017-04` Duplicate, absent and other-workspace product identities reject the bulk request before any setup persists. | yes | ATS-ACC-PRD-017-04 | TST-ACC-PRD-025 (not-run), TST-ACC-PRD-028 (not-run), TST-ACC-PRD-036 (not-run) |
| CAP-ACC-PRD-017 | `BR-CAP-ACC-PRD-017-05` Bulk writes acquire product locks in identity order, avoiding conflicting acquisition orders between bulk saves. | no | ATS-ACC-PRD-017-06 |  |
| CAP-ACC-PRD-017 | `BR-CAP-ACC-PRD-017-06` The missing-setup list requires product-accounting read permission and bulk replacement requires product-accounting update permission. | yes | ATS-ACC-PRD-017-05 | TST-ACC-PRD-028 (not-run) |
| CAP-ACC-PRD-017 | `BR-CAP-ACC-PRD-017-07` The console marks missing setups on individual rows but provides no dedicated missing-setup list or bulk editor. | no |  |  |
| CAP-ACC-PRD-018 | `BR-CAP-ACC-PRD-018-01` Tax-class resolution uses the setup assignment first, the workspace’s default for the kind second and no class otherwise. | yes | ATS-ACC-PRD-003-05, ATS-ACC-PRD-015-17, ATS-ACC-PRD-018-01, ATS-ACC-PRD-018-09 | TST-ACC-PRD-029 (not-run), TST-ACC-PRD-042 (not-run) |
| CAP-ACC-PRD-018 | `BR-CAP-ACC-PRD-018-02` A workspace holds at most one default per registered kind, including inactive kinds, and cannot change the default’s kind. | yes | ATS-ACC-PRD-018-02 | TST-ACC-PRD-029 (not-run), TST-ACC-PRD-042 (not-run) |
| CAP-ACC-PRD-018 | `BR-CAP-ACC-PRD-018-03` A newly selected default class must be an active workspace class, while an already held retired class remains acceptable. | yes | ATS-ACC-PRD-018-02 | TST-ACC-PRD-029 (not-run), TST-ACC-PRD-042 (not-run) |
| CAP-ACC-PRD-018 | `BR-CAP-ACC-PRD-018-04` First-time default assignment omits a version and subsequent replacement requires the current read version. | yes | ATS-ACC-PRD-018-03 | TST-ACC-PRD-029 (not-run), TST-ACC-PRD-042 (not-run) |
| CAP-ACC-PRD-018 | `BR-CAP-ACC-PRD-018-05` Removing a default leaves products without setup assignments with no resolved class, and a repeat removal returns not found. | yes | ATS-ACC-PRD-018-04, ATS-ACC-PRD-018-09 | TST-ACC-PRD-029 (not-run), TST-ACC-PRD-042 (not-run) |
| CAP-ACC-PRD-018 | `BR-CAP-ACC-PRD-018-06` A tax class referenced by a product-kind default cannot be deleted. | yes | ATS-ACC-PRD-018-05 | TST-ACC-PRD-029 (not-run), TST-ACC-PRD-042 (not-run) |
| CAP-ACC-PRD-018 | `BR-CAP-ACC-PRD-018-07` A combined update-and-delete lock blocks both operations on a default, while a delete-only lock permits replacement. | yes | ATS-ACC-PRD-018-06, ATS-ACC-PRD-018-08 | TST-ACC-PRD-042 (not-run) |
| CAP-ACC-PRD-018 | `BR-CAP-ACC-PRD-018-08` Tax defaults require tax-class permissions rather than product permissions. | yes | ATS-ACC-PRD-018-07 | TST-ACC-PRD-029 (not-run) |
| CAP-ACC-PRD-018 | `BR-CAP-ACC-PRD-018-09` Documented line behavior freezes the resolved class when no explicit invoice or memo line class is supplied. | no |  |  |
| CAP-ACC-PRD-018 | `BR-CAP-ACC-PRD-018-10` The product should move tax-class ownership, product-kind defaults and product assignments to Commerce and remove tax classification from Accounting’s editor. | no |  |  |
| CAP-ACC-PRD-019 | `BR-CAP-ACC-PRD-019-01` Exports place product records before product-kind tax defaults. | yes | ATS-ACC-PRD-019-01 |  |
| CAP-ACC-PRD-019 | `BR-CAP-ACC-PRD-019-02` An exported product embeds prices, bundle components, its accounting setup and accounting collections, task instructions, discount bands and migrated pricing handovers. | yes | ATS-ACC-PRD-019-01, ATS-ACC-PRD-019-03 |  |
| CAP-ACC-PRD-019 | `BR-CAP-ACC-PRD-019-03` The dataset exports current configuration and excludes products created after the export cutoff. | yes | ATS-ACC-PRD-019-02 |  |
| CAP-ACC-PRD-019 | `BR-CAP-ACC-PRD-019-04` The product dataset depends on the books dataset and delegates delivery to workspace export processing. | yes | ATS-ACC-PRD-019-02 |  |
| CAP-ACC-PRD-019 | `BR-CAP-ACC-PRD-019-05` Registered product metadata exposes standard fields as read-only, supports no custom fields and registers no query dataset. | no |  |  |

## Where Each Capability Lives

| Capability | Repository | Role | Paths |
|---|---|---|---|
| (no capability carries repositories[] yet) | | | |

## Features and Journeys

| Artifact | Proof |
|---|---|
| FEAT-ACC-PRD-01 Product Catalogue | FAS-ACC-PRD-01 |
| FEAT-ACC-PRD-02 Product Pricing | FAS-ACC-PRD-02 |
| FEAT-ACC-PRD-03 Selling Settings | FAS-ACC-PRD-03 |
| FEAT-ACC-PRD-04 Accounting Configuration | FAS-ACC-PRD-04 |
| JNY-ACC-PRD-001 Finance prepares a priced product with accounting setup | no product acceptance scenario |
| JNY-ACC-PRD-002 Finance withdraws, restores and removes catalogue products | no product acceptance scenario |
| JNY-ACC-PRD-003 Finance configures valid donation and audience pricing | no product acceptance scenario |
| JNY-ACC-PRD-004 Console corrections preserve API-configured selling settings | no product acceptance scenario |
| JNY-ACC-PRD-005 Finance completes revenue treatment and missing setups | no product acceptance scenario |
| JNY-ACC-PRD-006 Membership keeps its shared product within domain ownership | no product acceptance scenario |

## Gaps

- `CAP-ACC-PRD-019` has no executable suite
