Pricing Page — Axis Cartesian Reference

10 combinations of 3 primary axes (Row Display × Row Prices × Subtotal Style) plus an extended Row Prices value (Roll up to parent) · 5 named business presets · nonsensical combinations excluded · synthetic illustrative data · visibility + page-break held at canonical post-chosen defaults

Legend

Supported in v1
An existing standalone builder emits this shape (Itemized, Aggregate, Consolidated, Subtotal).
Unsupported in v1
No builder authored yet. Widget UI greys it out. Tile shows best-effort extrapolation of the rendering rules.
Named business preset
One of three preset buttons exposed in the widget UI: Customer Final, Customer Proof, Production Final. Each preset locks specific axis + cosmetic choices.

Synthetic dataset

Three bundles, canonical null-Option. F19 add-on indent rule (Product_Num contains "add-on" → "- " prefix) applies in every Keep-rows tile.

Combination 01 of 10

  • Row Display: Keep rows
  • Row Prices: Show
  • Subtotal Style: None
Unsupported in v1 — best-effort extrapolation
DescriptionItem CodeCode #Price
Custom Uniform Top — Premium22211ACUT-PRM-001$100
- Rhinestone Logo22211A$50
- Embroidered Name22211A$50
Custom Uniform Skirt — Standard22211BCUS-STD-002$100
- Sequin Trim22211B$50
Warm-up Jacket — Performance22211CWJP-003$100

Why no builder: a flat priced list with zero summarization. No current demand; widget UI greys it out.

Combination 02 of 10

  • Row Display: Keep rows
  • Row Prices: Show
  • Subtotal Style: Per product total
Supported in v1buildItemizedProductList Customer Final 1
DescriptionItem CodeCode #Price
Custom Uniform Top — Premium22211ACUT-PRM-001$100
- Rhinestone Logo22211A$50
- Embroidered Name22211A$50
Custom Uniform Skirt — Standard22211BCUS-STD-002$100
- Sequin Trim22211B$50
Warm-up Jacket — Performance22211CWJP-003$100
Total$450

Customer Final preset: single closing row reads "Total" (not "Grand Total"). Behind the scenes the Bug #6 fix resolves the label from "Option No Option Total" because current_option == "No Option" in canonical null-Option data; the Customer Final preset further overrides "Bundle Total" → "Total" for cleaner customer-facing presentation.

Combination 03 of 10

  • Row Display: Keep rows
  • Row Prices: Show
  • Subtotal Style: Per product total
Supported in v1buildSubtotalsProductList Customer Proof 1
DescriptionItem CodeCode #Price
Custom Uniform Top — Premium22211ACUT-PRM-001$100
- Rhinestone Logo22211A$50
- Embroidered Name22211A$50
Option A Total$200
Custom Uniform Skirt — Standard22211BCUS-STD-002$100
- Sequin Trim22211B$50
Option B Total$150
Warm-up Jacket — Performance22211CWJP-003$100
Option C Total$100

Customer Proof 1 preset: shares axis label "Per product total" with Customer Final 1 (Combination 02); rendering differs because the Subtotals builder emits a subtotal row per product group. Per-bundle subtotals labeled "Option A/B/C Total" (F17 — substring rename unconditional across both states). Grand Total suppressed via preset override — each Product_Num group is presented as a discrete option the customer chooses between, not as an additive line item. In canonical null-Option data each bundle carries an implied "Option 1" structure; the per-Option subtotal IS the total for that choice, so summing them across rows would imply the customer is buying all bundles (wrong framing for a proof). Preset pins the suppression on for both states (previously a state-conditional behavior in buildSubtotalsProductList per F19 narrowing).

Combination 04 of 10

  • Row Display: Keep rows
  • Row Prices: Hide
  • Subtotal Style: None
Unsupported in v1 — best-effort extrapolation Production Final
DescriptionItem CodeCode #Price
Custom Uniform Top — Premium22211ACUT-PRM-001
- Rhinestone Logo22211ARHI-CRY-001
- Embroidered Name22211AEMB-NAM-001
Custom Uniform Skirt — Standard22211BCUS-STD-002
- Sequin Trim22211BSEQ-TRM-001
Warm-up Jacket — Performance22211CWJP-003

Production Final preset: fully-itemized inventory list with zero pricing AND Code # populated for every row including add-ons. Production handoffs need style numbers for sourcing every line item — parent garments AND every decoration applied (rhinestone packs, embroidered names, trim, etc.). No builder exists yet — Production Final will need either a new builder or routing through the Aggregate builder with a "Subtotal Style: None" flag plus an add-on Code # propagation pass (today's builders drop the add-on's own Style # when emitting indent rows). Synthetic Code #s here (RHI-CRY-001, EMB-NAM-001, SEQ-TRM-001) reflect what real add-on inventory items would carry from their own Sales_Orders.Style_Num — in production data this comes from the add-on's own product record, not the parent's.

Combination 05 of 10

  • Row Display: Keep rows
  • Row Prices: Hide
  • Subtotal Style: Per product total
Supported in v1buildAggregatedProductList
DescriptionItem CodeCode #Price
Custom Uniform Top — Premium22211ACUT-PRM-001
- Rhinestone Logo22211A
- Embroidered Name22211A
Custom Uniform Skirt — Standard22211BCUS-STD-002
- Sequin Trim22211B
Warm-up Jacket — Performance22211CWJP-003
Grand Total$450

Aggregate shape: per F9 the parent-row Price is rendered blank; only the footer total carries a price. Builder still emits per-Option Total at the footer when Options exist; canonical null-Option case shows as "Grand Total" via Bug #6 fix and the global "Bundle Total → Grand Total" rename.

Combination 06 of 10

  • Row Display: Keep rows
  • Row Prices: Hide
  • Subtotal Style: Per-Option + Grand Total
Unsupported in v1 — best-effort extrapolation Customer Proof 2
DescriptionItem CodeCode #Price
Custom Uniform Top — Premium22211ACUT-PRM-001
- Rhinestone Logo22211A
- Embroidered Name22211A
Option A Total$200
Custom Uniform Skirt — Standard22211BCUS-STD-002
- Sequin Trim22211B
Option B Total$150
Warm-up Jacket — Performance22211CWJP-003
Option C Total$100

Customer Proof 2 preset: shares the per-bundle-subtotal rendering shape with Customer Proof 1 (Combination 03), but row prices are hidden — line items show "what's in each option" without "how much per line." Per-Option subtotals carry all pricing. Grand Total suppressed per same proof framing as Customer Proof 1 — each Product_Num group is a discrete option the customer chooses between (implied "Option 1" structure in canonical null-Option data); the per-Option subtotal IS the total for that choice, so no Grand Total row. No builder exists yet — same shape as Customer Proof 1 with Row Prices flipped to Hide; needs new builder or buildSubtotalsProductList extension with a row-price-hide projection pass AND a suppress-Grand-Total preset flag.

Combination 07 of 10

  • Row Display: Collapse to parent
  • Row Prices: Show
  • Subtotal Style: None
Supported in v1buildConsolidatedProductList
DescriptionItem CodeCode #Price
Custom Uniform Top — Premium22211ACUT-PRM-001$200
Custom Uniform Skirt — Standard22211BCUS-STD-002$150
Warm-up Jacket — Performance22211CWJP-003$100

Consolidated shape: add-ons collapsed into their parent row; parent price = parent + sum of children. Bundle A shows $200 (its $100 parent + $50 + $50 in add-ons). No add-on rows means F19 indent rule does not apply.

Combination 08 of 10

  • Row Display: Collapse to parent
  • Row Prices: Show
  • Subtotal Style: Per product total
Unsupported in v1 — best-effort extrapolation
DescriptionItem CodeCode #Price
Custom Uniform Top — Premium22211ACUT-PRM-001$200
Custom Uniform Skirt — Standard22211BCUS-STD-002$150
Warm-up Jacket — Performance22211CWJP-003$100
Grand Total$450

Why no builder: Consolidated-with-footer. Would behave identically to Consolidated except for the closing total row. Demand absent because Per-Option + Grand (Combo 09) covers the same information surface with more granularity.

Combination 09 of 10

  • Row Display: Collapse to parent
  • Row Prices: Show
  • Subtotal Style: Per-Option + Grand Total
Unsupported in v1 — best-effort extrapolation
DescriptionItem CodeCode #Price
Custom Uniform Top — Premium22211ACUT-PRM-001$200
Option A Total$200
Custom Uniform Skirt — Standard22211BCUS-STD-002$150
Option B Total$150
Warm-up Jacket — Performance22211CWJP-003$100
Option C Total$100
Grand Total$450

Why no builder: per-Option subtotal rows are visually redundant with their adjacent parent rows (same price). Information value duplicated. Useful only when downstream layers (template highlighting, separators) consume the subtotal-row tag distinctly from the data row. No current demand.

Combination 10 of 10

  • Row Display: Keep rows
  • Row Prices: Roll up to parent EXTENDED AXIS VALUE
  • Subtotal Style: None
Unsupported in v1 — best-effort extrapolation (new axis value) Customer Final 2
DescriptionItem CodeCode #Price
Custom Uniform Top — Premium22211ACUT-PRM-001$200
- Rhinestone Logo22211A
- Embroidered Name22211A
Custom Uniform Skirt — Standard22211BCUS-STD-002$150
- Sequin Trim22211B
Warm-up Jacket — Performance22211CWJP-003$100
Total$450

Customer Final 2 preset: add-on rows visible (parent + decorations all listed) but prices roll up to the top-level product row. Bundle A's parent shows $200 (its $100 base + $50 Rhinestone + $50 Embroidered); add-on rows show no individual price. Bundle B's parent shows $150 ($100 + $50 trim); Bundle C shows $100 standalone. The customer sees what's in each bundle and one price per bundle — no decoration-level cost breakdown, no separate Grand Total math required at the line level. Closing "Total" footer matches Customer Final 1's terminal-label convention. Why no builder: "Roll up to parent" is a new Row Prices value outside the original axis enum {Show, Hide} — structurally distinct from Consolidated (Combination 07, which drops add-on rows entirely) and from Aggregate (Combination 05, which uniformly hides all per-row prices including parents). Either a new builder, or extend buildConsolidatedProductList with a keep_add_on_rows: true flag that re-emits the absorbed children as priceless indent rows under each rolled-up parent. Cross-reference: Customer Final 1 (Combination 02) for the show-all-prices variant.