Crew Bid Process Flow and Reporting (including Satisfaction Report Calculation)

Crew Bidding Process

  1. Login to CrewPortal.
  2. Select the Requests page.
  3. Select a request period.

  4. Click Add Request.

Note

When adding/ editing a request, users can select to apply bid for all days of the week or one of the days.

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.
    1. The “CrewRequest” record contains details of the request like EmployeeId, RosterPeriod as well as the status of the request.
    2. The “WorkRequest” record serves as a bridge to the actual pairing being requested.
    3. The “RequestElement” table holds the details of the bid.
  1. 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.
  2. 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

  1. Pairings that end before 17:00 on Fridays
  2. Pairing that fly out from YYZ
  3. 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

  1. Employee – A, CrewRequest.Order = 1
  2. Employee – A, CrewRequest.Order = 2
  3. 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

  1. Calculate the weight of each bid i.e., highest score for all bids (calculated in step 1) - score for this bid (CrewRequest.Order) + 1
  2. Calculate the following per employee / bid profile / period, for all bids with at least one matching pairing (WorkRequest.TotalMatched > 0):
    1.         Total weighted score = SUM (Weighting x (Awarded pairings / Matching pairings))
    2.         Total weights = SUM (Weighting)
  3. 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