Pricing (air tickets)

From docs.websky.tech
Revision as of 21:42, 30 September 2020 by I shaletin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Purpose

Pricing module automates the process of calculation of commissions and charges for air tickets, management of carrier's commission rules, agency fees and sub-agents' commissions.

  • allows you to quickly set up even complex commission rules,
  • allows you to build a convenient and clear pricing scheme,
  • accurately comply with the difficult conditions provided by airlines,
  • guarantees correct calculations,
  • provides a tool to control the correctness of calculations.

Principle of operation

The module's operation is based on the agency's pricing rules.

Rule — set of "commission and fee values" and "conditions of their application".
Values of commissions and charges is:

  • commission from the airline,
  • airline bonus,
  • agency charge,
  • commission for subagents.

Condition of application for commissions and charges — a set of flight parameters to which the fees and charges of the rules will apply ("validating carrier", "GDS", "flight type", "passenger types", etc.).

Pricing rules are defined in a table in an XLS or XLSX file, where:

  • "Table string" - rule.
  • " String cell" - parameter value.
  • "Column header" - parameter name.
    Each line is a separate rule.
    For one flight, only one rule is selected by criteria and only one rule applies.

Before calculating the commissions, the pricing module determines the availability of the flight for the ticketing and the rule by which the commissions and fees are calculated, using the following algorithm:

  1. The module records which airline GDS has defined as the validating airline;
  2. Finds all the rules for that airline in the pricing file;
  3. Selects the rules that match the flight by all parameters;
  4. Selects one of the appropriate rules by priority criteria;
  5. If the triggered rule does not contain an override of the validating carrier, the validating carrier obtained from the GDS is established.
  6. * If the triggered rule contains an override of the validating carrier, the overriding validating carrier is set.
  7. The rule applies.

The agency may only issue online flights of contract airlines. An airline is considered a contract airline if it has at least 1 rule in its uploaded pricing file.


Attention! The flight cannot be ticketed if:

  • there are no rules for the airline. It is recommended to delete such flights from the search results filter output "Airline is not contract".
  • rules for the airline are established, but the flight parameters do not correspond to the rule parameters.

The module's working order is given in the diagram:

Pricing 1.png
Workflow of the Pricing module

Commissions and charges are calculated each time an order is updated according to the rules loaded into the system at the time of checking:

  • when the search results are generated,
  • at the time of booking,
  • when switching to payment and ticketing,
  • when updating the order page.

If, during the period between booking and ticketing, rules were changed, аfter bookingб the order the commissions will be calculated according to the new rules, so the price at the time of booking and the price at the ticketing may differ. The behavior of the system in case of such a situation is set by the parameter Recalculate service charge under System Settings → Background Processes → Synchronization Events. You can track the calculation of commissions valid at the time of booking in the logs on order.

In the price details (on the order page) and in the itinerary receipt information on the charges is provided in accordance with one of the modes of division of charges by passengers:

  • Equally divided between non-zero ticket prices - agency and subagency charges are divided equally between all passengers with fare and tax more than 0. This mode is selected by default.
  • Equivalent between all fares - agency and subagency charges are divided equally among all passengers.
  • Proportional to fares - agency and subagency charges are divided proportionally to the fare price for a particular passenger in the total amount of the order, i.e. the more the fare price is, the more part of the charge is allocated for it.
  • Only to the first type of passenger - agency and subagency charges are allocated to the first type of passenger.
  • Proportional to fares , except for infants - agency and subagency charges are divided proportionally to the fare price for a particular passenger in the total amount of the order, except for infants.

The fees in the price details are presented with the division only if they are hidden in XP/XX taxes, otherwise they are displayed as a separate line without division.
You can find the setting in the Sales Management - Air Tickets - Pricing - Settings - Passenger Fee Splitting Mode.

Commission calculation for non-contractual airlines

The agency may "issue tickets" to "non-contractual" airlines on "clean interline" terms between the airlines.

For example,

  • The agency has no contract with "AA" airline.
  • The agency has a contract with "BB" airline.
  • There is an interline agreement between "AA" and "BB" companies, which allows issuing tickets for "AA" on "BB" form.

To issue tickets for "AA" airline, the agency has a rule for "AA" airline, which specifies:

  1. Validating carrier: «AA»,
  2. redefined carrier: «BB»,
  3. share of interline segments:«1»,
  4. airline commission: specify the amount of commission provided by "BB" for tickets with 100% share of interline segments.

Attention! The Websky system does not monitor the presence of interline agreements between carriers. Responsibility for redefinition lies entirely with the agency.

Selecting the rule for calculation

Commissions for the flight are calculated by one rule. If several rules are suitable for the flight, the system chooses the rule for calculation by priority criteria. Rules are compared on the first criterion, if the criterion in this case does not work, on the second and so on, until one rule is defined.

The order of comparing the rules to select the rule for the calculation:

  1. By "Priority" column - if the triggered rules have a priority, the rule with the highest priority is selected.
  2. By the presence of an overridden carrier - if several rules with the same priority are triggered (or the priority is not specified), the rule with the overridden VC is selected.
  3. For a nonempty Commission cell - the priority of the rules with an established commission (even in 0%) is higher than that of the rules with an empty cell.
  4. Extra priority - Manually set in the section Product control → Avia tickets → Pricing → Settings by the parameter Extra priority:
  5. * 'No - no additional priority is set.
  6. * 'Maximum commission from the airline - the rule with the maximum commission from the airline is selected.
  7. *'By the number of parameters in the rule - the rule with the largest number of non-empty parameters is selected.
  8. Rule's ordinal number - if none of the priorities is applicable, the newer rule is considered the priority (the table below the others).

Testing and debugging of rule triggering

All calculations at each stage of their application are logged and displayed in the debug table. The debug table is used to control how the rules work, providing information about how the rules apply to the selected flight.

Link to the debug table is available to the manager and experts of the root agency:

  • to display search results for each flight by the Commission link,
  • on the order page, in the flight price detail, by clicking on the amount of commission or charge.
Pricing 2.png
Link to debug table on the search page
Pricing 3.png
Link to price details on the order page
Pricing 4.png
Links to debug table on the price detail page

Table columns — pricing parameters.
Column header — values of pricing parameters for the flight being checked.
Table rows — Pricing rules "for the validating carrier" of the flight.

The table shows the order in which parameters are checked.

The parameters of each rule are compared in the flight parameters:

  1. if they match:
    1. the cell is highlighted in green,
    2. the following parameter is checked;
  2. if the value of the flight parameter does not match the value of the rule parameter:
    1. the cell is highlighted in red,
    2. rule check stops.

If a rule matches all parameters, the rule applies, commissions and fees are highlighted with green light, and their calculated values are displayed next to each other.


Pricing 6.png
Debug table

Enabling module. Rules Import and Export

To enable the calculation of commissions using Pricing, enable the Commissions 2.0 and Charges and Discounts 2.0 options in Product control → Avia tickets → Pricing → Settings.

To set the pricing rule:

  1. Go to Product control → Avia tickets → Pricing → Excel import/export.
  2. Press Upload in "xls" format or Upload in "xlsx" format. Open the file to edit.
  3. Set the rule: Fill in the string parameters. The format of data entry in each column must correspond to a strictly defined format (see Rules Import).
    Obligatory parameters to fill in:
    • validating carrier.
    • commission #
  4. Save the changes to the file.
  5. On the Excel import/export page in the Administration panel click Browse, open the file.
  6. Click Send to upload the file to the system.

During import, the system will validate all entered values. If a value is entered in a cell in an incorrect format, the system will report an error while saving all correctly defined rules.

After validation, the page displays a table showing all loaded rules in a compressed form.


The table provides color-coded rules that are currently invalid:

  • rules that have not yet come into effect (the sale start date is higher than the current date, see Parameters of Pricing Rules) are highlighted in orange,
  • the rules that have expired (the sale expiration date is greater than the current date) are highlighted in purple.

Pricing rule parameters

Template of file for entering pricing rules:

Attention! It is forbidden to rename columns!
But it is allowed to change columns and remove unnecessary columns.

To view the description of parameters expand the table:

Pricing rule parameters
Title Internal name Description Permissible values Examples
id id A unique record number from any external system (or database). Optional parameter. It does not participate in the calculation logic and is used for convenient rule identification. any value 123
GDS validating carrier valCompanyId The airline for which the rule is set. Must be the contract airline of the agent. If it is necessary to make ticketing on the stock of another airline (by interline), the validating carrier is redefined (see Redefined validating carrier). If the validating carrier from GDS is unacceptable by specified pricing rules and is not overridden - the flight is considered unacceptable for ticketing and is removed from search results with appropriate settings of results filtering. empty is ignored

2-digit IATA airline code

SU

LH

redefined vc manualVV If the validating carrier proposed by the GDS is not a contractual carrier or does not satisfy the commission agent, it can be overridden through this field. The VC field indicates the VC from GDS (or it is left empty), and this field indicates the carrier redefined by the agency.

The agent is responsible for acceptance of replacement and adequacy of the flight price (which was calculated by GDS for the carrier offered to it). The priority for the rules with the redefinition is higher than for the rules without it.

empty is ignored

2-digit IATA airline code

SU

LH

first segment carriers airlines A set of acceptable marketing carriers of the first segment of the route. empty = any
CODE,CODE...
<>CODE,CODE...(except)
SU,LH,BA

<>S7,SU

carriers of any segment airlinesAny A set of acceptable marketing carriers (interlines) of any segment of the route.

Permissible input options:

  • CODE,CODE,CODE : the rule applies if at least one marketing carrier from the flight is on the list.
  • CODE,CODE,CODE! : the rule applies if each marketing carrier from the flight is found on the list
  • <>CODE,CODE,CODE : the rule will not apply if at least one marketing carrier from the flight is found on the list
  • <>CODE,CODE,CODE! : the rule will not apply if all marketing carriers from the flight are found on the list.
empty = any
- one or more values (see description)
SU,LH,BA
SU,LH!
<>S7,SU
<>S7,BA!
code sharing codeSharing Permissibility of a flight being operated by another (operating) airline empty - all flights
1 - code sharing is required
0 - code sharing is prohibited
0

1

operators operatingAirlines Permissible operating airlines (need to be tested on all segments).

Input options:

  • CODE, CODE, CODE : the rule applies if at least one operating carrier of the flight is found on the list.
  • CODE,CODE,CODE : the rule applies if every operating carrier of the flight is found on the list.
  • <>CODE,CODE,CODE : the rule does not apply if at least one operating flight carrier is found on the list.
  • <>CODE,CODE,CODE : the rule will not apply if all operating carriers of the flight are found on the list.
empty = any
- one or more values (see description)
SU,LH,BA
SU,LH!
<>S7,SU
<>S7,BA!
own segment share ownPart The minimum allowed share of own segments (segments where the validating carrier is equal to a marketing one) must be greater than or equal to a given value (any number from 0 to 1):
  • 1 - all segments are own
  • 0.5 - half or more of own segments
  • 0.25 - a quarter or more of own segments
  • 0.01 - there is at least one own segment
  • 0 - all segments of interline
empty = any number

any number from 0 to 1

0.88
interline segment share interlinePart The minimum allowed percentage of nonproprietary segments (segments where the validating carrier is not equal to the marketing one) must be greater than or equal to the specified value (any number from 0 to 1).
  • 1 - all segments of interline
  • 0.5 - half or more segments of interlines
  • 0.25 - a quarter or more segments of interlines
  • 0.01 - there is at least one segment of the interline
  • 0 - all segments are own
empty = any number

any number from 0 to 1

0.88
contract type contractType BSP or TCH settlement system empty = any,
BSP
TCH
TCH
booking systems gds Global distribution system, in which the flight/ PCC of specific Websky requisites/ ID of the Websky requisite package was found.

Listed in any sequence, you can mix different types. The "or" rule applies: if the whole Sabre is specified, you don’t need to specify all its PCC/packages.

Attention! When specifying the name of the GDS, strictly follow the name format specified in the documentation. If the rule doesn’t match with the template, it will not apply!

empty = any
ГРС: SABRE, GALILEO, AMADEUS, SIRENA, SITA, SIG23
PCC: [letters+digits]
Package ID: [digits]
SABRE,670P,123

AMADEUS,GALILEO

SITA

start of sale paymentDateFrom Minimum allowed date of order execution (not to be confused with the date of departure). To trigger the rule, the current date must be greater or equal to the specified one. empty = ignored

DD.MM.YYYY

01.01.2012

31.01.2010

end of sale paymentDateTo Maximum allowable date for placing an order. To trigger a rule, the current date must be less or equal to the specified date. empty = ignored
DD.MM.YYYY
31.12.2022
flight type airlineType International or domestic (all flights within the same country) flight.

One value

empty = any
IA (international airlines)
DA (domestic airlines)
IA
DA
flight numbers flightNumber Permissible flight numbers, can be specified with or without the code of the marketing company.

Input variants:

  • NNN,NNN: the rule applies if at least one flight number from a flight from any segment is found on the list.
  • NNN,NNNN! : the rule shall apply if all flight numbers from all flight segments are found on the list.
  • <>NNN,NNNN : the rule will not apply if at least one flight number from any flight segment is found on the list.
  • <>NNN,NNNN! : the rule will not apply if all the flight numbers are found on the list.
empty = any
- one or more values (see description)
SU 123,SU 345
123,345
<>LH 555
aircraft type aircraft Permissible aircraft codes, must be specified in the same form as the codes returned by the GDS.

Input variants:

  • CODE,CODE: the rule applies if at least one aircraft code from any segment matches one of the specified list.
  • CODE,CODE! : the rule shall be applied if aircraft codes from all flight segments are in the list.
  • <>CODE,CODE : the rule will not apply if at least one aircraft code from the flight is in the list.
  • <>CODE,CODE : the rule will not apply if all the codes from the flight are in the list.


empty = any
- one or more values (see description)
73C,DH4
735
fare codes tariffs Permissible tariff codes. At least one fare from the flight must coincide with one from the given list. If there is a rule with denial, there must be no matches. The match is not exact: the code from the rule may be contained in the code from the flight (for example, the entered S1GREY26 will match S1GREY26CH from the flight).

Input variants:

  • CODE, CODE: the rule applies if at least one fare appears in the list.
  • CODE,CODE! : the rule will be applied if all the fares of the flight are in the list.
  • <>CODE,CODE : the rule won't be applied, if at least one fare is in the list.
  • <>CODE,CODE : the rule doesn't apply, if all fares of the flight are in the list.

You can set a regular expression. To do this, write the parameter in /XXX/ format. Examples:

  • /ABC/ — code must contain "..ABC..", for example, "NBABCS"
  • /abc/i — case insensitive check, the code can contain characters in any case, for example "NBABCS" or "Abcof"
  • /^TN/ — code must begin with "TN..", for example "TNQRTY"
  • /OW$/ — the code must end with "..OW", for example "SRSOW"
  • /^.L/ — first letter - any ( . — any symbol ), the second letter in the fare code must be L, for example "QLFST"
  • /OK.*RT/ — ( .* = any number of any characters) "..OK..RT..", for example "ANOKURTN"
empty = any
- one or more values (see description)
WRUTH9PL,ARUTH9PL


/TN.*OW/

maximum fare maxTariff Restriction on the maximum price value of the "base price" (the sum of all fares from the carriers on the flight or the price from GDS minus taxes). If the parameter is set, the rule written in the line is triggered only if the flight fare is less than or equal to the specified value. empty = no limit
xxxCODE (see examples)
10000RUB

300EUR

Private fare privateFare To trigger the rule, the flight must have a fare with the sign of confidential (private). This information is provided by GDS. If it's enough to indicate a specific code of a private fare to unambiguously define the rule, it's not necessary to set the sign. empty = any fares
1 — a private one must be present
0 — there must be no private fares
0
1
tax codes taxes Permissible tax codes

Input variants:

  • CODE, CODE: the rule will apply if any tax from the flight is in the list.
  • CODE,CODE! : the rule will apply if all the flight taxes are in the list.
  • <>CODE,CODE : the rule will not apply if any flight tax is in the list.
  • <>CODE,CODE : the rule will not apply if all the flight tax are in the list.

where CODE is a set of capital Latin letters.

empty = any
- one or more values (see description)
YQ,YR
<>YQ!
price confirmed priceIsActual An attribute of a confirmed flight price. The flight price after search is considered unconfirmed, its status changes to "confirmed" ("actual") after creating a real PNR or after requesting price update within Nemo Connect web services (before creating a PNR). empty = any flights
1 — flight in the PNR or its price is checked in advance
0 — flight has just been retrieved from search results
0
1
availability of VC segments for all fares valSegmentsInTariff Verification: any fare segment must have a validating carrier segment (minimum one). empty or 0 = any fares
1 - condition must be met
0
1
service classes serviceClass Permissible service class categories.

Input options (one- or two-letter values are entered):

  • CODE: The rule applies if the class is in the list.
  • CODE: this rule is applied if a combination of classes is in the list.
  • CODE, CODE: a rule is applied if a class from any segment is in the list.
  • CODE,CODE! : the rule applies if all classes from all flight segments are in the list.
  • <>CODE,CODE : the rule will not apply if a class from any segment is in the list.
  • <>CODE,CODE : the rule will not apply if all classes from all flight segments are in the list.

where the CODE:

  • B - business
  • E - economy
  • F - first
  • EB - combination of economy + business
  • EF - combination of economy + first
  • BF - combination of business + first
empty = any
- one or more values (see description)
B,E
F
EB,EF,F
booking classes (codes) bookingClass Allowed letters (one-letter codes) of booking classes. Must be Latin letters, Cyrillic letters are allowed only for Sirena supplier rules.

Input variants:

  • CODE, CODE: the rule applies if at least one class from any segment is in the list.
  • CODE,CODE! : the rule applies if the classes from all flight segments are in the list.
  • <>CODE,CODE : the rule will not apply if at least one class from any segment is in the list.
  • <>CODE,CODE : the rule will not apply if the classes from all flight segments are in the list.
empty = any
- one or more values (see description)
A,B,C
<>A,B,C
carriers and classes airlinesAndClasses Set of "marketing carrier" + "booking class" pairs of any segment of the route.

Permissible input options:

  • CODE:CODE,CODE:CODE,CODE:CODE : the rule applies if at least one flight segment matches one of the listed ones.
  • CODE:CODE,CODE:CODE,CODE:CODE! : the rule will apply if all the flight segments are in the list.
  • <>CODE:CODE,CODE:CODE,CODE:CODE : the rule will not apply if at least one flight segment would match any of the segments in the list.
  • <>CODE:CODE,CODE:CODE,CODE:CODE! : the rule will not apply if all flight segments are in the list.
empty = any
- one or more values (see description)
SU:A,LH:B,BA:C

SU:A,LH:B!
<>S7:A,SU:B
<>S7:A,BA:B!

zones zones Geographical zones of the flight. The whole flight must not exceed one of the specified zones for the rule to be triggered. division of countries by specified zones.
  • AF - Africa,
  • AN - Antarctica
  • AS - Asia
  • EU - Europe
  • NA - North America
  • OC - Australia and Oceania
  • SA - South America

the flight must be in both zones ("EUSA, EUNA" - transatlantic flight):

  • EUSA - Europe + South America,
  • EUNA - Europe + North America
  • EUAS - Europe + Asia
  • EUAF - Europe + Africa
  • EUOC - Europe + Australia and Oceania
  • AFNA - Africa + North America
  • ASNA - Asia + North America
  • EUAN - Europe + Antarctic
  • AFAS - Africa + Asia
  • AFAN - Africa + Antarctica
  • AFOC - Africa + Australia and Oceania
  • AFSA - Africa + South America
  • ANNA - Antarctic + North America
  • ANOC - Antarctic + Australia and Oceania
  • ANSA - Antarctic + South America
  • ASAN - Asia + Antarctica
  • NASA - North America + South America
  • OCSA - Australia and Oceania + South America
  • ASSA - Asia + South America
  • NAOC - North America + Australia and Oceania
  • OCAS - Australia and Oceania + Asia

Only the listed zone combinations are allowed!

empty = any
- one or more values
AS,EU
SA
EUSA, EUNA
country zone countryZones The above country codes form an area beyond which an aircraft must not land and take off. empty = any
CODE,CODE...
RU,IT,DE,FR
countries of departure depCountries Permissible countries of departure for the flight (only the country of departure of the first segment of the route is checked). empty = any
CODE,CODE...
<>CODE,CODE...(except for)
RU
<>LV,LT
countries of destination arrCountries The destination country is checked (for OW and CR: this is the last country of the last segment, for RT: this is the last country of the first leg of the route). For example, for MOW-PAR-MOW flight, the destination country is FR, for MOW-PAR-LON - GB. Country of departure=RU, country of destination=RU does not mean a local flight - do not forget to specify the flight type DA. empty = any
CODE,CODE...
<>CODE,CODE...(except for)
RU
<>LV,LT
direct flight isDirect Direct flight attribute empty = any
0 — only with transfers
1 — direct only

additionally:
2 — initial flight is direct
3 — initial flight is with transfers

0
1
route type routeType You can leave the field blank or specify a single value:
  • One Way - OW,
  • Round Trip - RT,
  • Complex Route - CR.
empty = any
CODE (see examples)
OW
RT
CR
routes routeFull Chain of IATA codes of cities or airports, describing the entire route of the flight, taking into account transfers, without breaks and repetitions. Always use the IATA code of the city, if it is available (aggregation airport). For example, a VKO-ORY, ORY-VKO flight is turned to the MOW-PAR-MOW route. empty = any
CODE-CODE,CODE-CODE,...
<>CODE-CODE,CODE-CODE,...(except for)
MOW-LON,LON-MOW
<>MOW-BER-PAR
contains routes routePart Only part of the route compiled similarly to the previous one is specified. empty = any
CODE-CODE,
-CODE-,...
<>-CODE-,...(except for)
-CAI-
<>-PRG-,PRG-SVX
routes (from airports) routeAirportsFull Use the codes of airports (not cities) in the IATA rule. The rest is similar to the "routes". see "routes" parameter description. see "routes" parameter description.
contains routes (from airports) routeAirportsPart Use the codes of airports (not cities) in the IATA rule. The rest is similar to the "contains routes". see "contains routes" parameter description. see "contains routes" parameter description.
departure (airports, cities) depAirports Only the departure airport of the first segment is checked. When you specify airport codes, you need an exact match. While specifying the codes of cities (aggregation of airports), the comparison is made according to the internal glossary of airports. It is recommended to specify the codes of specific airports. empty = any
CODE,CODE...
<>CODE,CODE...(except for)
MOW,PAR,BER <>VKO,LON
arrival (airports, cities) arrAirports The airport of arrival is defined similarly to the "country of destination". The check for comparison is made similarly to "departure (airports, cities)". empty = any
CODE,CODE...
<>CODE,CODE...(except for)
MOW,PAR,BER <>VKO,LON
start of flight dateBegin The departure date of the first segment must be greater than or equal to the specified date. empty = ignored
DD.MM.YYYY
01.01.2012

31.01.2010

departure in (hours) dateDepartureAfter The maximum value or range of departure is set from the current date. For example, if you want to select flights no later than 5 days before departure, the range [0,120] shall be set. empty = no restriction
maximum value
[X,X] — range
13

[10,100]

end of flight dateEnd The date of departure of the first segment should be less or equal to the specified date empty = ignored
DD.MM.YYYY
31.12.2022
return not earlier than dateBackBegin The departure date of the last route segment should be greater than or equal to the specified date empty = ignored
DD.MM.YYYY
31.12.2022
return not later than dateBack The departure date of the last route segment should be less than or equal to the specified date empty = ignored
DD.MM.YYYY
31.12.2022
duration in days daysDuration Restriction on the maximum gap in days between the first flight date and the end of the route. You can specify a range.

Duration in days is calculated as a mathematical difference in dates. If the departure and return are in one day, the duration will be equal to 0 days.

empty = no restriction
number of days - maximum value (inclusive)
[X,X] — range
13

[3,13]

days of the week dayOfWeek Permissible days of the week for the departure date of the route's first segment. Values are specified by the number corresponding to the order of the day of the week, starting from Monday. empty = ignored
1 — Monday
...
7 — Sunday
- one or more values
2
3,5
passenger types passengers Permissible types of passengers on the flight. For the rule to work, all the listed types of passengers must be present in the flight. empty = any
ADT — adult
CLD — child(2-12)
INF — infant(0-2)
INS — infant with seat (0-2)
- one or more values
INF
ADT,CLD
flight mask Formalized flight description in text format, to create complex rules
Will be added to the next version of the program
priority priority If several rules are triggered, one with the highest priority is selected. If there are several rules with the same priority (or no priority is specified), the newer rule is selected (located below in the imported table). integral number
empty = 0
1
2
promotional code Unique promotion code. It is created in the Administration panel in the section Template:Menu any set of letters/digits/symbols 12022014_Promo
utm source utmSource Transition source ID, which is displayed in the "№" field of the transition sources table in the metric.
Multiple sources are allowed.
empty = any
CODE,CODE...
<>CODE,CODE...(except for)
123,456
<>123,456
airline commission commission Agent's profit, received from the airline for sold tickets. The field required for filling in must strictly correspond to the value indicated in the contract. The value is transferred to the GDS upon ticketing. It can be specified in percentage of the fare or in absolute value. Commission is always calculated for each passenger.

Rules with specified zero commission have higher priority over rules with empty commission.

"xxxCODE" (currency code) or "XX%" 100RUB
13%
subagent commission agencyCommission Commission to a subagent is a part of the airline's profit which the agent sends to the subagents. The value of the commission acts as a discount for subagents, reducing the price of air tickets. Commission is always calculated for each passenger fare is not equal to 0.

Commission assignment formats for subagents:

For all subagents:

  • Fixed amount: XRUB, where:
    • X - commission amount, integer or decimal fraction with dot as a separator: 60, -3, 0.5
    • RUB - IATA code of the currency: EUR, UAH.
  • Percentage of the fare: X%,
    • where X - a percentage of the fare, an integer or a decimal fraction with a point separator: 60}, -3, 0.5.

For selected subagents or groups of subagents:

  • (ID:value),(ID:value),(ID:value),..., where ID - subagent’s (group’s) number in Websky, value - the size of the commission for this subagency (group) in the following format: X% or XRUB.

In one rule, you can combine the commission for all subagents and the commission for the specified subagents in a format:

  • XX,(ID:YY),(ID:YY),..., where:
    • XX - commission for all subagents in the format described above,
    • YY - commission for the specified subagent in the format described above.

In this case the size of the commission will be calculated:

  • for all subagents, except the specified: XX,
  • for the specified: XX + YY.

Example:

5%,(123:2%),(345:3%)
.
  • Subagent commission under the number 123 is: 5% + 2% = 7% of the fare.
  • Subagent commission number 345: 5% + 3% = 8% of the fare.

If the sum of the decimal is to be entered, the decimal part is separated with "." , for example: 0.5%

Attention! In case your agency plans to create a large number of individual pricing rules, each of which will specify the value of the subagent commission for individual subagents / groups / users, the recommended form of entry is as follows: (12345,12346,12347:3%) instead of (12345:3%), (12346:3%), (12347:3%). Which means using a grouping of the same values.

see description 100RUB

6EUR

2%

5%,(123:100RUB%),(345:2%),(345:-0.5%)

segmental commission calculation modeForSegment Attribute of commission or bonus being applied for each flight segment. For example, 100 rubles for each flight segment. empty = 0
0 — there is one commission for the entire flight
1 — commission should be multiplied by the number of segments
0
1
airline bonus bonus Additional agent profit that the agency receives from the airline, but it is not taken into account in requests to the GDS. It is set and calculated in the same way as commissions (the parameter "segment commission calculation" is taken into account when calculating). It is used to calculate the "profitability" of air travel, affects the mixer and can affect the fee when setting the "minimum profit" parameter.

Of all the triggered rules, the bonus will be taken into account only from one by the following priority:

  • Maximum priority for the triggered commission rule
  • If there is no bonus in the commission rule, a bonus from another triggered non-commission rule (an additional rule with an empty commission) will be used. If there are several such rules, the rule with the highest identifier (below in the table) will be used.
"xxxCODE" (currency code) or "XX%" 100RUB
13%
segment bonus (allowed for airlines) modeForAirlines Setting the current parameter forcibly enables the mode of bonus calculation for each flight segment (for absolutely specified bonus), but only segments with validating or interline carriers from the list specified here are taken into account. empty
CODE (airline code)

CODE,CODE...

SU

SU,FV

agency charge charge All markups/discounts that will be applied to the flight described by the rule are specified here. You can specify several price rules in one field by dividing them by user types.

format = (subject:sum), (subject:sum), (subject:sum)...
subject = group ID, user ID and two "B2C", "B2B" values with the possibility of <>rejection
sum = subclause + subclause + subclause. ...[restriction]
restriction = range of the total charge, set as [price, price]
sum = price*multiplier*multiplier...
price = "xxCODE" (currency code) or "XX%" (percentage of the total price (fare+taxes) of GDS)
multiplier = one of the values:

  • PAS - total number of passengers (including INF)
  • ADT - number of adults
  • CLD - number of children (2-12)
  • INF - number of infants (0-2)
  • INS - number of infants with seat (0-2)
  • SEG - number of flight segments (flight from A to B with 1 transfer => 2 segments)
  • LEG - number of legs (flight from A to B with 1 transplant => 1 shoulder)
  • TRF - to get the fare price equal to the fare sum
  • SGV - number of segments of the validating carrier

Examples:

  • 100RUB*SEG : plus 100 rubles to order value for each segment
  • 150RUB*SEG*PAS;: plus 150 rubles for each segment, for each passenger. For example: flight with two segments and two passengers = 600 rubles.
  • -10%*TRF : 10% discount from the fare.
  • 50RUB*LEG*ADT[,1000RUB] : 50 rubles for each adult ticket on each flight leg, but not more than 1000RUB
  • (<>123,345: 100RUB), (123,345: -100RUB) : subjects 123 and 345 will receive a discount of 100 rubles, the rest of the markup is 100 rubles.
  • (B2B: 1000RUB*ADT - 100RUB*CLD[-10%,-1%]), (B2C: 10% [10USD,]), (123: -1000RUB) : B2B users will get a markup of 1000 rubles for each adult ticket and 100 rubles discount for each child ticket, but not less than 1% of the total cost and not more than 10%. B2C users receive a 10% surcharge, but not less than $10. User ID=123 will receive a discount of 1000 rubles.

If several price rules, listed by comma, are triggered, their amount is taken. If this is not suitable behavior, divide the price rules into separate flight rules (rows), they can be adjusted by priority.

Attention! In case you plan to create a large number of individual pricing rules for your agency, each of which will specify the value of the agency fee for individual subagents / groups / users, the recommended form of entry is as follows: (12345,12346,12347:3%) instead of (12345:3%), (12346:3%), (12347:3%). Which means using a grouping of the same values.

If you need to enter the amount as a decimal fraction, the fraction is separated with "." , for example: 0.5%

see description see description
Metasearch commission MetasearchCommission Commission, charged by the meta-search system (for Websky at the moment it is only Aviasales) and calculated at the search stage. The value should be specified as decimal representation of the interest rate - it is a fraction of 1, for example, if you set 0.05 - 5%. It is possible to specify with/without the sign "%". Commission is calculated from the amount = flight price from supplier + fees/discounts + additional fees + min. profit. The calculated value is rounded to 2 characters after the separator. see description 0.05

0.025%

extra charge attribute chargeExt The setting allows you to change the charge calculation procedure by adding additional calculation rules to the final result.
  • 0 - Standard fee (default value). Of all the fees specified, one will be applied by priority.
  • 1 - Additional fee. Fees specified as additional fees are checked separately. In the same way, one extra charge with maximum priority is applied.
  • 2 - Obligatory fee. It will be obligatory to apply if all collection parameters are satisfied. Priority is ignored.
empty = 0

1
2

0
1

minimum profit minProfit Minimum profit that the agency will receive for the order. If the calculated agency profit is less than the minimum profit, the fee will be increased to the required value.

The format is similar to that of an agency. For calculations, the value from the rule by which the airline commission will be determined will be applied. If you need to change this behavior, you should set the "priority of the min. profit" parameter (see below).

see description 50RUB*LEG*PAS
minimum profit priority minProfitPriority An additional parameter responsible for calculating the minimum profit. The rule with the highest priority will be triggered, if the priority matches, the rule below will be used. Positive numeric values. 1, 2, ...
roundoff chargeRounding The procedure of arithmetic rounding of the charge empty = 0,
0 = to integer vaue,
0.1 = to tenths,
0.01 = to hundredths
0.1
0.01





Additional rule parameters for Websky platform

Parameters for working with private (confidential) fares.

To view the options description expand the table:

additional rule parameters
Title
Internal name
Description
Permissible values
Examples
tour code gdsTourCode Тур код
any value
On the example of Amadeus: if it is not necessary to specify PAX (passengerType), we specify only the RU084P tourcode, before the tourcode on the supplier side, * (asterisk) is always added, and the entered command in the terminal looks as FT *RU084P. If it is necessary to specify PAX (passengerType), you need to to specify it with the tourcode without space PAXRU084P, in the terminal, the entered command looks like FT PAX *RU084P.
15ZU
RU084P
ticket designator gdsTicketDesignator Ticket designator
any value PP08
endorsement gdsEndorsment Endorsements
any value
or %VAT_VALUE% to transfer the value of VAT in the endorsement only for GDS Amadeus, Sabre, Galileo, GalileouAPI and S7 NDC; for Sabre, the value is transferred to the GDS, but not to the Itinerary Receipt
Non-Endorsable/Valid on BA/IB only/Refund only to issuing agent; %VAT_VALUE%
agent's own profit comAgentProfit Agent's own profit
"xxxCODE" (currency code) or "XX%" Only integer values are allowed 100RUB
2%
tour code discount subject corpClient ID of the subject who will be given a discount on the tourcode ID,ID

<>ID,ID

2772,2653

<>2786,2361

discount by tourcode discount Discount
"xxxCODE" (currency code) or "XX%" 100RUB
13%
authorisation code authCode Authorisation code
any value MB10


EMD

EMD - electronic multi-purpose document or voucher. In the section "Product control → Avia tickets → Pricing → Settings", there is an option Issue EMD by order charge value. It is responsible for issuing the EMD for the agency's charge (available only to Sirena Travel). Principle of operation: if, for the agency which buys the ticket there is an agency charge in the pricing rules for the validating air carrier company, then, when issuing an order in addition to the itinerary receipt and EMD for additional services, a separate EMD will be issued for agency charge . If there are several people in the order, the charge will be divided between them, the total amount of the fee will not be increased.

See also