Pricing Engine Overview & Pricing Models
How tier, volume, and block pricing is calculated in Good Sign, including discounts, pricing breakdowns, and repricing behavior.
1. Purpose of this guide
This guide explains how pricing is calculated in Good Sign when using tier‑based, volume‑based, and block‑based pricing models, and how discounts and repricing behave after the enhancements introduced in Release 2026_2.
The guide focuses on pricing behavior and outcomes, not technical implementation details.
2. Supported pricing models
2.1. Unit pricing
Unit pricing calculates the total price by multiplying the quantity by a fixed unit price.
Typical use cases:
- Work invoicing
- Simple recurring fees
- One‑time fees
2.2. Tier pricing
Tier pricing splits the total amount into predefined tiers and prices each tier separately.
Characteristics:
- Each tier has its own unit price
- Different portions of the amount may be priced at different rates
- Total price is the sum of all priced tiers
Typical use cases:
- Usage‑based overage pricing
- Graduated SaaS pricing
- Consumption models where marginal price decreases or increases with volume
2.3. Volume pricing
Volume pricing selects a single price step based on the total amount and applies that unit price to the entire amount.
Characteristics:
- Only one pricing step is selected
- The selected unit price is applied to the full amount
- Step boundaries determine which price applies
Typical use cases:
- Subscription tiers
- Contract pricing based on total customer size or volume
- Simplified enterprise pricing levels
2.4. Block pricing
Block pricing charges a fixed total price for a defined amount range.
Characteristics:
- One pricing step is selected based on amount
- The step price is charged as‑is (not multiplied by amount)
- Amount is still recorded for reporting and unit‑price calculation
Typical use cases:
- Bundles
- Flat‑rate service packages
- Included‑usage blocks
3. Discounts and pricing order
The pricing engine applies discounts in a defined order to ensure predictable and transparent results.
3.1. Supported discount types
-
Step‑specific discounts
- Applied to individual tier, volume, or block steps
- Defined as multipliers (e.g. 0.90 = 10% discount)
- Can also represent price increases (e.g. 1.10)
-
Whole‑ticket discounts
- Applied once to the total price after step calculations
- Defined as multipliers
- Used for campaign discounts, customer agreements, or contract‑level incentives
-
Billing object discounts
- Monetary discounts (absolute amount)
- Percentage discounts
- Applied after all pricing and multiplier discounts
3.2. Discount application order
The pricing engine applies discounts in the following order:
- Pricing steps (tier / volume / block)
- Step‑specific discounts (if applicable)
- Whole‑ticket discounts
- Billing object monetary discounts
- Billing object percentage discounts
This order is fixed and ensures consistent results across invoicing, reporting, and repricing.
4. Pricing transparency and breakdown
After pricing is calculated, Good Sign stores a pricing breakdown for each virtual ticket.
The breakdown:
- Shows pricing steps that were applied
- Separates base prices and discounts
- Preserves calculation order
- Allows full traceability of the final price
These breakdown rows are used by:
- User interface views
- Reporting
- Auditing and troubleshooting
- Repricing logic
5. Unit price calculation
For tier, volume, and block pricing:
- The effective unit price is calculated as
final total price ÷ amount - This reflects what the customer actually pays per unit
- All discounts are included in the calculation
This ensures that unit prices remain meaningful even when pricing is not purely unit‑based.
6. Repricing behavior
6.1. What is repricing?
Repricing recalculates pricing for a virtual ticket after pricing configurations change.
Examples:
- Tier limits or prices are updated
- Discounts are changed
- Pricing inheritance changes through the organization structure
6.2. What happens during repricing?
When repricing is run:
- The ticket price is recalculated using current pricing rules
- Pricing breakdown rows are regenerated
- Discount logic is re‑applied in the correct order
- Unit price is updated based on the new total
Previously generated breakdown rows are replaced to reflect the current configuration.
6.3. Invoicing considerations
Normal invoicing restrictions apply.
Tickets that have already been invoiced may not be fully repriced in order to preserve accounting correctness.
7. Practical use cases enabled
These pricing engine enhancements support advanced scenarios such as:
- Volume‑based and usage‑based pricing
- Stepped discount models
- Contract harmonization across customer portfolios
- Gradual price changes during contract lifecycles
- Transparent price explanations on invoices and in reports
8. Further documentation
Note:
Detailed technical documentation for tier, volume, and block pricing configuration and discount application is available separately in internal pricing documentation (readme.docx, issue: https://serviceportal.goodsign.fi/issues/35504).