---
id: ADR-ACC-BKS-013
title: Shared template selection with producer adoption still incomplete
product_area: accounting
module: books
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  The shared pure selector considers an explicit choice, an applicable unit
  choice or statement default, then built-in or download-format fallback.
  Missing, mismatched or inactive explicit choices are refused; inactive content
  is not rendered by this resolver.
constrains:
  - DOM-ACC-BKS-004
  - WF-ACC-BKS-007
  - STATE-ACC-BKS-003
  - SCR-ACC-BKS-013
  - SCR-ACC-BKS-014
origin: >-
  Accounting configuration record, Document templates D1 (as cited in code);
  FND-ACC-BKS-019; FND-ACC-BKS-031
alternatives:
  - option: Have every producer choose independently.
    why_not: >-
      Separate selectors could give the same unit inconsistent document
      behavior.
  - option: 'Allow inactive receipt, statement and download content.'
    why_not: >-
      The implementation rejects that legacy behavior, but the product rationale
      remains proposed rather than confirmed.
consequences:
  - >-
    Invoice rendering is an observed adopter; complete producer adoption is not
    established, and statement selection differs.
  - >-
    The selector’s tests establish its own behavior rather than proving that
    every producer uses it.
supersedes: []
evidence:
  - >-
    services-accounting at f47cb263:
    modules/books/services/document-templates/resolution.ts
  - >-
    services-accounting at f47cb263:
    modules/transactions/services/invoices/invoice-rendering.ts
---

# Shared template selection with producer adoption still incomplete

## Context

Documents need consistent explicit, configured and built-in choices. Books supplies the selector, while each producer must adopt it.

## Decision

The shared pure selector considers an explicit choice, an applicable unit choice or statement default, then built-in or download-format fallback. Missing, mismatched or inactive explicit choices are refused; inactive content is not rendered by this resolver.

## Alternatives Considered

Have every producer choose independently. Separate selectors could give the same unit inconsistent document behavior.

Allow inactive receipt, statement and download content. The implementation rejects that legacy behavior, but the product rationale remains proposed rather than confirmed.

## Consequences

Invoice rendering is an observed adopter; complete producer adoption is not established, and statement selection differs.

The selector’s tests establish its own behavior rather than proving that every producer uses it.
