Variabele vliegtarieven Remco van Groesen (0769631) & Ellen Houbiers (0775493) Technische Universiteit Eindhoven Opdrachtgever: Sem Borst Begeleider: Marko Boon 18 juni 2013
1
Inhoudsopgave 1 Inleiding 1.1 Probleemomschrijving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 3
2 Literatuuronderzoek: Revenue 2.1 Dynamic pricing . . . . . . . 2.2 Overbooking . . . . . . . . . 2.3 Twee boekingsklassen . . . . 2.4 Network Capacity Control . .
. . . .
3 4 4 4 5
3 Statisch model 3.1 Lineair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Hyperbolisch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Exponentieel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 6 7 8
4 Stochastisch model 4.1 Binomiaal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 10
5 Tijdsafhankelijk model
12
Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
6 Simulatie 6.1 Poisson-simulatie . . . . 6.1.1 Voor- en nadelen 6.2 Tijdsintervallen . . . . . 6.2.1 Voor- en nadelen 6.3 Vergelijking met theorie
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
13 13 13 14 14 15
7 Vluchten in de praktijk 7.1 Amsterdam - Alor Setar 7.2 Amsterdam - Sydney . . 7.3 Amsterdam - Londen . . 7.4 Resultaten . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
15 16 17 17 18
8 Conclusie
18
9 Discussie 9.1 Mogelijke variabelen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18 19
A Poissonsimulatie
19
B Tijdsintervallensimulatie
20
C Tabellen praktijkonderzoek
22
2
Samenvatting Today, the price of a certain plane ticket can be really different from yesterday. The question is how airlines determine whether their prices should change, and how much this change will be. If you are booking a ticket 6 months before the flight departs, it will almost for sure have a different price than when you are booking 2 days before the flight departs. If the airline know how many people are willing to buy a ticket for a certain price, they can use Static Pricing to make sure that they earn a lot of money. This doesn’t always mean that the plane has to be fully loaded to gain maximum yield. But airlines do not use Static Pricing, but Dynamic Pricing. We used a formula for the optimal price, depending on the time left and the amount of seats left. By simulation we showed that given a relation of price and quantity is it a pretty good way to make more money than you would when the airline constantly took the optimal price. We also did a real-life research on the price of airplane tickets but the information we had was not enough to draw a conclusion about it.
1
Inleiding
De grootste Europese luchtvaartgoep Air France KLM, bestaande uit de luchtvaartmaatschappijen Air France en KLM, voert dagelijks zo’n 2500 vluchten uit in een netwerk met 230 bestemmingen in 113 landen. Hiermee worden jaarlijks ruim 75.8 miljoen passagiers vervoerd en de totale omzet over het boekjaar 2011 was 24.36 miljard Euro. Het is niet gemakkelijk om zo’n grote omzet te maken, maar hoe groter de omzet hoe groter de winst. En het grootste belang van Air France KLM is om een zo groot mogelijke winst te behalen. Om dit te realiseren worden er vliegtarieven gebruikt die sterk vari¨eren. Deze tarieven zijn niet alleen afhankelijk van het traject, de seizoensperiode en de reisvoorwaarden, maar ook van het moment waarop een vlucht geboekt wordt.
1.1
Probleemomschrijving
Iedere luchtvaartmaatschappij wil natuurlijk zoveel mogelijk winst maken. Dit kunnen ze doen door de opbrengst zo groot mogelijk te maken of de kosten zo laag mogelijk te houden. Wat wij ons nu afvragen is: hoe kan een luchtvaartmaatschappij haar inkomsten maximaliseren met behulp van variabele tarieven? Hiervoor gaan wij ten eerste in de literatuur op zoek naar modellen die tegenwoordig gebruikt worden door de luchtvaartmaatschappijen. De meest bekende methoden en toepassingen zullen wij beschrijven in Hoofdstuk 2. In Hoofdstuk 3 werken wij ons eerste model uit dat gebaseerd is op static pricing. Daarna maken we dit model realistischer door het aantal verkochte tickets als discrete stochast te veronderstellen, dit werken wij uit in Hoofdstuk 4. In hoofdstuk 5 is de prijs, en dus de vraag, afhankelijk van de tijd. Dit laatste model gaan we vervolgens simuleren in Hoofdstuk 6. We hebben ook nog praktijkonderzoek gedaan en deze resultaten staan verwerkt in Hoofdstuk 7. Als laatste trekken we onze conclusies en stellen wij punten ter discussie in respectievelijk Hoofdstuk 8 en 9.
2
Literatuuronderzoek: Revenue Management
Revenue Management is een veel gebruikte techniek die onder andere gebruikt wordt door de luchtvaartmaatschappijen. Het wordt ook wel yield management genoemd. Het doel van Revenue management is de verkoop van het juiste product aan de juiste klant op het juiste moment voor de juiste prijs. De luchtvaartmaatschappijen gebruiken hiervoor speciale software op hun reserveringssystemen. Deze software doen voorspellingen op basis van historische en actuele reserveringsgegevens over toekomstige reserveringen en optimaal gebruik van de stoelen. Op basis hiervan wordt de actuele prijs bepaald. Er zijn verschillende methoden en toepassingen van revenue management die gebruikt wordt door luchtvaartmaatschappijen. De meest bekende hiervan zullen we in de volgende paragrafen nader uitleggen. 3
2.1
Dynamic pricing
Bij dynamic pricing wordt er allereerst een basisprijs bepaald aan de hand van de gegevens van eerdere vluchten en de te verwachten vraag. Maar als er nu heel weinig verkocht wordt en er dus weinig vraag is, dan zal het vliegtuig nooit op tijd vol zijn. Hierdoor zal de luchtvaartmaatschappij dus winst mislopen. Bij de aanname dat er meer mensen een ticket kopen als de prijs lager is, zal de prijs dus moeten dalen om het vliegtuig vol te kunnen krijgen. Andersom geldt hetzelfde, als er in verhouding meer tickets verkocht zijn dan tijd verstreken is, dan zal het vliegtuig te snel vol zitten tegen een te lage prijs. Ook hier zal er dus weer winst worden misgelopen en dus zal de prijs moeten worden verhoogd. Het vliegtuig zal dan waarschijnlijk minder snel vol zitten, maar de opbrengst zal wel hoger zijn. Bij dynamic pricing gaat het dus om de prijs versus de vraag. Oftewel als er veel vraag is, dan stijgt de prijs. Maar als er niets verkocht wordt, zal de prijs dalen om alsnog tickets te verkopen.
2.2
Overbooking
Luchtvaartmaatschappijen hebben vaak te maken met annuleringen en zogenaamde no-shows. No-shows zijn passagiers die een ticket gekocht hebben, maar bij vertrek niet komen opdagen. Het vliegtuig zal dan met lege stoelen vertrekken, terwijl er wel vraag naar deze stoelen was. Luchtvaartmaatschappijen maken daarom gebruik van gecontroleerd overboeken waardoor hun opbrengsten hoger worden. Maar tot welke hoogte moet een bepaalde vlucht worden overgeboekt? Dit hangt af van het verwachte aantal no-shows, de extra te behalen opbrengsten en de te maken kosten. Deze kosten kunnen ontstaan doordat het vliegtuig te weinig capaciteit heeft als er te veel is overgeboekt. In dit geval worden er geldbedragen aangeboden in de hoop dat er klanten zijn, die bereid zijn om tegen een vergoeding een andere vlucht te nemen. Dit zorgt dan voor directe kosten, want deze geldbedragen zijn hoger dan de prijzen die deze klanten betaald hebben. Daarnaast zitten er ook nog juridische aspecten aan overboeken. Bij overboeking wordt tegenwoordig gebruik gemaakt van boekingslimieten die afhankelijk zijn van de tijd tot vertrek. Hoe dichter het tijdstip van vertrek nadert, hoe lager de limiet wordt. Tickets worden dan verkocht totdat deze limiet bereikt is en daarna wordt er niks meer verkocht, tenzij er annuleringen zijn. Hierdoor kunnen de verwachte opbrengsten worden gemaximaliseerd.
2.3
Twee boekingsklassen
Veel luchtvaartmaatschappijen maken gebruik van twee verschillende boekingsklassen, de eerste en tweede. Het verschil tussen de eerste en tweede klasse is dat als men een eerste klas ticket koopt in plaats van een tweede klas ticket, men meer luxe en serves krijgt. Maar een eerste klas ticket is natuurlijk wel duurder en in de meeste gevallen zijn deze extra kosten hoger dan de kosten die de luchtvaartmaatschappij heeft aan deze extra luxe en serves. Dit is natuurlijk logisch, want de luchtvaartmaatschappij wil zoveel mogelijk winst behalen. Het probleem bij het gebruik van twee verschillende boekingsklassen is dat de luchtvaartmaatschappijen van te voren niet weten hoeveel stoelen er voor de tweede klasse gereserveerd moeten worden en hoeveel voor de eerste klasse. Een veel gebruikte regel is: accepteer de reservering voor de tweede klasse dan en slechts dan als p2 ≥ p1 × P(D1 ≥ x). Hierin zijn p1 en p2 de prijs voor respectievelijk de eerste en tweede klasse, D1 de vraag naar de eerste klas stoelen en x het aantal nog niet gereserveerde stoelen. De formule betekent dus dat we een reservering voor de tweede klasse accepteren als de prijs voor een tweede klas stoel groter is dan de prijs voor een eerste klas stoel vermenigvuldigd met de kans dat er meer eerste klas stoelen verkocht gaan worden dan er nog over zijn. Er bestaat een optimale waarde x∗ van x. Dat wil zeggen dat de reservering voor de tweede klasse geaccepteerd wordt als er nog op zijn minst x∗ stoelen over zijn en verworpen wordt als er minder dan of gelijk aan x∗ stoelen over zijn. Deze x∗ kan bepaald worden uit de formule p2 = p1 × P(D1 ≥ x∗ ) of equivalent hieraan x∗ = F −1 (1 − pp12 ) waarin F −1 de inverse kansverdelingsfunctie van D1 is.
4
Deze methode wordt Littlewood’s twee-klasse model genoemd en is een onderdeel van single capacity control. Tevens kan het worden uitgebreid naar een n-klasse model waarin er n verschillende boekingsklassen zijn. In onze 2e bron (zie Referenties): ”The theory and practice of revenue management”, kan men meer informatie vinden over single capacity control in Hoofdstuk 2. Hierin staat op pagina 35 Littlewood’s twee-klasse model uitgelegd en vanaf pagina 36 staat er meer informatie over het n-klasse model.
2.4
Network Capacity Control
Network capacity control is het deel van revenue management dat de beschikbaarheid van stoelen van de verschillende boekingsklassen onder controle houdt. Network capacity control zorgt namelijk voor de totstandkoming van optimale adviezen en beslissingen rond de acceptatie of verwerping van boekingen van bepaalde combinaties van vluchten. Ook wordt het wel seat inventory control genoemd. Single leg control is de simpelste en eerste versie van Network capacity controle. Single leg control heeft als doel om voor een enkele vlucht zonder tussenstops en met twee boekingsklassen de opbrengsten te maximaliseren. Later werd dit opgevolgd door het segment control probleem, waarbij gezocht werd naar de regels voor toewijzing en verwerping van boekingen bij een vlucht met meerdere tussenstops. Dit werd vervolgens uitgebreid met het zogenaamde origin-destination control probleem. Hierbij moet over een heel netwerk van vluchten beslissingen genomen worden over boekingen, maar er moet daarnaast ook nog rekening gehouden worden met de aansluitingen van vluchten. Tegenwoordig wordt voor het origin-destination controle probleem gebruik gemaakt van bid-price methoden, waarbij duale prijzen van een deterministisch lineair programmeringsmodel gebruikt worden om marginale opbrengsten en kosten voor extra stoelen op verschillende vluchten zonder tussenstops vast te stellen. Voor een vlucht met eventuele tussenstops worden deze duale prijzen bij elkaar opgeteld. Deze opgetelde waarde wordt de bid price voor deze route. De bid price is dus de netto waarde van een stoel (die nog verkocht moet worden) op die route. Nu wordt een reservering geaccepteerd als het tarief voor deze route hoger is dan de bid price.
3
Statisch model
Static pricing is het van te voren bepalen van een prijs, op grond van verwachtingen. Hierdoor hoopt de verkoper/aanbieder een zo hoog mogelijke winst te behalen. Soms is het namelijk beter om de prijs van een product wat lager te houden, omdat er dan meer klanten zijn die het product willen hebben. Echter, in de luchtvaartsector zijn er een beperkt (en zelfs een vastgesteld) aantal stoelen beschikbaar. Hierdoor ligt het aanbod van stoelen eigenlijk al vast en is het zaak daaruit de beste prijs te bepalen. Voor ons eerste model maken we gebruik van static pricing, zodat we dit later kunnen vergelijken met dynamic pricing. Om gebruik te kunnen maken van static pricing, moeten we aannemen dat de prijs onafhankelijk is van de tijd. Daarnaast nemen we aan dat de vraag alleen afhankelijk is van de prijs en dus niet van de tijd. Er geldt dus dat de vraag vast staat als de prijs bekend is en daarnaast is de vraag gelijk aan het aantal verkochte tickets. De prijs is dus de hele verkoopperiode hetzelfde en we gaan nu op zoek naar de prijs waarbij de opbrengst zo hoog mogelijk is. We gaan dit doen door het bestuderen van zogehete prijsvraaglijnen. We nemen hierbij Q als functie van P, omdat de luchtvaartmaatschappij de prijs weet en hieruit dus de vraag wil en kan bepalen. De prijs-vraaglijnen geven dus de hoeveelheid verkochte tickets (Q) weer als functie van de prijs (P). Dit zijn doorgaans dalende lijnen. Immers, voor een hogere prijs willen minder klanten een ticket kopen. In deze prijs-vraaglijnen onderscheiden we drie mogelijke gevallen: een lineaire, hyperbolische en exponenti¨ele benadering.
5
3.1
Lineair
Een lineaire prijs-vraaglijn heeft de vorm zoals te zien is in Figuur 1. De algemene formule voor
Figuur 1: De lineaire prijs-vraaglijn deze lijn is: q =a·p+b Hierin is q de hoeveel verkochte tickets en p de prijs, a en b zijn constanten. Deze constanten zullen we nu eerst bepalen. Als p = 0 dan koopt iedereen die ge¨ınteresseert is het ticket. Hieruit volgt dus dat b = qmax . Hier is qmax de gevraagde hoeveel producten bij een prijs van 0 euro. Als de prijs extreem hoog is, willen nul personen het ticket kopen. Neem hierbij p = pmax , waarbij pmax de prijs is waarbij exact niemand een ticket wil kopen. Er volgt dan: 0 = a · pmax + qmax ⇒ a = −
qmax pmax
De uiteindelijke formule wordt dan: q=−
qmax · p + qmax pmax
(1)
De formule voor de opbrengst is: O = p · q. Als we hierin Formule 1 invullen voor q geeft dit: qmax qmax 2 · p + qmax = − · p + qmax · p O =p· − pmax pmax De opbrengst ziet er grafisch uit zoals is weergegeven in Figuur 2. Om de opbrengst te maximaliseren, nemen we de afgeleide naar de prijs en stellen dit gelijk aan nul. Dit geeft: pmax qmax · p + qmax = 0 ⇒ p = O˙ = −2 · pmax 2 Als de luchtvaartmaatschappij de tickets dus verkoopt voor een prijs van pmax 2 , dan zou de opbrengst zo groot mogelijk zijn. Maar dit geldt alleen als de vraag die bij deze prijs hoort niet groter is dan de capaciteit van het vliegtuig, want dan zal deze maximale opbrengst niet behaald worden. Bij een prijs van pmax hoort een vraag van qmax 2 2 . Nu kan het dus zijn deze vraag groter is dan de capaciteit van het vliegtuig. In dat geval kan de luchtvaartmaatschappij de tickets beter verkopen
6
Figuur 2: De opbrengstfunctie bij een lineaire benadering voor de prijs pC die hoort bij q = C, waarbij C staat voor de capaciteit van het vliegtuig. Voor deze prijs geldt: qmax (qmax − C) · pmax C=− · pC + qmax ⇒ pC = pmax qmax Om dus een maximale omzet te behalen voor een vliegtuig met een capaciteit C, moet de luchtvaartmaatschappij de tickets verkopen voor een prijs van: ( pmax als qmax ≤C ∗ 2 2 p = (qmax −C)·pmax qmax als >C qmax 2
3.2
Hyperbolisch
Bij een hyperbolische benadering dan heeft de prijs-vraaglijn de vorm zoals te zien is in Figuur 3. De algemene formule voor een hyperbool in het eerste kwadrant (d.w.z zowel de prijs als de vraag zijn nooit negatief) ziet er als volgt uit: a q= +c p−b Hierin is q weer de hoeveel verkochte tickets en p de prijs. De constanten a, b en c zullen we nu eerst gaan bepalen. Voor een hyperbolisch benadering moeten we aannemen dat iedereen een vliegticket koopt als de prijs nul euro is. Dat wil zeggen: als p → 0 dan q → ∞. Hieruit volgt dus b gelijk moet zijn aan 0. Daarnaast nemen we aan als de prijs extreem hoog is, dat er altijd nog mensen zijn die een ticket zullen kopen. Maar het aantal verkochte tickets zal wel steeds minder worden, naarmate de prijs hoger wordt. In dat geval geldt er dus dat als p → ∞ dat dan q → 0. Hieruit volgt dan dat c gelijk moet zijn aan 0. De uiteindelijke formule wordt dan: a q= (2) p Formule 2 vullen we dan weer voor q in in de opbrengstfunctie. Er volgt dan: a O =p·q =p· =a p
(3)
De opbrengst is dus niet alleen bij elke prijs constant, maar ook al van tevoren bepaald door de prijs-vraaglijn. Dat is ook te zien aan de lijn die opbrengst weergeeft in Figuur 4. De luchtvaartmaatschappij kan dus de tickets voor elke willekeurige, vast prijs verkopen om een een maximale omzet te behalen. 7
Figuur 3: De hyperbolische prijs-vraaglijn
Figuur 4: De opbrengstfunctie bij een hyperbolische benadering
3.3
Exponentieel
De exponenti¨ele prijs-vraaglijn ziet er uit zoals in Figuur 5 is weergegeven. De algemene formule die bij deze lijn hoort, is: q = a · e−bp Bij een exponenti¨ele benading geldt net zoals bij de lineaire benadering dat iedereen die ge¨ınteresseert is het tickets koopt als p = 0. Hieruit volgt dus dat a = qmax , waar qmax de gevraagde hoeveelheid producten is bij een prijs van nul euro. De uiteindelijke formule wordt dan: q = qmax · e−bp De formule van de opbrengst ziet er, na het invullen van Formule 4 voor q, als volgt uit: O = p · q = p · qmax · e−bp
8
(4)
Figuur 5: De exponenti¨ele prijs-vraaglijn
Figuur 6: De opbrengstfunctie bij een exponenti¨ele benadering De opbrengstfunctie heeft de vorm zoals te zien is in Figuur 6. Om de opbrengst te maximaliseren, moeten we weer de afgeleide nemen en deze gelijk stellen aan nul. Hieruit volgt dan: 1 O˙ = qmax · e−bp − p · b · qmax · e−bp = 0 ⇒ p = b Bij een prijs van 1b hoort een vraag van q = qmax e . Ook in dit geval geldt weer dat de maximale winst niet behaald kan worden als deze vraag groter is dan de capaciteit C van het vliegtuig. De luchtvaartmaatschappij moet dan een prijs hanteren die die hoort bij q = C, dan geldt: C − ln qmax C = qmax · e−bpC ⇒ pC = b C Het lijkt op het eerste gezicht dat pC < 0, maar omdat C ≤ qmax , is ln qmax < 0. Hierdoor is pC > 0. Om dus zoveel mogelijk omzet te behalen, moet de luchtvaartmaatschappij de tickets dus 9
verkopen voor een prijs van: (1 ∗
p =
4
b C − ln( qmax ) b
als als
qmax e qmax e
≤C >C
Stochastisch model
In ons eerste model nemen we aan dat de vraag gelijk is aan het aantal verkochte tickets, maar dit is niet erg realistisch. Daarom gaan we er voor dit stochastisch model van uit dat niet iedereen die ge¨ınteresseert is ook daadwerkelijk een ticket koopt. We nemen dus aan dat het aantal verkochte tickets X een discrete stochast is, met een kans Pp (X = x) die afhankelijk is van de prijs p. Aangezien het aantal verkochte tickets niet groter kan zijn dan de capaciteit C van het vliegtuig, geldt voor deze kans: Pp (X = x) = 0 als x > C Nu het aantal verkochte tickets een stochast is, kan de opbrengst niet meer expliciet bepaald worden. Dit kan wel met de verwacht opbrengst, deze is namelijk gelijk aan het verwachte aantal verkochte tickets vermenigvuldigd met de prijs. Als n het aantal ge¨ınteresseerde klanten is, dan geldt er: n X i · Pp (X = x) Ep [O] = p · Ep [X] = p · i=1
De verwachte opbrengst willen we maximaliseren. Dit doen we weer door de verwachte opbrengst te differenti¨eren naar p en en deze gelijk te stellen aan nul. Voor deze afgeleide geldt: d d Ep [O] = Ep [X] + p · Ep [X] dp dp Omdat we niet weten hoe de verwachte opbrengst er als functie uitziet, nemen we aan dat er k nulpunten p1 , p2 , ..., pk zijn. Om te bepalen bij welke pi het maximum daadwerkelijk wordt aangenomen, vullen we alle pi ’s in in de verwachte opbrengst en kijken voor welke pi deze opbrengst het hoogst is. Stel dit maximum is wordt aangenomen voor pj =: p∗ , dan is de maximale opbrengst: Ep∗ [O] = p∗ ·
n X
i · Pp∗ (X = x)
i=1
Als de luchtvaartmaatschappij de tickets dus verkoopt voor een prijs van p∗ , dan zal de verwachte opbrengst maximaal zijn. Maar dit geldt natuurlijk alleen als Ep∗ [X] ≤ C. Als Ep∗ [X] > C, dan moet de verwachte opbrengst bij een prijs p∗ vergeleken worden met die bij een prijs PC die hoort bij EpC [X] = C. Er geldt dan dat de verwachte opbrengst maximaal is bij een prijs die gelijk is aan: ( p∗ als Ep∗ [O] ≥ EpC [O] p= pC als Ep∗ [O] < EpC [O] Aangezien deze maximale opbrengst afhankelijk is van een stochast, is het handig om een 100γ% betrouwbaarheidsinterval op te stellen. In dat geval kunnen we namelijk zeggen dat met een zekerheid van 100γ% de verwachte opbrengst in dit interval ligt. Om dit allemaal te verduidelijken, zullen we in paragraaf 4.1 dit uitwerken voor het geval dat het aantal verkochte tickets binomiaal verdeeld is.
4.1
Binomiaal
Stel dat het aantal verkochte tickets X binomiaal verdeeld is. Als we aannemen dat de capaciteit van het vliegtuig C is en het aantal ge¨ınteresseerde klanten n, dan geldt er: ( n x n−x als 0 ≤ x ≤ n x a (1 − a) Pp (X = x) = 0 anders 10
Hierin is a de kans dat een ge¨ınteresseerden een ticket koopt. Deze kans a moet een dalende functie in p zijn, namelijk hoe hoger de prijs, hoe kleiner de kans is dat iemand een ticket wil kopen. Als de prijs 0 euro is, dan koopt de ge¨ınteresseerde altijd het ticket en dus moet er in dat geval gelden dat a(p) = 1. Daarnaast mag a(p) natuurlijk nooit groter zijn dan 1 en er moet gelden dat als de prijs extreem hoog is, dat er nog altijd een kans bestaat dat het ticket gekocht wordt. De exponenti¨ele functie, met de juiste constanten, voldoet aan deze eisen. Er geldt dan: a(p) = e−bp Hierin is b een constante tussen de 0 en 1. Er geldt hoe kleiner b, hoe langzamer de kans afneemt dat iemand een ticket koopt, dus hoe minder steil de functie a(p) is. Voor de binomiale verdeling geldt er Ep [X] = n · a(p). Dit verwachte aantal tickets als functie van de prijs ziet er grafisch uit zoals in weergegeven in Figuur 7. De verwachte opbrengstfunctie ziet er dan als volgt uit:
Figuur 7: Het verwachte aantal verkochte tickets uitgezet tegen de prijs Ep [O] = p · n · a(p) = p · n · e−bp Deze ziet er grafisch uit zoals is weergegeven in Figuur 8. We nemen vervolgens hiervan de afgeleide en stellen deze gelijk aan nul. Er volgt dan: d 1 Ep [O] = n · e−bp − b · p · n · e−bp = 0 ⇒ p = dp b Als de luchtvaartmaatschappij de tickets dus verkoopt voor een prijs van 1b , dan zal de verwachte opbrengst maximaal zijn. Maar dit geldt natuurlijk alleen als E 1b [X] = ne ≤ C. In het geval dat E 1b [X] > C kan de luchtvaartmaatschappij beter de tickets verkopen voor een prijs die hoort bij Ep [X] = C. Voor deze prijs geldt: ln C −bpC n C =n·e ⇒ pC = − b De verwachte opbrengst is dus maximaal als de prijs voor een ticket gelijk is aan: (1 als n ≤ C ∗ p = b ln( C e) − bn als ne > C
11
Figuur 8: De opbrengstfunctie bij een binomiale stochast Omdat het aantal verkochte tickets een stochast is en de opbrengst hiervan afhankelijk is, bepalen we nu een 100γ% betrouwbaarheidsinterval voor de maximale opbrengst. Hiervoor moeten we eerst de verdelingsfunctie voor de opbrengst bepalen: u X p i n−i n u = · e−bp · 1 − e−bp P[O < u] = P X < p i i=1
Voor een 100γ% betrouwbaarheidsinterval (L, U ) bij een optimale prijs p∗ , moet gelden dat P[L < O < U ] = γ. Om nu de waarden U en L hieruit te vinden, moeten we de volgende vergelijkingen oplossen naar respectievelijk U en L U p∗ X ∗ i ∗ n−i n · e−bp · 1 − e−bp = γ1 i i=1 U p∗ X ∗ i ∗ n−i n · e−bp · 1 − e−bp = γ2 i i=1
Hierin moet gelden dat γ1 − γ2 = γ. We kunnen nu concluderen dat als de luchtvaartmaatschappij de tickets verkoopt voor een prijs van p∗ , dat dan de maximale opbrengst met 100γ% zekerheid tussen L en U ligt.
5
Tijdsafhankelijk model
Om een nog realistischer model te maken, nemen we niet meer aan dat de prijs de hele verkoopperiode constant is, maar dat deze varieert in de tijd. Ook nemen we aan dat we een van de vraagfuncties hebben zoals beschreven is in Hoofdstuk ??. Deze vraag, die afhankelijk is van de prijs, wordt dus ook afhankelijk van de tijd. Daarnaast laten we kopers aankomen via een Poisson proces met een intensiteit λ. We moeten λ dan gelijk kiezen aan de vraag, want dan koopt de klant die aankomt sowieso een ticket. In dit geval is λ dus ook afhankelijk van de tijd. Het aantal verkochte tickets is dan een Poisson proces met variabele intensiteit q(p(t)). Omdat alles afhankelijk is van de tijd, kunnen we hier theoretisch verder bijna niks meer mee bepalen en concluderen. Met behulp van simulaties kan dit wel en daarom zullen we dit model in Hoofdstuk 6 verder uitwerken. 12
6
Simulatie
We hebben het tijdsafhankelijk model op 2 manieren gesimuleerd. Beide hebben zo hun voor en nadelen. We zijn bij beide uitgegaan van een exponenti¨ele vraag ten opzichte van de prijs, zoals deze beschreven is in paragraaf 3.3. Er geldt dus q = A · e−p . Verder staat de volgende formule centraal: ! n X ∗ ∗ i 1 J (n, t) = log (λ · t) · i! i=0 Dit is de formule voor de verwachtte opbrengst bij n nog te verkopen stoelen en t nog te verstrijken tijd. Deze formule komt uit onze 3e bron. Hieruit volgt de optimale prijs p∗ : p∗ (n, t) = J ∗ (n, t) − J ∗ (n − 1, t) + 1 Ook deze formule komt uit onze 3e bron. Deze prijs zit zogezegd ’rond 1’. Dat wil zeggen dat 1 de minimale prijs is. Mocht je bijvoorbeeld 60 als minimale prijs kiezen, dan vermenigvuldig je de gehele formule met 60.
6.1
Poisson-simulatie
De poisson-simulatie is gebaseerd op een poisson proces. Zolang de vlucht nog niet uitverkocht is en nog niet vertrokken is, komen er kopers volgens een poisson proces met intensiteit λ. De aangekomen klant koopt het ticket dus sowieso. Dit komt omdat we met een prijsafhankelijke lambda de aankomst van een koper genereren. Het belangrijkste gedeelte van het programma, ziet er als volgt uit: while (time < totalTime && persons < maxPersonen) { //er komt nu een nieuwe persoon aan time = time + exponential(lambda(price)); price = J(N-n, 1-time) - J(N-n - 1, 1-time) + 1 earnings = earnings + price; personen++; } } Grafisch ziet het verkoopproces er dan zo uit als te zien in figuur 9.
Figuur 9: Een grafische weergave van het verkoopproces bij A = 100e en days = 1.
6.1.1
Voor- en nadelen
Het nadeel van deze simulatie is dat je als ware een stap achter loopt. Er wordt namelijk elke keer een nieuw aankomsttijd gegenereerd bij een intensiteit die afhangt van de prijs. Maar de prijs verandert weer op die nieuwe aankomsttijd. Het voordeel is dat deze simulatie niet veel tijd kost, omdat we alleen maar de aankomsten hoeven te genereren. 13
6.2
Tijdsintervallen
De simulatie die gebaseerd is op tijdsintervallen werkt anders. Hierin wordt er een interval gesimuleerd (ter grootte δ), en dan wordt bekeken hoeveel tickets er in dat interval verkocht zijn. Ook deze vorm van simuleren heeft veel te maken met poissonprocessen. Er geldt nu (voor δ klein genoeg) dat de kans dat er 1 ticket wordt verkocht, gelijk is aan λ · δ + o(δ). De kans dat er geen tickets worden verkocht is gelijk aan 1 − λ · δ + o(δ) en de kans dat er meer dan 1 tickets verkocht worden is gelijk aan o(δ). Dit is ook wat onze 3e bron meldt. Echter, het is ook mogelijk om dit exact te bepalen. Voor het poisson-proces geldt namelijk: n
P [N = n] = e−λδ ·
(λδ) n!
Om te beslissen hoeveel tickets er dan worden verkocht tijdens het interval, genereren we een uniform verdeelde willekeurige variabele a op [0,1] en dan nemen we de hoogste n waarvoor geldt dat P [N = n] < a. De basis van de tijdsintervallensimulatie zit in de volgende code: while (t + dist < 1 && n < N) { t = t + dist;
price = (J(N - n, 1 - t) - J(N - n - 1, 1 - t) + 1); int w = soldTickets(price, dist); n = n + w; earnings = earnings + w * price;//alle w tickets worden verkocht voor prijs price } } Het resultaat van de tijdsintervallensimulatie ziet er bijvoorbeeld zo uit als te zien is in figuur 10.
Figuur 10: Een grafische weergave van het verkoopproces bij A = 100e, dist = 0, 001 en days = 1.
6.2.1
Voor- en nadelen
Het voordeel is dat je bij deze simulatie op elk tijdstip de prijs van een ticket weet, ongeacht of er iemand op dat tijdstip van plan is om een ticket te kopen. Een nadeel is dat deze vorm van simuleren redelijk lang duurt, als je een betrouwbaar resultaat wilt. Nog een nadeel is dat het mogelijk is dat er 2 personen een ticket kopen op eenzelfde tijdstip. Er moet wel gezegd worden dat het goed mogelijk is dat 1 persoon 2 tickets koopt. In werkelijkheid kan iemand natuurlijk ook 2 tickets bestellen bij een luchtvaartmaatschappij.
14
6.3
Vergelijking met theorie
We gaan de resultaten van de simulatie vergelijken met de theorie. Het is gemakkelijk om theoretisch te berekenen wat de verwachte winst is, want de vraaglijn is bekend. Hier geldt dat; ( 1 als Ae < N p∗ = − log N A anders Als het aantal tickets wat we willen verkopen kleiner is dan het aantal tickets wat beschikbaar is, dan kiezen we p = 1. Als dat niet het geval is, kiezen we p gelijk aan de prijs waarbij alle stoelen van het vliegtuig verkocht worden. Met deze p∗ zijn we gaan rekenen. Het invullen van deze p∗ (als zijnde een constante prijs gedurende de gehele tijd) in de verschillende simulaties gaf de resultaten zoals deze te zien zijn in tabel 1. Uit deze tabel wordt duidelijk dat in veel gevallen de theoretische maximale waarde Tabel 1: De uitkomsten van de verschillende simulaties bij een vaste prijs, berekend als prijs waarbij de opbrengst het hoogst is. Voor de variabelen geldt; A = 100 ∗ e, dist = 0, 0001 en days = 1. Deze getallen zijn gemiddeldes van 1000 simulaties. N 25 50 100 125 150
Poissonsimulatie 55,77 80,36 96,045 99,87 100,086
Tijdsintervallensimulatie 54,79 78,9 92,918 95,28 94,874
Theoretisch 59,65735903 84,65735903 100 100 100
van de opbrengst niet bereikt wordt. Nu we de methode met dynamic pricing toe gaan passen, hopen we per geval de originele opbrengst te overtreffen. De resultaten van deze simulaties staan in tabel 2. Tabel 2: De uitkomsten van de verschillende simulaties bij toepassen van de dynamische prijsverandering. Voor de variabelen geldt; A = 100 ∗ e, dist = 0, 0001 en days = 1. Deze getallen zijn gemiddeldes van 1000 simulaties. N 25 50 100 125 150
Poissonsimulatie 57,37 82,48 99,48 100,18 100,12
Tijdsintervallensimulatie 56,817 80,95 95,007 95,42 95,035
Bij beide simulaties is te zien dat de dynamische prijstoepassing een positief effect heeft ten opzichte van de statische optimale prijs. De extra winst ligt zo tussen de 0,1 en 3 procent. De tijdsintervallensimulatie levert wel continu een lagere uitkomst dan de poissonsimulatie. Dit kan liggen aan het feit dat de tijdsintervallensimulatie rekent met heel kleine waarden, die door het 1 , waar n groeit. programma gezien kunnen worden als 0. (Er wordt bijvoorbeeld gerekend met n! Dit zou de rede kunnen zijn dat er minder tickets verkocht worden gedurende een tijdsinterval dan er eigenlijk verkocht zouden worden. Er is ook te zien dat de procentuele winst afneemt, naar mate er meer stoelen beschikbaar zijn (en de A constant blijft).
7
Vluchten in de praktijk
We hebben vanaf het begin van ons modellerenproject een aantal vluchten in de gaten gehouden. We hebben hierbij gekeken naar fluctuaties in de prijs en de verschillen tussen twee luchtvaartmaatschappijen. Hierdoor hopen we een beter beeld te kunnen krijgen van hoe het er in werkelijkheid 15
aan toe gaat. We hebben alleen erg weinig informatie beschikbaar, zo weten we bijvoorbeeld niet hoe groot het vliegtuig is, hoeveel mensen naar deze vluchten kijken of wanneer er een boeking gedaan is. Hierdoor kunnen we onze conclusies alleen trekken aan de hand van de prijzen. De vluchten die we bekeken hebben, zijn een vlucht van Amsterdam naar Alor Setar (Maleisi¨e), van Amsterdam naar Sydney (Australi¨e) en van Amsterdam naar Londen (Engeland). Hierbij is de heenvlucht steeds op 13 juli en de terugvlucht een week later op 20 juli. De prijzen per dag staan in de tabellen in Appendix C.
7.1
Amsterdam - Alor Setar
Voor de vlucht Amsterdam naar Alor Setar hebben we enkel gekeken naar de fluctuaties in de prijs die de KLM hanteert. De eerste dag van raadpleging was 19 februari 2013. De resultaten van de eerste dag zijn te zien in Tabel 3. Na het zien van deze resultaten, hebben we besloten enkel nog Tabel 3: De prijzen van een ticket naar Alor Setar in Maleisi¨e op 19 februari. Malaysia Airlines
Etihad Airways
KLM-Royal Dutch Airlines
China Southern
directe vlucht 1 overstap 2 overstappen
€1.264,30 €967,84
€1.573,95 €1.469,34
€1.579,96
te letten op de prijzen van de KLM. De prijzen van een ticket bij KLM tot 23 maart zijn te zien in Appendix C in Tabel 6. De bijbehorende grafiek staat in Figuur 11.
Figuur 11: De prijs-tijd grafiek van een retourticket van Amsterdam - Alor Setar
16
7.2
Amsterdam - Sydney
Voor de vlucht van Amsterdam naar Sydney hebben we het verschil bekeken tussen 2 vliegmaatschappijen. De eerste dag van raadpleging was 19 februari 2013. De resultaten van de eerste dag zijn te zien in Tabel 4. We hebben gekozen om de prijzen van China Southern en KLM te volgen Tabel 4: De prijzen van een ticket naar Sydney op 19 februari. China Southern
Korean Air
KLM
China Airlines
1.522,79
1.561,45
American Airlines
directe vlucht 1 overstap 2 overstappen
1.297,71
1.334,52
1.537,87
2.500,21
gedurende een aantal weken. De prijzen van een ticket bij China Southern en KLM tot 23 maart zijn te zien in Appendix C in Tabel 7. De bijbehorende grafiek staat in Figuur 12.
Figuur 12: De prijs-tijd grafiek van een retourticket van Amsterdam - Sydney
7.3
Amsterdam - Londen
Bij de vlucht van Amsterdam naar Londen hebben we ons het meeste gericht op prijsvechters. De eerste dag van raadpleging was 28 februari 2013. De resultaten van de eerste dag zijn te zien in Tabel 5. Tabel 5: De prijzen van een retourticket naar Londen op 19 februari. Ryanair
Easyjet
Flybe
KLM
directe vlucht
134,65
1 overstap
168,98 89,49
93,71
TAP-Air Portugal
All Nippon Airways
3.496,86
4.615,90
109,89
We hebben gekozen om de prijzen van RyanAir en EasyJet in de gaten te houden, omdat deze beiden bekend staan als prijsvechters. De prijzen van een ticket bij China Southern en KLM tot 23 maart zijn te zien in Appendix C in Tabel 8. De bijbehorende grafiek staat in Figuur 13. 17
Figuur 13: De prijs-tijd functie van een retourticket van Amsterdam - Londen
7.4
Resultaten
Het is lastig om hier de schommelingen in prijzen te verklaren. De samenhang tussen de prijs van 2 verschillende aanbieders is niet heel duidelijk en ook missen we heel veel gegevens die we nodig hebben om een goede conclusie te trekken. Zo weten we niet hoever het vliegtuig vol is, hoeveel de prijzen op andere sites zijn, etc.. Wat we wel kunnen concluderen is dat EasyJet en RyanAir hun prijs vaker aanpassen dan de andere luchtvaartmaatschappijen die we hebben bekeken. Zo was de prijs van een RyanAir-ticket op de geraadpleegde tijdstippen 73 van de 80 keer anders dan de prijs tijdens de voorgaande raadpleging. Dit geldt ook voor EasyJet. KLM en China Southern pasten (wat betreft de vlucht Amsterdam - Sydney) respectievelijk 34 en 33 van de 85 keer hun prijs aan tov van de vorige raadpleging. KLM veranderde bij de vlucht Amsterdam - Alor Setar zijn prijs slechts 20 keer in 85 raadplegingen.
8
Conclusie
We kunnen concluderen dat bij een gegeven prijs-vraaglijn het redelijk makkelijk is om te bepalen welke prijs een luchtvaartmaatschappij kiest. Als een luchtvaartmaatschappij haar inkomsten wil maximaliseren, dan zijn er een aantal factoren die de prijs be¨ınvloeden, zoals de verstreken tijd en het aantal verkochte tickets tot dan toe. De gegeven literatuur gaf ons een prijsfunctie die inderdaad beter was dan het kiezen van een statische prijs, tot winsten van wel 3%. Het praktijkonderzoek gaf ons een hoop resultaten, maar aangezien er belangrijke gegevens voor ons niet beschikbaar zijn (aantal verkochte stoelen, aantal aankopen op een dag, etc.), hebben we gekozen om hier geen conclusies uit te trekken. We kunnen enkel zeggen dat de zogehete prijsvechters hun prijzen elk uur kunnen veranderen, waar bijvoorbeeld KLM-AirFrance maar een aantal keer per week zijn prijs verandert.
9
Discussie
Een aantal mogelijke discussiepunten zijn natuurlijk de aannames die gedaan worden in de statische modellen. Zowel de exponenti¨ele als de lineaire als de hyperbolische benadering hebben allemaal fouten in zich, omdat ze enkel een statistisch mogelijk verloop van de lijn weergeven. Verder zijn er natuurlijk heel erg veel variabelen te bedenken voor het bepalen van een exacte prijs. De beide manieren van simuleren hadden zo hun voor- en nadelen. Het grootste nadeel zat in de poissonsimulatie, die op een gegeven moment de intensiteit van het aantal kopers berekenden en zo een nieuwe aankomst genereerde, met natuurlijk een andere prijs.
18
9.1
Mogelijke variabelen
Andere mogelijke variabelen die de weergegeven prijs op de website be¨ınvoeden kunnen zijn; • ’s Nachts of overdag boeken • Computergebruik • Prijs van een concurrerende vliegmaatschappij • Benodigd aantal personeelsleden • Brandstofprijzen
Referenties [1] http://www.klm.com/corporate/nl/about-klm/air-france-klm/index.html [2] Boek: ”The theory and practice of revenue management”, van Kalyan T. Talluri en Garrett J. van Ryzin. [3] ”Optimal Dynamic Pricing of Inventories with Stochastic Demand over Finite Horizons”, van Guillermo Gallego en Garrett van Ryzin Dit is ook te vinden op de site http://www.student.tue.nl/Z/r.c.m.j.v.groesen/vliegtarieven.html
A
Poissonsimulatie
De poissonsimulatie gaat uit van een poissonproces. Er worden dus elke keer volgens een bepaalde intensiteit aankomsten van een koper gegenereerd. De intensiteit waarmee de kopers aankomen is belangrijk. Deze hangt alleen af van de prijs. Wat jammer is, is dat er met de huidige prijs een intensiteit bepaald wordt. Met die intensiteit wordt de volgende aankomst van een koper gepland. En dan wordt de prijs bepaald op het moment dat de koper aankomt. Dit is dus een andere prijs dan gebruikt werd bij de intensiteit waarmee de kopers aankwamen. lambda(price){ return A * Math.pow(Math.E, -price); } Voor de prijs die hierbij gebruikt wordt, geldt het volgende; double price(n, time){ return (J(N - n, (days - time) / days, A) - J(N - n - 1, (days - time) / days, A) + 1.0); } De prijs is enkel afhankelijk van de tijd, en wordt bepaald door de J ∗ -functie. Deze luidt (zoals bekend); ! n X ∗ ∗ i 1 J (n, t) = log (λ · t) · i! i=0 In de simulatie ziet het er als volgt uit; double J(int n, double t, double A) { if (n <= 0) { return 0; } if (t <= 0) { return 0; 19
} double SUM1[] = new double[n + 1]; for (int i = 0; i <= n; i++) { if (i == 0) { SUM1[i] = 1; } else { SUM1[i] = SUM1[i - 1] * A / Math.E * t / (i + 1); } } double SUM = 0; for (int i = 0; i <= n; i++) { SUM = SUM + SUM1[i]; } return (Math.log(SUM)); } Nu rest het ons enkel nog om beginwaarden te kiezen. double days = 210; static int N = 25; static double A = 100 * Math.E; Als dat gedaan is starten we de simulatie. Deze loopt zolang de tijd niet is verstreken en zolang het vliegtuig niet uitverkocht is. int n = 0; double time = 0; double earnings = 0; double price = startPrice; while (time < days && n < N) { time = time + exponential(lambda(time, 2, price)/days); if (time < days) { price = price(n, t); } earnings = earnings + price; n++; }
B
Tijdsintervallensimulatie
De simulatie wordt voor het grootste gedeelte bepaald door de gekozen beginwaarden. Het gaat dan vooral over het aantal te simuleren dagen en het aantal te verkopen stoelen. Verder is alles gebaseerd op de volgende functie; double lambda1(double price) { return A * Math.pow(Math.E, -price); } In een ander hoofdstuk werd al berekend dat deze verwachte intensiteit een piek heeft bij een prijs van 1. De bijbehorende intensiteit is dan Ae . Ook de verwachte winst is Ae . Dit wil dus zeggen dat je bij een vaste prijs van 1 en opbrengst hebt van Ae , mits A niet al te groot is. Immers, wanneer de bijbehorende intensiteit (en dus ook de bijbehorende vraag) groter is dan het maximale aantal te verkopen stoelen, zal de maximale winst niet te behalen zijn. In dat geval is het het beste om de prijs te kiezen die bij het maximale aantal te verkopen stoelen hoort. We moeten nu allereerst re¨ele variabelen kiezen. 20
double static static double
days = 1; int N = 25; double A = 100 * Math.E; dist = 0.0001 / days;
Nu kiezen we de nauwkeurigheid waarmee we simuleren. Er geldt, hoe kleiner je interval, des te beter je benadering. We starten nu de simulatie en bekijken op elk interval hoeveel tickets er verkocht werden. Op elk volgend interval passen we de prijs aan naar de situatie, nog altijd volgens de volgende formule; ! n X ∗ ∗ i 1 J (n, t) = log (λ · t) · i! i=0 Voor de ideale prijs op dat tijdstip geldt; p∗ (n, t) = J ∗ (n, t) − J ∗ (n − 1, t) + 1 Hoe dit er geprogrammeerd uitziet, is te zien in de vorige appendix. Het aantal verkochte tickets wordt bepaald volgens een poisson proces. Er geldt dus; P [N = n] = eλt ·
(λt)n n!
(5)
Hierin is N het aantal verkochte tickets. In de simulatie gaat het ook op deze manier. We genereren een willekeurig uniform verdeelde variabele tussen 0 en 1. Dan berekenen we steeds of er (vergeleken met de gegenereerde variabele) iemand een ticket koopt. Als dat gebeurt, dan kijken we daarna of er eventueel op hetzelfde tijdstip nog een ticket verkocht wordt. Dit gaat zo door tot er geen ticket meer verkocht wordt. Als de intervalgrootte klein genoeg is, dan worden er bijna nooit meer dan 1 ticket per tijdseenheid verkocht. Het bepalen van het aantal te verkopen tickets ziet er in de simulatie als volgt uit; int soldTickets(double price, double dist) { double a = 1; int n = 0; double b = rng.nextDouble(); while (b < a) { n++; a = (Math.pow(Math.E, -lambda1(price) * dist)) * Math.pow(lambda1(price)*dist,n)*1.0/factorial(n); } n=n-1; return n; }
Nu is het tijd om de simulatie te starten. double t = 0; double earnings = 0; int n = 0; double price = 0;
while (t + dist < 1 && n < N) { t = t + dist; 21
price = J(N - n, 1 - t, A) - J(N - n - 1, 1 - t, A) + 1; int w = soldTickets(price, dist); n = n + w; earnings = earnings + w * price; }
C
Tabellen praktijkonderzoek
22
Tabel 6: De prijzen van een retourticket Amsterdam - Alor Setar op geraadpleegde dag en tijd. Datum boeking
Tijd
prijs
Datum boeking
Tijd
prijs
19-feb 20-feb 21-feb 22-feb 24-feb 25-feb 26-feb 28-feb 1-mrt 2-mrt 3-mrt 4-mrt 5-mrt 6-mrt 7-mrt 8-mrt 9-mrt 10-mrt 11-mrt 12-mrt 13-mrt 14-mrt 15-mrt 16-mrt 17-mrt 18-mrt 19-mrt 20-mrt 21-mrt 22-mrt 23-mrt 24-mrt 25-mrt 26-mrt 27-mrt 28-mrt 29-mrt 30-mrt 31-mrt 1-apr 2-apr 3-apr 4-apr
10:23 15:27 12:44 19:50 18:52 19:56 10:15 19:10 13:28 22:21 17:34 10:12 8:32 22:09 13:16 12:31 12:02 9:13 13:28 9:58 8:31 18:13 8:24 11:29 17:24 13:54 10:44 8:36 8:38 8:28 10:03 11:10 11:13 9:28 8:24 8:32 10:55 1:39 12:59 9:53 8:29 8:21 11:30
€1.573,95 €1.566,34 €1.566,34 €1.566,34 €1.566,34 €1.566,34 €1.566,34 €1.567,58 €1.567,58 €1.567,58 €1.567,58 €1.567,58 €1.567,58 €1.567,89 €1.567,89 €1.567,89 €1.567,89 €1.567,89 €1.567,89 €1.567,89 €1.587,84 €1.587,84 €1.587,84 €1.587,84 €1.587,84 €1.587,84 €1.587,84 €1.587,92 €1.587,92 €1.587,92 €1.587,92 €1.587,92 €1.587,92 €1.587,92 €1.588,95 €1.588,95 €1.588,95 €1.588,95 €1.588,95 €1.588,95 €1.481,95 €1.586,19 €1.586,19
5-apr 6-apr 7-apr 8-apr 9-apr 10-apr 11-apr 11-apr 12-apr 13-apr 13-apr 14-apr 15-apr 16-apr 17-apr 18-apr 19-apr 20-apr 22-apr 23-apr 24-apr 25-apr 26-apr 28-apr 29-apr 30-apr 1-mei 2-mei 3-mei 4-mei 6-mei 7-mei 8-mei 10-mei 13-mei 14-mei 15-mei 21-mei 22-mei 24-mei 27-mei 4-jun
8:29 11:50 16:23 12:59 10:19 9:31 0:43 12:00 10:09 11:26 19:17 16:42 10:56 12:44 8:34 19:19 10:19 16:05 10:29 18:27 10:23 11:32 8:22 11:57 9:37 15:16 10:25 8:52 8:20 19:47 10:19 9:34 10:30 18:38 13:29 9:06 10:40 10:23 18:46 8:24 13:42 9:22
€1.586,19 €1.586,19 €1.586,19 €1.586,19 €1.586,19 €1.586,24 €1.586,24 €1.586,24 €1.586,24 €1.586,24 €1.586,24 €1.586,24 €1.586,24 €1.586,24 €1.585,74 €1.585,73 €1.585,73 €1.585,73 €1.585,73 €1.585,73 €1.585,97 €1.585,97 €1.585,97 €1.585,97 €1.585,97 €1.710,97 €1.710,89 €1.710,89 €1.710,89 €1.710,89 €1.710,89 €1.710,89 €1.711,97 €1.711,97 €1.711,97 €1.486,97 €1.487,68 €1.487,68 €1.487,52 €1.487,52 €1.487,52 €1.411,62
23
Tabel 7: De prijzen van een retourticket Amsterdam - Sydney op geraadpleegde dag en tijd. Datum boeking
Tijd
China S
KLM
Datum boeking
Tijd
China S
KLM
19-feb 20-feb 21-feb 22-feb 24-feb 25-feb 26-feb 28-feb 1-mrt 2-mrt 3-mrt 4-mrt 5-mrt 6-mrt 7-mrt 8-mrt 9-mrt 10-mrt 11-mrt 12-mrt 13-mrt 14-mrt 15-mrt 16-mrt 17-mrt 18-mrt 19-mrt 20-mrt 21-mrt 22-mrt 23-mrt 24-mrt 25-mrt 26-mrt 27-mrt 28-mrt 29-mrt 30-mrt 31-mrt 1-apr 2-apr 3-apr
9:36 15:21 12:41 19:54 18:51 19:57 10:17 19:08 13:31 22:21 17:35 10:11 8:31 22:11 13:17 13:29 12:03 9:15 13:40 10:00 8:34 18:15 8:26 11:30 17:25 13:58 10:46 8:39 8:39 8:29 10:04 11:14 11:15 9:30 8:26 8:34 10:56 1:40 13:00 9:55 8:32 8:22
€1.297,71 €1.294,61 €1.294,61 €1.300,62 €1.294,61 €1.300,62 €1.300,62 €1.307,33 €1.177,33 €1.177,33 €1.177,33 €1.177,33 €1.177,33 €1.303,27 €1.303,22 €1.303,22 €1.303,22 €1.303,22 €1.303,22 €1.303,22 €1.304,74 €1.304,74 €1.304,74 €1.304,74 €1.304,74 €1.304,74 €1.304,74 €1.307,21 €1.307,21 €1.307,21 €1.307,21 €1.307,21 €1.307,21 €1.307,21 €1.310,96 €1.310,96 €1.310,96 €1.310,96 €1.310,96 €1.310,90 €1.172,24 €1.361,95
€1.522,79 €1.524,68 €1.524,68 €1.524,68 €1.524,68 €1.524,68 €1.574,68 €1.566,47 €1.577,47 €1.571,00 €1.571,00 €1.571,00 €1.527,47 €1.432,57 €1.432,47 €1.432,57 €1.432,57 €1.432,57 €1.432,57 €1.432,57 €1.453,37 €1.453,37 €1.453,37 €1.453,37 €1.453,37 €1.453,37 €1.453,37 €1.454,27 €1.454,27 €1.454,27 €1.454,27 €1.454,27 €1.454,27 €1.454,27 €1.455,82 €1.455,82 €1.455,82 €1.455,82 €1.455,82 €1.455,82 €1.478,86 €1.456,88
4-apr 5-apr 6-apr 7-apr 8-apr 9-apr 10-apr 11-apr 11-apr 12-apr 13-apr 13-apr 14-apr 15-apr 16-apr 17-apr 18-apr 19-apr 20-apr 22-apr 23-apr 24-apr 25-apr 26-apr 28-apr 29-apr 30-apr 1-mei 2-mei 3-mei 4-mei 6-mei 7-mei 8-mei 10-mei 13-mei 14-mei 15-mei 21-mei 22-mei 24-mei 27-mei 4-jun
11:32 8:31 11:51 16:24 13:00 10:21 9:32 0:44 12:07 10:09 11:27 19:18 16:43 10:57 12:48 8:35 19:20 10:30 16:06 10:30 18:29 10:26 11:34 8:23 11:57 9:38 15:18 10:27 8:54 8:21 19:48 10:20 9:38 10:33 18:39 13:31 9:06 10:44 10:24 18:48 8:26 13:43 9:57
€1.361,95 €1.389,57 €1.436,95 €1.436,95 €1.436,95 €1.436,95 €1.430,94 €1.430,94 €1.232,13 €1.182,13 €1.232,13 €1.232,13 €1.232,13 €1.232,13 €1.232,13 €1.229,81 €1.229,81 €1.229,81 €1.229,81 €1.229,81 €1.229,81 €1.232,47 €1.232,47 €1.232,47 €1.232,47 €1.232,47 €1.232,47 €1.231,46 €1.231,46 €1.231,46 €1.231,46 €1.355,25 €1.355,25 €1.353,18 €1.359,38 €1.353,18 €1.403,18 €1.356,20 €1.774,92 €1.608,19 €1.608,19 €1.608,19 €1.687,65
€1.456,88 €1.456,88 €1.456,88 €1.456,88 €1.456,88 €1.456,88 €1.455,26 €1.455,26 €1.455,26 €1.600,59 €1.600,59 €1.600,59 €1.600,59 €1.600,59 €1.600,59 €1.598,92 €1.598,92 €1.598,92 €1.598,92 €1.598,92 €1.598,92 €1.606,71 €1.606,71 €1.606,71 €1.609,71 €1.620,92 €1.654,02 €1.653,83 €1.653,83 €1.670,63 €1.670,63 €1.670,63 €1.770,74 €1.700,57 €1.668,79 €1.700,57 €1.607,64 €1.558,09 €1.581,62 €1.695,94 €1.695,94 €1.580,94 €1.891,76
24
Tabel 8: De prijzen van een retourticket Amsterdam - Londen op geraadpleegde dag en tijd. Datum boeking
Tijd
Ryan-Air
EasyJet
Datum boeking
Tijd
Ryan-Air
EasyJet
19-feb 20-feb 21-feb 23-feb 24-feb 25-feb 26-feb 28-feb 1-mrt 2-mrt 3-mrt 4-mrt 5-mrt 6-mrt 7-mrt 8-mrt 9-mrt 10-mrt 11-mrt 12-mrt 13-mrt 14-mrt 15-mrt 16-mrt 17-mrt 18-mrt 19-mrt 20-mrt 21-mrt 22-mrt 23-mrt 24-mrt 25-mrt 26-mrt 27-mrt 28-mrt 29-mrt 30-mrt 31-mrt 1-apr 2-apr 3-apr 4-apr
9:32 15:12 12:40 19:50 18:53 19:53 10:17 19:06 13:34 22:24 17:31 10:10 8:30 22:12 13:20 12:21 12:06 9:19 13:41 10:02 8:35 18:17 8:28 11:33 17:26 14:00 10:48 8:41 8:41 8:30 10:06 11:15 11:16 9:31 8:27 8:37 10:57 1:43 13:02 9:57 8:35 8:25 11:34
€89,49 €88,90 €89,15 €89,23 €89,08 €89,00
€93,71
€90,71 €90,69 €90,43 €90,43 €90,45 €90,67 €90,53 €90,28 €98,09 €98,09 €98,08 €98,12 €89,92 €90,02 €98,49 €90,59 €90,47 €90,47 €90,99 €90,88 €91,19 €91,00 €91,36 €91,75 €92,75 €92,69 €92,71 €101,05 €85,40 €85,43 €85,47 €85,46 €85,55 €53,88 €85,15 €67,35
€91,68 €91,67 €91,47 €91,47 €90,48 €91,65 €92,67 €92,48 €92,35 €92,35 €92,35 €89,51 €89,35 €89,42 €88,42 €88,41 €88,32 €88,32 €88,68 €88,60 €84,70 €84,57 €84,82 €84,80 €84,71 €84,69 €87,97 €84,93 €85,50 €85,11
5-apr 6-apr 7-apr 8-apr 9-apr 10-apr 11-apr 11-apr 11-apr 11-apr 12-apr 13-apr 13-apr 14-apr 15-apr 16-apr 17-apr 17-apr 18-apr 19-apr 20-apr 22-apr 23-apr 24-apr 25-apr 26-apr 28-apr 29-apr 30-apr 1-mei 2-mei 3-mei 4-mei 6-mei 7-mei 8-mei 10-mei 13-mei 15-mei 21-mei 22-mei 24-mei 27-mei 4-jun
8:32 11:53 16:25 13:01 10:22 9:34 0:44 11:54 15:21 19:27 10:11 11:28 19:19 16:44 10:59 12:50 8:36 21:01 19:22 10:21 16:08 10:35 18:30 10:27 11:34 8:24 12:01 9:39 15:21 10:29 8:55 8:22 19:49 10:21 9:40 10:35 18:40 13:33 9:10 10:28 18:50 8:28 13:44 10:18
€111,78 €67,47 €67,47 €67,42 €67,22 €67,21 €67,26 €67,29 €67,26 €67,27 €67,36 €67,18 €67,18 €67,18 €67,25 €67,23 €76,55 €76,68 €139,92 €76,87 €76,59 €76,60
€86,10 €86,19 €86,19 €86,13 €85,92 €85,90 €85,95 €85,98 €85,95 €85,96 €90,14 €85,15 €85,15 €86,15 €86,24 €88,65 €90,82 €85,80 €90,95 €91,11 €90,88 €90,89 €91,09 €91,16 €91,06 €91,48 €89,07 €89,14 €91,40 €93,80 €94,35 €96,63 €96,65 €91,73 €94,22 €94,04 €96,51 €96,58 €97,60 €97,70 €101,87 €106,62 €106,04 €117,24
€85,13 €85,20 €126,24 €84,90 €86,02
25
€67,58 €67,44 €67,48 €67,68 €67,68 €67,65 €67,71 €60,39 €60,41 €60,47 €58,27 €58,35 €57,94 €57,91 €57,99 €58,06