This article is WIP
County leagues involve multiple clubs and many people in varying roles. For clarity we categorise the people involved as follows:
- League organiser (represents the county)
- Club captain (needs to be a 'club official')
- Team captain (and deputies)
- Team player
The summary process is as follows:
- The league organiser prepares a new event and moves it into "Open" stage
- Club captains review and/or nominate their teams that includes setting team captains and indicative divisions. The league organiser can do this as well, and would be particularly overseeing the divisional assignments.
- Once teams are all nominated
Invoicing is controlled by MMM but managed in the county's Stripe account. As part of the Stripe set-up, the county should familiarise with Stripe's invoicing capabilities and in particular should set up branding and other defaults with regards to invoice presentation.
Through MMM's close integration with Stripe, invoice processing is practically fully automated. It does, however, rely on every club declaring what their email is as invoices are processed through the email system.
From the Invoice tab of Manage events, the only thing the organiser needs to do is set the fee for each team entry. With this set, MMM & Stripe configure an invoice for each club participating in the leagues. The organiser needs to hit the red refresh button to both automatically set the invoices up and to obtain a status of those invoices. If you need to review the invoices, this can be done from within Stripe.
From here in, it's all automated. Invoices will be emailed to the clubs when the event is moved into "In play". The clubs can pay the invoices electronically from the emailed invoice they receive. Stripe will record the payments and channel the money into the county's bank account - which would have been set up with Stripe.
At any time, the organiser can review the status of all invoices from the Invoice tab of Manage events, after having hit the refresh button (e.g. if they have been paid or not).
ManageMyMatch has a fully automated scheduling capability for team fixtures. For the organiser, scheduling is managed within the Scheduling tab of Manage events.
The scheduling process takes into account the following criteria:
Hard Rules - rules that are never broken
- Fixtures are scheduled within the start and end date (inclusive) of the event (typically a season)
- A club never hosts more than one fixture on any particular day
- A team is never involved in more than one fixture on any particular day
- Fixtures are only allocated on permitted week-days
- Fixtures are never scheduled on an excluded date
It may be that there is not enough time to schedule all fixtures whilst adhering to these rules. In which case some fixtures are left unscheduled. The organiser is informed of unscheduled fixtures and must manually allocate a date - probably on a week-day that is not the norm.
Soft Rules - rules that the system fulfils to the best of its ability
- Fixtures for any one team are spread evenly throughout the season with as many days between each fixture as possible
- Home and away fixtures with the same opponent team are scheduled in opposite halves of the season
- For any one team, home fixtures and away fixtures are alternated
Mathematically, not all soft rules can be adhered to for all teams. In fact, the more matches that need to be scheduled the harder it becomes to satisfy the soft rules (and ultimately the hard rules). The main rule casualty, you will find, is soft rule number 3. There may be quite a few situations where a team finds itself playing home or away 2, 3 or even 4 times in succession.
Setting up the scheduling criteria
There are two main conditions that need to be preset before automatic scheduling:
- The week day on which fixtures are to be scheduled
- Dates that are to be avoided for fixtures (excluded dates)
These can be set to apply at 4 levels:
- Event-wide - fixtures for all teams in all divisions adhere to the criteria set
- Divisional - fixtures for teams within a particular division adhere to the criteria set
- Club - the club captain (or any club official) can set criteria that apply to all their nominated teams
- Team - fixtures for a particular team adhere to the criteria set
For the week-day setting, each level over-rides the previous. Two examples:
- We've set Monday to be the fixture day at the event level. But we set division 1 to Tuesdays. This means that division 1 fixtures will be scheduled on Tuesdays but fixtures for all other divisions remain on Monday.
- Within division 1, Team X cannot play their home matches on Tuesdays but they can play on Wednesdays - so we set the week-day for Team X to be Wednesday.
At this point we can qualify a little more hard rule #4. Taking the above example for team X, if the system has run out of all available Wednesday's it'll revert to second best - Tuesday as per the team's division. If we've run out of Tuesday's then we revert to the event setting - Monday. Days not specified in any of the 3 levels are never scheduled, so if we then run out of Monday's then the fixture remains unscheduled.
For date exclusions they are additive through the levels. Any excluded dates set at the event level applies to all fixtures. Further dates can be set for a particular division. If a particular team can't play on certain dates, then these can be added for the team only. Exclusions apply to home matches only except for team-level exclusions. For example, if club X excludes a date at the club level, then this will still allow fixtures on that date at other clubs even if it involves teams from club X. Conversely, excluding a date for team Y will mean that neither home nor away matches for team Y will be scheduled on the excluded date.
Scheduling conditions at the club or team level can be set by the club, well before the organiser starts the scheduling process. For the event and divisional levels, conditions can only be set by the organiser.
Booking is an optional additional step that either the organiser or the club can take. Bookings can only be made at clubs that are using MMM as their booking system. In order for the system to book, it needs to know what courts to book at what times. This information can be preset in 2 ways:
- Explicitly by the club
- This identifies specific courts and specific booking times (with a court set) to be booked. The club can set this either at the event level - i.e. to apply to all their teams or at the team level (which would override the event setting) for each team.
- Implicitly by the organiser (optional)
- By setting a start hour and total court hours required at the event level. The system will book up to 3 simultaneous courts in booking slots that begin within 15 minutes prior to the hour specified and subsequent slots are booked until the the total court hours is reached.
- These two settings can be set at both a divisional and team level (over-riding the event level) if required. The club can also set this at the team level if they have not used the explicit method detailed above
An explicit booking specification is always used in preference to the implicit specification (which is more vague as to which courts to use and when).
The organiser can control what matches get booked (at least those that are bookable) at an event, divisional or team level as described in the next section.
Scheduling and booking control
The organiser has complete control over both scheduling and booking. It is as easy to reverse schedules and bookings as it is to set them in place. Because the process is quite compute intensive, most of the scheduling and booking is executed away from the organisers screen - the organiser simply sees the results of that process once it kicks in (every minute). Here's what the organiser can do. All of these actions can be taken in the context of the overall event (i.e. will apply to all fixtures) or fixtures for a particular division or home matches for a particular team.
- Schedule a set of fixtures. Within 1 minute MMM will start performing the task and the results will be fed back on screen for the organiser in terms of how many fixtures were scheduled.
- Clear a set of schedules - unschedule all fixtures and start again. This only applies to unbooked fixtures. If fixtures are booked, then they need to be cancelled first.
- Retry the scheduling of fixtures that could not be auto-scheduled. This is a nuanced option. The algorithm that does the scheduling can sometimes fail to find a scheduling spot for one or more fixtures even though a little rejigging of other schedules might allow it. It's worth trying this out to reduce the number of unscheduled fixtures if necessary.
- Book scheduled fixtures - only applies to fixtures hosted by clubs that have MMM booking
- Cancel bookings - bookings will be cancelled but their scheduled date will remain in place
All actions (except Clear) are queued for processing by MMM. It may take a minute or two to complete. Actions that are temporarily queued in this manner can be Aborted if you change your mind.
Some fixtures, whilst "bookable" (i.e. the cub supports MMM booking), may still not be booked. This is either because the courts were not free or because both the implicit and explicit booking instructions are absent. If this is the case, the fixtures revert to the "Bookable but not booked" state.
Note that only "home" fixtures are scheduled. At an event or divisional level this, of course, covers all relevant fixtures. But it should be noted that if you are instructing the system to schedule for one particular team, then only their home matches will be scheduled.
Once some or all scheduling has been complete, the Fixtures tab displays a list of fixtures for either:
- A particular club
- A particular team
For each, we can see the fixture details, listed in date order with an indication if a booking has been made as well as an indicator of the number of days between each fixture - this gives us an idea of the "spread-outness" of the fixtures from the perspective of the club or team.
For the team fixture listing we also can clearly see how well interspersed the home and away matches are as well as immediate feedback as to where the "opposite" match is for a match selected. For example, if we select a home fixture with team X, the away fixture with team X is also highlighted.