Crew Bid Process Flow and Reporting (including Satisfaction Report Calculation)
Crew Bidding Process
- Login to CrewPortal.
- Select the Requests page.
Select a request period.
Click Add Request.
Note
Overview of Request and Bid Process
Employee Roster Request:
- Requested Annual Leave and/ or Days Off within a roster period
- Mainly comes from CrewPortal and is being saved in Employee Roster Request table in the database
- Allocation of these requests is through CrewRoster > Tools > Allocate Employee Request
- Triggers the Allocate Employee Requests job (JobId = 38)
- Pairing object for each employee roster request can be distinguished as having class = 4
Crew Request:
- Request for a specific pairing or preferential bids
- Comes from CrewPortal and is stored in the “CrewRequest”, “WorkRequest” and “RequestElement” tables.
- The “CrewRequest” record contains details of the request like EmployeeId, RosterPeriod as well as the status of the request.
- The “WorkRequest” record serves as a bridge to the actual pairing being requested.
- The “RequestElement” table holds the details of the bid.
- I am not entirely sure how these bids are granted but from what I gather, these bids are processed via our Optimizer. It seems, these bids are being exported to our Optimizer for the awarding process through job “Export Optmisation XML - Ad-hoc Only”. Our optimizer will then create an xml based output that we can feed into portal.
- For a more specific explanation on these bids, please see here.
Attached a sample of EmployeeBidReport and CrewBidSatisfaction.
An illustration of how the crew bid satisfaction is calculated is referred below -
Suppose Employee A requested for 3 Bids
- Pairings that end before 17:00 on Fridays
- Pairing that fly out from YYZ
- Pairings that start from 5:00 on all days for the period
So, in the Crew request table, there will be 3 records in the following order
- Employee – A, CrewRequest.Order = 1
- Employee – A, CrewRequest.Order = 2
- Employee – A, CrewRequest.Order = 3
For the above bids (ORDER 1), let’s say we have Matching Pairings (that end before 17:00 on Fridays) = 10, and Awarded Pairings = 2
For the above bids (ORDER 2), let’s say we have Matching Pairings (that fly out from YYZ) = 20, and Awarded Pairings = 5
For the above bids (ORDER 3), let’s say we have Matching Pairings (that start from 5:00 on all days for the period) = 30, and Awarded Pairings = 10
Calculation
For finding the Bid Satisfaction we need the follow details
- Calculate the weight of each bid i.e., highest score for all bids (calculated in step 1) - score for this bid (CrewRequest.Order) + 1
- Calculate the following per employee / bid profile / period, for all bids with at least one matching pairing (WorkRequest.TotalMatched > 0):
- Total weighted score = SUM (Weighting x (Awarded pairings / Matching pairings))
- Total weights = SUM (Weighting)
- Calculate the bid satisfaction score per employee / bid profile / period = Total weighted score / Total weights
Now, For Employee A what is the highest score bid i.e., the maximum order value for the employee. Its 3 in this case.
I have created a table to explain the calculation which would be easier to understand the calculation:
| CrewRequest.Order / Score of bid | Matching Pairings | Awarded Pairings | Weight of each bid | Calculate weighted bid score |
1 | 10 | 2 | 3-1+1 = 3 | 3*(2/10)=0.6 | |
2 | 20 | 5 | 3-2+1 = 2 | 2*(5/20)=0.5 | |
3 | 30 | 10 | 3-3+1 = 1 | 1*(10/30)=0.33 | |
Totals |
|
|
| 6 | 1.433 |
Crew Bid Satisfaction = Total Weighted Score / Total Weights = 1.433/6 = 0.2388
Related articles