Pricing Screen (Preisgestaltung) โ
Context: Extracted from costing-pricing-separation ADR ยง4 โ UI/UX safeguards. App: Workspace (Dispatcher/Planner) Entity:
PriceMatrix(Backoffice) โTourOfferingPrice(Commerce read-model)
Design Principle โ
Opinionated defaults with progressive disclosure. The interface prevents cognitive overload by hiding complexity until the operator needs it.
Screen Layout โ
Read-Only Base View โ
The default view displays a single, read-only grid showing the Base Price Calculation (Level 1) for each variant combination (room type ร age bracket).
- Prices derive from the linked
CostingSheet+margin_config - The grid is read-only by default โ the operator sees what the engine calculated
- The system hides complex channel and algorithmic rules behind toggles
Manual Override Mode โ
Toggled explicitly. Allows the operator to override individual cells (Level 4: "Dispatcher's Veto").
- Overridden cells are visually highlighted (e.g., colored border, icon badge)
- Each overridden cell shows a "Revert to calculated" action
- Manual overrides halt automated yield adjustments for that specific cell
[planned โ Phase 2]
Micro-Views & Widgets โ
Margin Inspector (Popover) โ
A popover on individual grid cells showing the full derivation stack:
| Layer | Value | Source |
|---|---|---|
| Base cost (from CostingSheet) | โฌ85.00 | CostingSheet.total_net_cost รท pax |
| + Margin (18% hotel) | โฌ15.30 | PriceMatrix.margin_config |
| = Net selling price | โฌ100.30 | |
| + Tax (19% standard / margin scheme) | โฌ19.06 | CostingSheet.tax_strategy |
| = Gross selling price | โฌ119.36 | PriceMatrix.target_gross_price |
| Manual override | โฌ109.00 โ ๏ธ | Dispatcher |
| Resulting margin | -โฌ10.36 below target | โ ๏ธ Warning |
Blended Tour Summary (Persistent Widget) โ
A macro-view widget visible at all times on the pricing screen:
- Total projected revenue based on the currently active PriceMatrix ร expected pax
- Dynamic break-even PAX gauge โ visual indicator of how many passengers are needed at current prices
- Margin health indicator โ overall margin percentage vs. planned target
- Updates live as the operator changes prices
Alerts & Safeguards โ
Stale Override Alerts โ
When the system recalculates a CostingSheet (e.g., fuel spikes):
- System scans all linked
PriceMatrixentries for active manual overrides - If a cost increase drops the override's margin below the configured threshold โ flag the cell
- Dispatcher receives an alert for mandatory review
- Alert persists until the dispatcher either updates the price or explicitly confirms the override
Publish Guards โ
Before a PriceMatrix transitions DRAFT โ PUBLISHED:
- All variants must have valid gross prices (no zero/negative)
- Break-even PAX must be achievable at the configured capacity
- The user must resolve any stale-override alerts