Overview
Inflation Books allow users to define inflation percentages per Inflation Group for future dates where supplier pricing has not yet been confirmed. This enables operators to sell packages with estimated pricing that automatically applies compounding inflation rates based on how far in the future the departure date falls.
When to use: When you need to sell departures that are 1-3+ years out and suppliers have not yet provided confirmed rates. The inflation percentage is applied on top of the base price to estimate future costs.
Object Model
| Object | Purpose |
|---|---|
| InflationBook__c | Container for inflation periods. Assigned to a Channel. |
| InflationPeriod__c | Date range within a book (Valid From / Valid To). Creating a period auto-generates one Inflation Assignment per Inflation Group. |
| InflationAssignment__c | Junction: links an Inflation Period to an Inflation Group with a specific percentage rate. |
| Group__c | Inflation Group — a grouping category used to assign different inflation rates to different types of services. |
1. Create Inflation Groups
Inflation Groups categorise services that share the same inflation rate. For example, “Hotels EU” and “Hotels US” might have different inflation percentages.
-
Navigate to Inflation Setup in the Kaptio app menu
-
Go to the Inflation Group Manager tab
-
Create groups that represent your inflation categories (e.g. “Hotels EU”, “Transfers”, “Activities”)
-
Each group is a
Group__crecord (Inflation Groups are distinguished from other group types internally by the system)
2. Create Inflation Book
-
In Inflation Setup, create a new Inflation Book
-
Give it a descriptive name based on the region or market it covers (e.g. “EU Inflation Book”, “US Inflation Book”). The same book can cover multiple seasons by adding separate periods.
-
The book acts as a container for all inflation periods
3. Add Periods & Set Rates
-
Click the hyperlink showing the name of the book to open it for editing
-
Click New Period
-
Set Valid From date (and optionally Valid To — leave blank for open-ended)
-
One Inflation Assignment per Inflation Group is created automatically — click Edit to see them
-
Set the Percentage__c on each assignment (e.g. 3.5% for “Hotels EU”)
-
Use Copy rates from to duplicate an existing period’s rates as a starting point
4. Assign Book to Channel
-
Navigate to the Channel record
-
Set the Inflation Book lookup field to your book
-
In the Inflation section, enable the Enable Inflation checkbox — without this flag, inflation will not be applied
-
All pricing through this channel will now apply inflation when base prices exist
Service Profitability Strategy
The Service Profitability Strategy setting on the Channel controls how inflation applies to selling prices. This is a critical configuration choice:
-
Enabled: Only the cost price is inflated. The selling price is then calculated from the inflated cost using the Channel Markup/Margin or Profitability Group percentage.
-
Disabled: Both cost and selling prices are inflated independently. Fixed selling prices are inflated directly; markup-based selling prices are inflated after the markup is applied.
See the Pricing Behaviour sections below for full details and worked examples.
5. Assign Groups to Services
Assign an Inflation Group to each service type that needs estimated pricing:
| Object | Field | Level |
|---|---|---|
| Price Category | InflationGroup__c | Item option level (highest priority) |
| Add-on | InflationGroup__c | Item option level (same priority as Price Category) |
| Meal Plan | InflationGroup__c | Item option level (same priority, when meal plans are priced exclusively) |
| Service | InflationGroup__c | Service level (fallback when no item option group is set) |
Resolution Order
The price engine checks whether loaded rates exist for the service dates first. If no rates are found, it resolves the Inflation Group to determine the inflation rate:
-
Loaded rates check: Are there loaded rates for the service dates? If yes, those rates are used directly — no inflation is applied.
-
Meal Plan → Inflation Group (when meal plans are priced exclusively)
-
Price Category / Add-on → Inflation Group (item option level — these are separate price requests at the same priority)
-
Service → Inflation Group (fallback)
Once the group is resolved, the engine finds the matching Inflation Assignment for that group within the active period and applies the percentage. If no inflation group is found at any of the above levels, the engine falls back to the inflation rate specified directly on the Channel.
Price Engine Logic
-
Inflation year: 364 days (52 weeks), not 365. This is intentional for week-aligned pricing.
-
Compound rate: Applied as
(100 + percentage) / 100per inflation year -
Multi-year: If a departure is 2+ inflation years out, the rate compounds (e.g. 3% over 2 years = 1.03 × 1.03 = 6.09% total)
-
Range: Inflation periods can span any date range — there is no hardcoded maximum. The feature was originally called “24-month pricing” but the system supports arbitrary lookback windows. The standard lookback uses a 52-week (one inflation year) and 104-week (two inflation year) window, with extended lookback available via client configuration.
-
Period matching: The engine checks
applicable_on(date)andapplicable_for_range(start, end)on Inflation Periods -
Cost vs selling: Both cost and selling prices can be inflated, but the calculation path differs depending on the Service Profitability Strategy setting on the Channel. See Pricing Behaviour for details.
-
Estimated indicators: Inflated prices are marked with EC (Estimated Cost) and ES (Estimated Selling) in the Kaptio UI. The ES label propagates: if the cost is estimated and the selling price is derived from that inflated cost (via markup/margin), the selling price is also marked as estimated.
Quick Reference
| Task | Where |
|---|---|
| Create/manage groups | Inflation Setup → Inflation Group Manager |
| Create book & periods | Inflation Setup → Inflation Books |
| Set rates per group | Inflation Period → Inflation Assignments |
| Assign book to channel | Channel → Inflation Book field |
| Assign group to service | Price Category / Add-on / Item → Inflation Group field |
Cost vs Selling Price Inflation
Inflation applies to both cost prices and selling prices, but they follow different calculation paths. The same inflation percentage from the Inflation Book is used for both, but how it is applied depends on the type of price and the Channel’s Service Profitability Strategy setting.
Cost Price Inflation
Cost prices are always inflated the same way, regardless of the Service Profitability setting:
-
Look back 52 weeks from the travel date to find last year’s cost
-
Apply the inflation rate to get the 12-month estimated cost
-
For 24-month: inflate the 12-month result again
Marked as EC (Estimated Cost) in the UI.
Selling Price Inflation
Selling prices depend on the Service Profitability Strategy on the Channel:
-
Enabled: Selling price is calculated from inflated cost + markup/margin. No direct inflation on the selling price.
-
Disabled: Selling prices can be inflated independently — fixed selling prices are inflated directly.
Marked as ES (Estimated Selling) when inflation is applied to the selling price — either directly, or propagated when the selling price is derived from an estimated cost.
Cost Price Estimation Flow
Add Service to Itinerary
▼
Are there loaded rates for the service dates?
Yes
▼
Use loaded rates
No inflation applied
No
▼
Resolve Inflation Group, find Inflation Book on Channel
▼
Are there rates within one inflation year (52 weeks)?
Yes
▼
12-month inflation
Last year cost + inflation rate
EC
No
▼
Are there rates within two inflation years (104 weeks)?
Yes
▼
24-month inflation
12-month cost inflated again
EC
No
▼
No Cost on Itinerary Item
Cost Price Worked Example
Last Year Cost Price: 550
Inflation Rate: 10%
| Period | Formula | Result |
|---|---|---|
| 12-month | 550 + 10% = 550 × 1.10 | 605.00 EC |
| 24-month | (550 + 10%) + 10% = 605 × 1.10 | 665.50 EC |
Selling Price: Service Profitability Enabled
When Service Profitability Strategy is enabled on the Channel, inflation is applied only to the cost price. The selling price is then derived from the inflated cost using whichever markup/margin applies. Fixed selling prices and Price Manager markup/margin are ignored — the system always recalculates from the inflated cost.
Key principle: Inflate the cost first, then apply profitability on top. The selling price is never inflated directly.
Selling Price Flow (Profitability Enabled)
Add Service to Itinerary (Service Profitability Enabled)
▼
Fixed Sales Price?
▼
Price Manager ignored
Channel Markup/Margin applied to inflated cost
12m: (Cost + Infl) + Ch. Markup ES
24m: ((Cost + Infl) + Infl) + Ch. Markup ES
Markup/Margin in Price Manager?
▼
Price Manager ignored
Channel Markup/Margin applied to inflated cost
12m: (Cost + Infl) + Ch. Markup ES
24m: ((Cost + Infl) + Infl) + Ch. Markup ES
Profitability Group?
▼
Profitability % applied to inflated cost
12m: (Cost + Infl) + Prof. %
24m: ((Cost + Infl) + Infl) + Prof. %
ES — sell is derived from estimated cost
Worked Example 1: Fixed/Markup Selling Price (Profitability Enabled)
Last Year Cost: 550
Inflation: 8%
Channel Markup: 25%
Fixed selling prices and Price Manager markup/margin are ignored. Channel Markup/Margin is applied to the inflated cost.
| Period | Step-by-Step | Result |
|---|---|---|
| 12-month | Inflated cost: 550 × 1.08 = 594 | |
| Selling: 594 × 1.25 | 742.50 ES | |
| 24-month | Inflated cost: 550 × 1.08 × 1.08 = 641.52 | |
| Selling: 641.52 × 1.25 | 801.90 ES |
Worked Example 2: Profitability Group (Profitability Enabled)
Last Year Cost: 550
Inflation: 8%
Profitability Group: 40%
The Profitability Group percentage is applied to the inflated cost. Because the selling price is derived from an estimated cost, the ES label is also shown on the selling price.
| Period | Step-by-Step | Result |
|---|---|---|
| 12-month | Inflated cost: 550 × 1.08 = 594 | |
| Selling: 594 × 1.40 | 831.60 ES | |
| 24-month | Inflated cost: 550 × 1.08 × 1.08 = 641.52 | |
| Selling: 641.52 × 1.40 | 898.13 ES |
Selling Price: Service Profitability Disabled
When Service Profitability Strategy is disabled on the Channel, selling prices can be inflated independently from cost prices. The behaviour depends on how the selling price was originally set up.
Key principle: Selling prices are inflated in their own right. Fixed selling prices are inflated directly; markup-based prices go through an inflate-markup-inflate chain.
Selling Price Flow (Profitability Disabled)
Add Service to Itinerary (Service Profitability Disabled)
▼
Fixed Sales Price?
▼
Inflate selling price directly
from last year’s fixed selling price
12m: Sell + Infl ES
24m: (Sell + Infl) + Infl ES
Markup/Margin in Price Manager?
▼
Inflate cost → apply markup → inflate selling
Double inflation path
12m: ((Cost + Infl) + Markup) + Infl ES
24m: ((Cost + 2×Infl) + Markup) + 2×Infl ES
Profitability Group?
▼
Profitability % applied to inflated cost
12m: (Cost + Infl) + Prof. %
24m: ((Cost + Infl) + Infl) + Prof. %
ES — sell is derived from estimated cost
Worked Example 1: Fixed Selling Price (Profitability Disabled)
Last Year Selling Price: 750
Inflation: 10%
Inflation is applied directly to the previous year’s fixed selling price.
| Period | Step-by-Step | Result |
|---|---|---|
| 12-month | 750 × 1.10 | 825.00 ES |
| 24-month | 750 × 1.10 × 1.10 = 825 × 1.10 | 907.50 ES |
Worked Example 2: Markup/Margin Selling Price (Profitability Disabled)
Last Year Cost: 550
Inflation: 10%
Selling Price Markup: 15%
The cost is inflated first, then the markup is applied, and then the result is inflated again to get the estimated selling price. This is the most complex calculation path.
| Period | Step-by-Step | Result |
|---|---|---|
| 12-month | Inflated cost: 550 × 1.10 = 605 |
- markup: 605 × 1.15 = 695.75
- sell inflation: 695.75 × 1.10 | 765.33
ES| | 24-month | Inflated cost: 550 × 1.10 × 1.10 = 665.50 - markup: 665.50 × 1.15 = 765.33
- sell inflation: 765.33 × 1.10 × 1.10 | 926.04
ES|
Worked Example 3: Profitability Group (Profitability Disabled)
Last Year Cost: 550
Inflation: 10%
Profitability Group: 40%
With a Profitability Group, the behaviour is the same whether Service Profitability is enabled or disabled: inflate the cost, then apply the Profitability Group percentage. The ES label appears because the selling price is derived from an estimated cost.
| Period | Step-by-Step | Result |
|---|---|---|
| 12-month | Inflated cost: 550 × 1.10 = 605 | |
| Selling: 605 × 1.40 | 847.00 ES | |
| 24-month | Inflated cost: 550 × 1.10 × 1.10 = 665.50 | |
| Selling: 665.50 × 1.40 | 931.70 ES |
Worked Examples Summary
All six selling price scenarios side by side, showing how Service Profitability Strategy changes the calculation. Cost price inflation (550 base) is the same in all cases.
Service Profitability Enabled
Only the cost is inflated. Selling price is always derived from inflated cost + markup/margin.
| Selling Price Type | Base Values | 12-Month Selling | 24-Month Selling |
|---|---|---|---|
| Fixed Price / Markup | Cost 550, Infl 8%, Ch. Markup 25% | 742.50 ES | 801.90 ES |
| Profitability Group | Cost 550, Infl 8%, Prof 40% | 831.60 ES | 898.13 ES |
Service Profitability Disabled
Both cost and selling can be inflated. Fixed selling prices are inflated directly; markup-based prices go through cost inflation + markup + selling inflation.
| Selling Price Type | Base Values | 12-Month Selling | 24-Month Selling |
|---|---|---|---|
| Fixed Selling Price | Sell 750, Infl 10% | 825.00 ES | 907.50 ES |
| Markup/Margin | Cost 550, Infl 10%, Markup 15% | 765.33 ES | 926.04 ES |
| Profitability Group | Cost 550, Infl 10%, Prof 40% | 847.00 ES | 931.70 ES |
Cost Price (Same in Both Modes)
| Base Values | 12-Month Cost | 24-Month Cost |
|---|---|---|
| Cost 550, Inflation 10% | 605.00 EC | 665.50 EC |
Key Differences at a Glance
-
Fixed/Markup + Enabled: Selling is derived from inflated cost. The original selling price is irrelevant.
-
Fixed + Disabled: The selling price itself is inflated directly — simplest path.
-
Markup + Disabled: Most complex — cost inflation, markup, then selling inflation (double inflation effect).
-
Profitability Group: Always the same regardless of the toggle — inflated cost + profitability %. ES label appears because selling is derived from estimated cost.
Salesforce Objects
-
InflationBook__c
-
InflationPeriod__c (child of Book)
-
InflationAssignment__c (junction: Period × Group)
-
Group__c (Inflation Group)
-
Channel__c.InflationBook__c (lookup)
-
Channel__c.EnableInflation__c (checkbox — required for inflation to be applied)
-
Channel__c.ProfitabilityStrategy__c (controls how selling price is derived from inflated cost)
-
Price_Category__c.InflationGroup__c
-
Item__c.InflationGroup__c
Code References
| File | Purpose |
|---|---|
| kaptiotravel/InflationPeriods.cls | Auto-creates Inflation Assignments when a period is inserted |
| kaptiotravel/Groups.cls | Creates Inflation Assignments when a new Inflation Group is created |
| kaptiotravel/BaseFallbackBookService.cls | Inflation Book UI in Lightning |
| kaptiotravel/InflationGroupManagerController.cls | Inflation Group Manager UI controller |
| ktapi/pipes/mixins.py | Inflation group resolution (Meal Plan → Price Category/Add-on → Service) and day handler |
| ktapi/InflationAssignmentCollector | Collects applicable inflation assignments for pricing |
| ktapi/response_helper.py | Inflation rate calculation, 364-day year constant |
See Also
- Package Fundamentals — core package structure, components, and pricing foundations
- Cost & Pricing Architecture — how Kaptio resolves costs and margins across all pricing scenarios
- Supplier & Service Setup — creating supplier services that inflation groups are assigned to