Skip Navigation Links
The Club is proud
to be associated
with our sponsors
and recommends their
services to members.
 Home Page
Skip Navigation Links
About Us
Coro Bookings
Coro Documents
Coro Videos
Coach's CornerExpand  Coach's Corner
Contact Us
Daily Fixtures
Data Protection
LeaguesExpand  Leagues
ManagerExpand  Manager
 New Members Information New Members
Where are we?
More Club LinksExpand  More Club Links
LIBC Facebook
Skip Navigation Links
Other Links
Sub-websExpand Sub-webs
Grand Prix Series
Skip Navigation Links
The Web Site
How it all works
The Spiders

League Planner Software - How are the indoor league fixtures produced?

Bespoke software is used by LIBC to produce the league fixtures:-

This article gives a simple outline of the procedures it uses with the hope that this will help members understand why and how fixture allocations happen!!


The program has a database of optimised round robin tables for 4 to 18 teams with from 1 to 9 rinks, e.g.:-

  • - 6 teams and 3 rinks


Before the fixture allocations can begin, setting up data is entered, these include "exceptions" and "league requirements".

"exceptions" are events that take up time and rinks which will then not be available for league fixtures, e.g.:-

  • Club finals.
  • Super8Series.
  • Club friendlies.
  • Inter-club events (Trudy Bates, Egham etc.).
  • PBA competitions.

"League requirements" data is input for each league in the season:-

  • League title.
  • Start and end dates.
  • The days, times and rinks that the league can use on a weekly basis.
  • The days, times and rinks that the league can use if not all games will fit into the preferred day/time/rinks above (termed "overspill slots").
  • Any holiday time when a league cannot play (Christmas?).
  • Divisions within the league :-
    • Division title.
    • How many teams.
    • How many times teams are to play each other.
  • Team requests, such as:-
    • Avoid playing on certain days.
    • Avoid playing when another team in another league is also due to play that day.


The program stores a rink matrix that is very similar in concept to the fixtures display in the club handbook, something like:

for the complete season. Firstly, the "exceptions" are plotted into this matrix, then:-


Each League is then calculated individually in an order chosen by the user (the order the leagues are calculated in can be important if they share any time/rink slots with other leagues).

RUN 1 - The program goes through the appropriate round robin template a game at a time checking against the time/rink slots that have been allocated within the setup. If a fixture requirement does not clash with an exception or a team request, and if neither team has already played that week, then it is allocated, otherwise the next time/rink slot is checked, and so on until that game is allocated. And then to the next round robin template game and the next time/rink slot and so on until the end of the season is reached.

RUN 2 - With a simple league, such as some of the Summer season leagues, that is all that is required. The allocation for that league will be complete and in a perfect condition!! However, in a busy Winter season league such as the Morning league many (up to 250) games will not have been allocated in the first attempt so the program goes through from the beginning again to try and place these left over games in any so far unallocated time/rink slots.

RUN 3, ETC - Even after that, some games may not have found allowable space. Time for plan B for the remaining unallocated games and the remaining unallocated time/rink slots.!! Team requests are now ignored, and the user selects how the rules may be slackened for the next attempt:-

This process is continued until all games have been allocated, then the fixtures are tested:-

  • TEST 1 - each team plays no more than once per round.
  • TEST 2 - each team plays no more than once per day.
  • TEST 3 - each team plays each other team as per league setting.
  • TEST 4 - games do not clash with exceptions.
  • TEST 5 - games start after or equal to start date and before or equal to end date.
  • TEST 6 - no rink is in use more than once per time slot.

This process is repeated until all leagues have been calculated and tested.


The league plans are then combined into a season plan. 3 stages of optimisation are then carried out, each with the aim of equalising, as well as possible, the quantity of games a team plays on each rink. This is done by going through each day/time/rink slot and if a team or teams have a bias, swap over rinks within the same day/time slot. Testing has shown that there is little benefit going through a season more than 3 times, hence the 3 stages of optimisation. The user can then manually move games and modify the plan.

The season plan is then tested:-

  • TEST 1 - each team plays no more than once per day.
  • CHECK 2 - the user can examine a display of teams that play more than once per week.
  • CHECK 3 - the user can examine a display of the qty times each team plays on rink/ in time slot.
  • TEST 4 - how many times each team plays each other team - ensuring plays every team.
  • CHECK 5 - the user can examine a display of whether or not teams play according to team requests.
  • TEST 6 - team IDs unique and sequential.

The user can again move games and modify the plan, if required, and so on, until happy or insane.


The Season Plan, Daily Fixture Booking Sheets (for the bar) and the Captains Sheets are then produced. The Season Plan feeds directly into the web site indoor league fixtures (see tutorial League Planning - Update Web ).


  This page Copyright © 2007 - 2013 LINCOLN AND DISTRICT INDOOR BOWLING CLUB COMPANY LIMITED Company No 01007036 -
All rights reserved.
Web editor
Danny Brown
Content by The Spiders