Welcome to the Forum for The Airline Project

Hello There, Guest! Login Register

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Demand Calculation
Those are all parameters I forgot about in my rush.  Rolleyes  Very important parameters!
Can you explain shortly (or lengthy if you want to) how you make these work?

I don't know how you calculated filling degrees for specific classes before.
I'm gonna assume you had the same approach, except we now have passenger types to play with.
If not or if you have a better idea, please share your approach.. Wink

Like I said in the document, I think we should have preset factors to define how much demand we have for each class.
The pax then sees what airline has the best fare/service(/reputation) ratio (thanks for reminding me of this!) and chooses it's airline.
(perhaps there are some passengers that opt to use your airline even if the ratio is bad? that's the reputation I'm talking about)
If the class is full in that airline, it overflows into other airlines with worse ratios. If the class is full on every airline, a part of the demand overflows in other classes.
(the other part overflows into a flight with a connecting flight, but that is probably to much to calculate constantly)

It took me a while, but I got some factors I'm satisfied with. Smile

I updated the Excel file to include the class demand.

In the calculation tab, you see a new set of calculations, starting at cell 30.
On the right you see the factors I used. Here they are based on distance, but I believe they should be based on flight time.
(Oh wow, this just blew my mind. What do we do if somebody is flying significantly slower on the route. People will avoid an airline that flies 50% longer on the same route no? Perhaps unless it is that much cheaper. Oh god, a whole new set of parameters... :p )

The table in the middle picks out the factors it needs based on the distance between the airports.
At the moment it is calculated like this:
First we check the number of routes covering the specific route (Opponents + Human)
Then for each route a score is calulcated based on price per class. The score is taken from a calculated "base price"
From that we get the number of pax for the specific route.

The reason for the price thing is so it is not possible to set the price to a huge amount and still get pax on board.

I will take a look at this tomorrow, since I am in meeting the whole day today. And I guess you are also busy with your exams :-)
Hmm, I would check the available seats on all flights on that route compared to the demanded seats instead of the number of flights on the route.

The price of a class has no influence on the demand of another class right?
Unless you want to make it a bit more complicated, then you could do things like this:
If a class is very cheap, maybe some lower class pax will upgrade to the higher class.
If a class is very expensive, and there is no opponent or the opponent is also expensive, some higher class pax will downgrade to a lower class.
If a class is full on your and the opponent's flights, some pax will overflow in a lower class, (some on a connecting flight,) and a small part in a higher class.

But basically I believe you already have your class in mind before you start booking your flight.
I am almost done with the implementation of the demand, and the only thing still missing, is to implement the airliner class factors you have :-)

And the next 14 days looks great from a game develop perspective since the wife is not much home at the evenings :-)
Haha, that's great. Don't forget to feed the kid. Wink

I survived the first week of exams, jej! But it were only minor courses this week. Next week the big exams kick in.. Rolleyes
Now we have the basic demand in place we should also look at demand when using stopover routes. This might not be for next release but for the one after :-)

For now I will look at some of the minor inputs we have recieved and try to implement them
Have you started implementing the factors for the filling degree?

I had an idea how we could implement the demand changes depending on departure/arrival time.
I tried it out in my excel and my assumption was correct: different airports need different strategies. Smile
It still needs some fine tuning.

I was thinking about this: what if we could set different prices on different departure times?
Albeit somewhat automated.

I'll try to explain how we could implement that:
While creating the route, the player sets the price for the route. This price is the base price (factor 1).
Now in a route info overview window, the player sees all the stats on the filling degrees on specific flights.
Using these stats, he can change the price factor. On busy times, he can set the factor to for example factor 1.5.
The price of that flight is now 1.5 times the base price.

Now because it is a peak time, people are willing to pay the price.
The raised price makes the demand curve throughout the day flatter.
On the other hand, demand in the late evening is low compared to the other times.
To compensate that, the player could set the factor to 0.8. This convinces more people to take that flight.

Now, the factors the player sets are relative to the factors we create.
If we set the factor to 1.5 on a peak time, while the player only sets it to 1.2, more passengers will try to book that flight.
However, if the player set the factor too high, people will start avoiding that flight.

It's getting harder to design a user friendly route stats window though..

Or would that reduce performance too much?

Here are some example graphs of how the factors evolute throughout the day (hour is departure time:
Copenhagen - London Heathrow flight time:  2:01
[Image: 6Q4NIeF.png]
This route Is mostly filled with business passengers, while also a decent amount of tourists will take the route.
Notice how the higher classes peak round rush hour. This is the time most business people would like to depart.
You can see business passengers have higher peaks, that is because they are less price sensitive and are more likely to fly when the please.

Copenhagen - Barcelona flight time:  3:01
[Image: JoeAFUu.png]
This flight has mostly tourists, while there are still some business passengers on the route.
Notice how the peaks are spread out differently.
The peaks are also slightly earlier, because of the longer flight time.

Copenhagen - Perpignan flight time:  2:40
[Image: v49CPyn.png]
This flight has solely tourists.
Notice how the early morning peak is completely absent. Demand peaks in the afternoon.

Finaly, these are the stats you need:
[Image: QHH94MH.png]
I grouped certain hours to the same factor, I think that's better for less coding lines?

Then the formulas:

You check the local departure time and the local arrival time.
You take the corresponding factors and calculate the average.
so in the end we have three factors:

Now we go back to our classes demand in the maximum demand, and see how many percent of the class is filled by a passenger type.
example for economy class:
economyBusPax / economyTotalPax = economyBusPercent
economyCityPax / economyTotalPax = economyCityPercent
economyHolidayPax / economyTotalPax = economyHolidayPercent

If you'd add up the three percents, you should obviously get 100%.

Now, to calculate pricefactor per class we just have to multiply them:
holidayPriceFactor * economyHolidayPercent + cityPriceFactor * economyCityPercent + businessPriceFactor * economyBusPercent = classPriceFactor

So now with these factors in place, you don't only compete with your opponents, but also with your own flights. Some flights are gonna get preferred over others.
Of course, if a flight is full, it overflows in to the others.

Now I just started wondering. does this mean a flight has to be full before another flight gets its first passenger?
If so, then we need to find something so that there are still passengers choosing other flights, just to a lesser extent.

Feel free to ask any questions or share your thoughts. Smile
I really like that and it shouldn't be that difficult to implement, so I will give it a try as soon as I have my environment back and running :-) And it should be possible to implement it so all flights gets passengers but to a lesser extent

And I really like all your inputs and they help this game being better all the time :-)
I've been playing with these ideas ever since I found TAP v1. Smile

It's just writing them down, really. Trying to explain them and back my idea's up with examples, visuals and basic formulas. Smile
Trying hard not to overwhelm you. Big Grin

I really have to say this. You must be the most kindest dev I've ever encountered.
Always listening and open to new ideas. Kudos!

I don't always know how much influence my ideas will have on performance though.
It's up to you to say if something takes up too much CPU.
I believe demand/filling degree and AI are the heaviest thing in this game?

I finished the formula in excel. So you can play around with it if you like.
I had to include time-zones for a correct calculations for flights outside the EU. Smile
I believe I forgot to mention in my last post:
  • departure time is the local time at the departing airport
  • arrival time is the local time at the arrival airport

Updated Excel
Thanks :-) And I finally managed to get my system to run so I have fixed the creation of a custom airline.

I also did a quick implementation of an overview of the route demand factors (Still not done)
[Image: uWxIds6.png]

Forum Jump:

Users browsing this thread:
1 Guest(s)