-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
potential rosters and employee assignment spec #81
base: main
Are you sure you want to change the base?
Conversation
Some things from the working group meeting to think about / work on:
|
Alright, I finally (sorry) got to this... here are my thoughts: In the proposed I'd like to propose adding the following to
So in practice you end up with: calendar.txt
calendar_dates.txt -- We replace Monday service with a Holiday.
roster_group.txt -- In this example, you can see that we have defined two types of rosters for the same period. Where one is for a 40 hour work week and another is for a 36 hour work week.
rosters.txt -- In this roster we have 3 roster entries, with a 2 week rotation for each, from 2 different sets of rosters that attach to the same
Just to make things easy to follow, this is a summary of the changes to
roster_dates.txt -- We complete the cycle of service replacement here by replacing the
It took me a few days to think about this overall, what do you guys think? |
Oooh thanks for the proposal, there are a ton of good new ideas in here.
We had discussions about trips being tied to a How to get unique run IDs
That's all possible, but in my opinion referring to runs everywhere as a
|
Is this because there is
Yes they can be related in that it's for garage 101 or something like this. I find that in this industry we are often renumbering things in a particular way for a particular business reason. So you are extremely likely to end up with overlapping names, that are meant to be human readable. So it can be useful for looking up as well, especially if you are troubleshooting with someone in the field.
Yeah, this is something that we can either have a field for or assume that the operations software can control it. I had thought about having a field that basically indicates that week X is the start week of this dataset. So, if you sent an update but didn't change the
I have seen that often there are multiple roster sets for a garage, so
I lean towards we probably can't solve this because it's hard to see how we aren't stuck trying to tell the programs what needs to happen when we no longer do the normal work that was scheduled. We need to know who does what in place of it. By the way, this is a good time to say I totally forgot about the |
To break some (not all) of the changes down into smaller topics that could be discussed separately:
My opinions on them:
|
@skyqrose I have been having trouble consolidating the proposal because of these questions. Thanks for putting it so neatly. My thoughts: I don't think we should do another backwards incompatible change at this point. Can you clarify for me: you're saying MBTA would use the same run id twice on a monday and have it assigned to two separate services and containing different trips? How do you differentiate between them in dispatch? Are they for different modes? multi-week and roster groups: I am inclined to leave out at this point. We are adding a lot of complexity to the spec as is and I think it makes sense to defer these to a future update unless it is actively blocking an in-progress implementation. |
Okay, apologies for the delay in weighing in on this.
I'm in favor of
I'm admittedly not sure how much is needed here / not sure I get the use case. Happy to have this abstraction as an optional grouping, but I don't know if I am understanding a reason to make it a mandatory structural element at this point. |
Summary of decisions from today's meeting:
|
Rendered
Here's an attempt at unifying #28 and #45. It includes both the roster and employee assignments, and both the typical schedule and exceptions. It does not include vehicles.
It includes 4 files:
rosters.txt
: A typical week for a roster. Pretty directly corresponds to add rosters.txt #45.roster_dates.txt
: Exceptions torosters.txt
on specific dates. This makes it possible to describe holidays or vacations that are built into the work, before they're assigned to an employee. It also allows minor disruptions like track work, to say that someone is still doing mostly the same run/roster, but the schedule has changed slightly.employee_rosters.txt
: Which roster did an employee get scheduled to do? For North American schedule, this would refer to most of the rating at once. For UK scheduling, where employees rotate through rosters, there would be one row per employee per week.employee_run_dates.txt
: Exceptions toemployee_rosters.txt
, or allows describing employee assignments without representing rosters, as in Allocating drivers and vehicles in ODS #28. If rosters are used, this allows vacations that are scheduled but not considered part of the roster, or leaves of absence.None of the files require a row for every date + person pair, and it's intended to cover every crew scheduling use case that I remember coming up in working group discussions.
that's a lot of files
Unfortunately I think it necessarily takes 4 files. To describe what a roster is doing on a date and what an employee is doing on a date requires a
(calendar.txt, calendar_dates.txt)
pair for both rosters and employees. (You could do it in 1 file each by listing every date separately as in #28, but that's duplication that people wanted to avoid, and means you can't describe a typical week.)I also considered whether we could cut down on the number of files by using
service_ids
so the exceptions could be defined incalendar_dates.txt
(after all,run_events
didn't need its own_dates
file because it could use service IDs), but I don't think that's possible because rosters need to associate a different run with each day.Vehicles were originally part of the plan in #28. I cut them from the scope of this PR to focus on crew. One concern people had was that if crew required too many files, maybe vehicles will, too. I don't think that's the case, because vehicles don't have human-specific concerns like rosters and vacations. So having 4 crew files doesn't mean it'll get doubled to 8 crew+vehicle files. I think we should make crew rosters first, and then have a separate discussion for vehicles.
this is a draft
This is just a rough draft to gives something to discuss during working group meetings. It's got some missing pieces and TODOs.
I have a few examples that I've thought about, but don't have them written up yet. If there's any you'd like to see in order to discuss during the working group, let me know, otherwise, I'll put them off til later.