πŸ“ˆ Advanced universal

πŸ”„ Supplier Cancellation Fees, Tracked

Track the fees a supplier would charge you when you cancel a booked service β€” percentage or fixed, tiered by days before travel, and linked to supplier agreements.

πŸ“
5
Steps
✨
5
Features
⏱️
1-2 weeks
Duration

πŸ”— Prerequisites

✨

Features

What you get with this outcome

Know What Cancelling a Supplier Costs You

When you cancel a booking with a supplier, you rarely walk away at zero cost. Suppliers charge cancellation fees that escalate the closer you are to the travel date. Until now, operators had to track those fees manually. Supplier Cancellation Policies in Kaptio let you model each supplier's cancellation terms directly β€” percentage-based or fixed-amount tiers that attach to the supplier agreement. When a service is being cancelled, the system knows exactly what the supplier will charge, giving operations and finance full visibility before committing.

πŸ“‹

Visual coming soon

Supplier Cancellation Policies

Supplier Cancellation Policies

A named set of cancellation rules that defines how a particular supplier charges for cancellations. Each policy can contain multiple tiered rules. Policies are reusable β€” one policy can apply to many agreements if the supplier has consistent terms.

  • βœ“Named, reusable policy records
  • βœ“Active/inactive flag for lifecycle management
  • βœ“Description field for internal notes
  • βœ“Shareable across multiple agreements
πŸ“Š

Visual coming soon

Tiered Cancellation Rules

Tiered Cancellation Rules

Each policy contains one or more rules that define the fee at different time windows. Rules specify a days-before-travel threshold and either a percentage or fixed amount the supplier charges. The tightest applicable window determines the fee.

  • βœ“Days-before-travel thresholds
  • βœ“Percentage or fixed charge types
  • βœ“Multiple tiers per policy
  • βœ“Escalating fee schedules
πŸ”—

Visual coming soon

Agreement-Level Linking

Agreement-Level Linking

Cancellation policies attach to supplier agreements through a dedicated lookup field. When a booking includes a service from that supplier, the system resolves the active agreement and its cancellation policy in one step.

  • βœ“Direct lookup on Supplier Agreement
  • βœ“Policy follows agreement validity dates
  • βœ“Configured in the Supplier Agreement modal
  • βœ“Channel and brand matching for multi-channel operators
🎯

Visual coming soon

Supplier Agreement Assignments

Supplier Agreement Assignments

Agreement assignments let you scope a supplier agreement to specific services, price categories, add-ons, or fees. When resolving which agreement applies to a cancellation, the system checks assignments in priority order: Price Category level (highest), then Service level, then the direct agreement as fallback.

  • βœ“Price Category assignment β€” highest priority match
  • βœ“Service (Item) assignment β€” second priority
  • βœ“Add-on and Fee assignments for granular scoping
  • βœ“Direct agreement (no assignments) as fallback
πŸ’°

Visual coming soon

Percentage and Fixed Fee Types

Percentage and Fixed Fee Types

Rules support two charge types. Percentage rules calculate the fee as a proportion of the service cost (e.g., 25% of the hotel cost). Fixed rules apply a flat currency amount regardless of the service value (e.g., $200 admin fee).

  • βœ“Percentage-based fees for proportional charges
  • βœ“Fixed-amount fees for flat admin charges
  • βœ“Mix both types in the same policy
  • βœ“Flexible modelling of real supplier terms
πŸ—ΊοΈ

User Journey

Step-by-step flow from start to finish

πŸ—ΊοΈUser Journey Flow

Follow the steps from start to finish

ACTORS:
πŸ“¦
Product Manager
πŸ‘€
Operations Coordinator
πŸ‘€
Finance Admin
πŸ“‹

Implementation Plan

How to implement this outcome

πŸ“… Project Overview

1-2 weeks low complexity
1

Policy Creation

2-3 days
  • β€’ Create Supplier Cancellation Policy records for each distinct set of terms
  • β€’ Add tiered rules (days-before-travel, charge type, value) to each policy
2

Agreement Linking and Assignments

2-3 days
  • β€’ Open each Supplier Agreement and link the appropriate cancellation policy
  • β€’ Set agreement type, commission, and channel fields as needed
  • β€’ Create Supplier Agreement Assignments for Price Category or Service-level scoping (if different terms apply to different services)
  • β€’ Verify agreement validity dates cover current and upcoming bookings
3

Validation

2-3 days
  • β€’ Create test bookings with supplier services and simulate cancellation at different time windows
  • β€’ Verify fee amounts match expected values from supplier contracts
πŸ“š

Resources

Configs, tools, and documentation to help you

Supplier vs Customer Cancellation Fees

These are two separate features in Kaptio that often apply to the same booking.

Customer Cancellation Fee

What you charge your traveller when they cancel a booking.

  • Configured via: Cancellation Configurations β€” tiered rules on the booking or package level
  • Applies to: The customer’s invoice β€” determines how much of the selling price the traveller forfeits
  • Direction: Traveller β†’ You (the operator)

Supplier Cancellation Fee

What your supplier charges you when you cancel a booked service.

  • Configured via: Supplier Cancellation Policies (this feature) β€” tiered rules linked to supplier agreements
  • Applies to: Your cost lines and margin β€” determines how much of the service cost you still owe the supplier
  • Direction: You (the operator) β†’ Supplier

How they relate

Both fees are tracked independently on the same booking. When a cancellation happens, the customer pays you their cancellation fee and you pay the supplier theirs. The difference between what you retain from the traveller and what you owe the supplier is your margin on the cancellation.


What Happens When You Cancel an Itinerary Item

When an itinerary item is cancelled, Kaptio updates the item’s Mode, Confirmation Status, and price lines. The behaviour depends on the item’s confirmation status before cancellation.

Mode Changes

Itinerary items have a Mode__c field that tracks their lifecycle state. During cancellation, mode transitions follow this sequence:

ModeMeaning
ActiveItem is live and part of the booking
Operations PendingAll passengers have been removed from a confirmed line via re-evaluation β€” a hidden Cancellation line is created for the fee; the original line moves here while awaiting operational resolution
CancellationItem has been internally cancelled β€” cancellation price lines are applied, but the supplier may not yet be notified
DeletedItem is fully removed from the active booking β€” its amounts are no longer considered towards itinerary totals

When you cancel an item, it moves from Active β†’ Cancellation. If re-evaluation removes every passenger from a confirmed line, the original item becomes Operations Pending and the fee sits on the new cancellation line. Completing Send Cancellation β†’ Confirm or Cancel Manually on a supplier-cancellation fee row keeps mode Cancellation (not Deleted) so invoicing amounts remain visible; Deleted applies to removals that skip that lifecycle (such as non-qualifying deletes or unconfirmed lines with no supplier booking).

Confirmation Status Transitions

The system handles cancellation differently depending on whether the item was already confirmed with the supplier:

If the item was unconfirmed (status: Unconfirmed or Confirmation Not Needed):

  • Confirmation status β†’ Cancelled Manually (no supplier interaction needed)
  • Cost lines are zeroed out β€” since nothing was booked with the supplier, there is no cost to the operator
  • No supplier cancellation fee applies

If the item was confirmed or sent (any other status β€” Confirmed, Sent, Confirmed Amendment, etc.):

  • Confirmation status β†’ Unconfirmed Cancellation (supplier still needs to be notified)
  • Cost lines are preserved β€” the supplier may charge a cancellation fee
  • Supplier cancellation fee is calculated based on the policy

From Unconfirmed Cancellation, the operator follows the standard confirmation workflow on the cancellation line(s):

  1. Send Cancellation to the supplier β†’ status becomes Sent Cancellation (33); mode stays Cancellation for fee-bearing supplier-cancellation rows (not Deleted)
  2. Supplier acknowledges β†’ operator marks Confirm β†’ status becomes Confirmed Cancellation (43); mode stays Cancellation

Alternatively, the operator can Cancel Manually if no supplier notification is needed β€” status Cancelled Manually (61); mode stays Cancellation on those same fee rows.

Full Confirmation Status Reference

StatusCodeWhen It Appears
Unconfirmed11Item not yet sent to supplier
Unconfirmed Cancellation13Item cancelled internally, supplier not yet notified
Sent Cancellation33Cancellation request sent to supplier
Confirmed Cancellation43Supplier has acknowledged the cancellation
Cancelled Manually61Cancelled without supplier interaction (was unconfirmed, or manually overridden)

How Fees Are Applied Based on Confirmation Status

The confirmation status at the time of cancellation determines whether supplier costs are retained:

Prior StatusCost LinesSupplier FeeRationale
Unconfirmed / Confirmation Not NeededZeroed outNoneNo booking existed with the supplier
Confirmed / Sent / Confirmed AmendmentPreservedCalculated from policySupplier has a confirmed booking and may charge
Unconfirmed AmendmentPreservedCalculated from policyOriginal booking was confirmed; amendment was pending

When fees apply, the system creates cancellation price lines that offset the original sell and cost amounts:

  • Sell Cancellation β€” reduces the customer’s charge by the refundable portion
  • Cost Cancellation β€” reduces the operator’s cost by the refundable portion (cost minus supplier fee)
  • Reseller Commission Cancellation β€” adjusts commission proportionally

Full vs Partial Cancellation

Kaptio supports two cancellation scopes:

Full cancellation β€” All items on the itinerary are cancelled. The itinerary status changes to the configured cancellation status, and every item goes through the mode and confirmation status transitions described above.

Partial (passenger) cancellation β€” Individual passengers are removed from specific items. The system:

  1. Splits the itinerary item: the remaining passengers stay on the original item, and the cancelled passengers are moved to a cloned β€œcancellation” item
  2. The original item’s confirmation status moves to Unconfirmed Amendment (if it was previously confirmed) so the supplier can be notified of the reduced quantity
  3. The cloned cancellation item carries the cancellation fee price lines
  4. Prices are recalculated proportionally based on the number of passengers removed

Data Model

Supplier cancellation fees are modelled with four objects:

SupplierCancellationPolicy__c
  β”‚   β€’ Name (e.g., "Standard Hotel Terms")
  β”‚   β€’ Description__c (internal notes)
  β”‚   β€’ IsActive__c (must be true to take effect)
  β”‚
  └── SupplierCancellationRule__c (master-detail children)
          β€’ DaysBeforeTravel__c (threshold, e.g., 30)
          β€’ ChargeType__c (Percentage or Fixed)
          β€’ Value__c (fee amount β€” e.g., 50 for 50%, or 200 for $200)

SupplierAgreement__c
  β”‚   β€’ SupplierCancellationPolicy__c (lookup to the policy)
  β”‚   β€’ Account__c (supplier)
  β”‚   β€’ AgreementType__c (e.g., Commission)
  β”‚   β€’ DefaultCommission__c (commission %)
  β”‚   β€’ TaxExclusiveCommissionCalculation__c
  β”‚   β€’ Channels__c (comma-separated channel IDs)
  β”‚   β€’ ValidFrom__c / ValidTo__c
  β”‚   β€’ Brand__c (optional, for BU matching)
  β”‚
  └── SupplierAgreementAssignment__c (child records, optional)
          β€’ SupplierAgreement__c (parent agreement)
          β€’ PriceCategory__c (highest priority match)
          β€’ Service__c (second priority β€” links to Item__c)
          β€’ Addon__c (add-on level scoping)
          β€’ Fee__c (fee level scoping)

A policy is a named container. Rules inside the policy define the fee tiers. The policy is linked to a supplier agreement via a lookup field. Agreement assignments optionally scope the agreement to specific price categories, services, add-ons, or fees β€” enabling different cancellation terms for different parts of the same supplier’s catalog.


Qualifying Confirmation Statuses

Supplier cancellation fees are only calculated when the itinerary item’s confirmation status is in the qualifying list. Items that were never confirmed (e.g., Unconfirmed, Waiting List, Pending, Confirmation Not Needed) will not generate fee lines, regardless of whether a valid cancellation policy exists.

GroupStatusesCodes
ReviewReview, Review Rate, Review Availability, Review Rate & Availability, Reconfirmation Rejected21, 22, 23, 24, 25
SentSent Confirmation, Sent Amendment, Sent Cancellation, Sent Reconfirmation31, 32, 33, 34
ConfirmedConfirmed, Confirmed Amendment, Confirmed Cancellation, Reconfirmed, Pending Amendment41, 42, 43, 44, 45

This gate is checked on all three trigger paths: re-evaluation, Cancel action on the Bookings tab, and service deletion from the Builder/Costings tab.


How Fee Resolution Works

When a service cancellation is being evaluated, the system resolves the applicable fee like this:

  1. Identify the supplier for the service being cancelled
  2. Find the active Supplier Agreement for that supplier (considering validity dates, brand, and channel)
  3. Read the Supplier Cancellation Policy linked to that agreement
  4. Evaluate the policy’s rules against the number of days between now and the travel date
  5. The rule whose DaysBeforeTravel__c threshold is the tightest match determines the fee

Worked Example

A hotel supplier has this cancellation policy:

RuleDays Before TravelCharge TypeValue
Early cancellation60Percentage10
Standard cancellation30Percentage50
Late cancellation0Percentage100

If the travel date is April 15 and you cancel on:

  • February 1 (73 days out): The 60-day rule applies β†’ 10% of service cost
  • March 20 (26 days out): The 30-day rule applies β†’ 50% of service cost
  • April 10 (5 days out): The 0-day rule applies β†’ 100% of service cost

Configuration Steps

Step 1: Create a Supplier Cancellation Policy

Navigate to the Supplier Cancellation Policies tab and click New.

FieldDescription
NameDescriptive label (e.g., β€œHotel Partner β€” Standard Terms”)
DescriptionInternal notes about when this policy applies
Is ActiveMust be checked for the policy to be resolved

Step 2: Add Cancellation Rules

From the policy record, create child Supplier Cancellation Rule records:

FieldDescriptionExample
Days Before TravelThe time threshold for this tier30
Charge TypePercentage or FixedPercentage
ValueFee amount (percentage number or currency amount)50

Create one rule per tier. A typical setup has 3–4 tiers covering the full timeline from booking to travel.

Open the Supplier Agreement record (or create a new one via the Supplier Agreement modal):

  1. Click the Supplier Cancellation Policy lookup field
  2. Search for and select the policy you created
  3. Set the Channels field if the agreement applies only to specific channels (comma-separated Channel IDs). If empty, falls back to brand/business unit matching.
  4. Ensure ValidFrom and ValidTo cover the itinerary item’s travel dates
  5. If the supplier charges commission, set AgreementType to Commission, set the DefaultCommission percentage, and check TaxExclusiveCommissionCalculation if commission is calculated on the pre-tax cost
  6. Save the agreement

The policy is now active for any service booked under this agreement.

Step 4: Create Supplier Agreement Assignments (optional, for hierarchy scoping)

If you need the agreement to apply only to specific services or price categories, create Supplier Agreement Assignment records. Open the agreement record and use the Supplier Agreement Assignments related list.

Priority order: When resolving which agreement applies during cancellation, assignments are checked in this order:

  1. Price Category level (highest priority) β€” set PriceCategory__c to the price category on the itinerary item
  2. Service level (second priority) β€” set Service__c to the Item (Item__c) on the itinerary item
  3. Add-on / Fee level β€” set Addon__c or Fee__c for granular scoping
  4. Direct agreement (no assignments, lowest priority) β€” the agreement without any assignments acts as the fallback

If no assignments exist on the agreement, it applies to all services from that supplier (direct agreement level).


Fixed vs Percentage Fees

Charge TypeHow It WorksWhen to Use
PercentageFee = Value% Γ— service costMost common β€” hotels, tours, transfers with proportional fees
FixedFee = flat currency amountAdmin fees, processing charges, non-refundable deposits

You can mix both types in the same policy. For example:

  • 60+ days: Fixed $100 admin fee
  • 30–59 days: 50% of service cost
  • 0–29 days: 100% of service cost

Common Configuration Patterns

Standard Tiered Hotel Policy

Policy: "Hotel β€” Escalating Tiers"
β”œβ”€β”€ Rule: 90 days+ β†’ 0% (free cancellation)
β”œβ”€β”€ Rule: 60 days  β†’ 25%
β”œβ”€β”€ Rule: 30 days  β†’ 50%
└── Rule: 0 days   β†’ 100% (full charge)

Non-Refundable Transfer

Policy: "Transfer β€” Non-Refundable"
└── Rule: 0 days β†’ 100% (full charge from day of booking)

Fixed Admin Fee + Escalation

Policy: "Activity Partner β€” Admin + Escalating"
β”œβ”€β”€ Rule: 30 days β†’ Fixed $150
└── Rule: 0 days  β†’ Percentage 100%

Relationship to Supplier Agreements

Supplier Cancellation Policies sit alongside payment rules and service assignments on a Supplier Agreement. The agreement is the single point where all supplier commercial terms come together:

Agreement ComponentPurpose
Payment RulesWhen and how much you pay the supplier (deposits, balance, billback)
Service AssignmentsWhich services this agreement covers
Cancellation PolicyWhat the supplier charges you if you cancel

See the Supplier Agreements Configuration Guide for full details on agreement setup.


Key Fields Reference

SupplierCancellationPolicy__c

FieldAPI NameTypeDescription
NameNameTextPolicy name
DescriptionDescription__cLong TextInternal notes
Is ActiveIsActive__cCheckboxPolicy must be active to be resolved

SupplierCancellationRule__c

FieldAPI NameTypeDescription
PolicySupplierCancellationPolicy__cLookupParent policy
Days Before TravelDaysBeforeTravel__cNumberTime threshold for this tier
Charge TypeChargeType__cPicklistPercentage or Fixed
ValueValue__cNumberFee amount or percentage

SupplierAgreement__c (Cancellation and Commission Fields)

FieldAPI NameTypeDescription
Cancellation PolicySupplierCancellationPolicy__cLookupLinks to the applicable cancellation policy
Agreement TypeAgreementType__cPicklistAgreement type (e.g., Commission). When set to Commission, SUPCOMMISSION and SUPCOMMISSIONCANCELLATION price lines are generated.
Default CommissionDefaultCommission__cPercentDefault supplier commission percentage (e.g., 15 for 15%)
Tax Exclusive CommissionTaxExclusiveCommissionCalculation__cCheckboxWhen checked, commission is calculated on the cost amount excluding tax
ChannelsChannels__cTextComma-separated Channel IDs. If populated, the itinerary’s channel must be in this list for the agreement to match.
Valid FromValidFrom__cDateStart of the agreement validity period
Valid ToValidTo__cDateEnd of the agreement validity period
BrandBrand__cLookupOptional brand/business unit for matching

SupplierAgreementAssignment__c

FieldAPI NameTypeDescription
Supplier AgreementSupplierAgreement__cLookupParent agreement
Price CategoryPriceCategory__cLookupPrice category to match (highest priority)
ServiceService__cLookupItem/service to match (second priority)
Add-onAddon__cLookupAdd-on to match
FeeFee__cLookupFee to match

Troubleshooting

IssueLikely CauseSolution
No cancellation fee showingPolicy not linked to agreementOpen the Supplier Agreement and set the Cancellation Policy lookup
Policy not resolvingPolicy is inactiveCheck IsActive__c is true on the policy record
Wrong fee amountWrong charge type on ruleVerify whether the rule should be Percentage or Fixed
Fee not matching contractRule thresholds don’t match contract termsCompare DaysBeforeTravel__c values against the supplier contract
No policy available in lookupPolicy hasn’t been created yetCreate the policy record first, then link it
Agreement expiredAgreement validity dates don’t cover todayCheck ValidFrom__c and ValidTo__c on the Supplier Agreement
Fee not applying despite policy existingItem’s confirmation status is not in the qualifying list, or Agreement Assignment doesn’t match the correct hierarchy levelVerify the item’s ConfirmationStatusId__c is in the qualifying list (21–25, 31–34, 41–45). Check that Agreement Assignments match the item’s Price Category or Service. If no assignments exist, the agreement applies as a direct fallback.
Commission cancellation line missingAgreement is not a Commission typeSet AgreementType__c = 'Commission' on the Supplier Agreement and ensure DefaultCommission__c is populated
Wrong agreement resolvingMultiple agreements exist for the supplierCheck Channel matching (Channels__c), Brand matching, and ValidFrom/ValidTo dates. If assignments exist, ensure the correct hierarchy level (Price Category > Service > Direct) matches the itinerary item.

⚠️

Common Pitfalls

Avoid these implementation mistakes

!

Confusing supplier cancellation policies with customer cancellation configurations β€” they are separate features serving different purposes

!

Forgetting to mark a policy as Active β€” inactive policies are not resolved

!

Mismatched charge types β€” check whether the supplier charges a percentage of cost or a flat fee before creating rules

!

Overlapping day ranges without clear priority β€” ensure rules have distinct DaysBeforeTravel thresholds

!

Not linking the policy to the agreement β€” a policy with no agreement linkage has no effect

!

Expired agreements β€” if the supplier agreement is no longer valid, its cancellation policy won't resolve

!

Item not in a qualifying confirmation status β€” fees are only calculated for statuses 21–25, 31–34, 41–45. Unconfirmed items will not generate cancellation fees.

!

Agreement assignment at the wrong hierarchy level β€” Price Category assignments take priority over Service assignments. If you create a Service-level assignment but the item also matches a Price Category assignment on a different agreement, the Price Category match wins.