Monday, February 6, 2012

Automatic volunteer assignment based on user preferences

Volunteer management has always been a challenging task to run a TSA
swim team.  Although first come first served model has been used by
some teams, some other teams prefer to assign volunteer jobs manually
by an administrator.  This is commonly done by asking families to
select the types of jobs they want to do and which meets they are
available to volunteer (on paper or online).  I don't have the
complete list of reasons to do this.  Partly it could be that a family
may pick a task and didn't realize that the job needs prior training,
or the "easier" jobs are quickly taken, leaving the rest of families
with jobs they don't know how to do.  Whatever the reasons are,
manually allocating jobs based on user's preference on meets and job
types is a very tedious task (takes hours or even days) and the admin
can easily make mistakes such as assigning a family to a work in a
meet they didn't select (on vacation) so they can't do it.

I recently implemented a feature (built into the TSA Swim Team
Manager) that allows such assignment to be done automatically based on
user preference selections.

Some highlights of the feature:

1. set the priority of a job.
For example, a family selected Timer, Starter and Runner as preferred
job types.  Not many people have the training to work as a starter so
we can raise the priority of the Starter job.  The system will assign
the family to do starter and leave the lower priority tasks to other
families.  Task with a priority of 0 means no auto assignment will
happen, e.g. a job named as "Substitute" or "Any position".  Admin can
also set priority to 0 for jobs they'd do manually later (i.e. they
know who should do such jobs).

2. find troubled spots and assign such spots first.
For example, only 4 families selected to volunteer as Timer for 6/24's
meet and we need 6 Timers, we will put these 4 families as Timers
instead of any other preferred tasks they selected that have more
available families.

3. honor family job preference (priority).
If both family A and B selected to work as Runner, but only 1 runner
is needed and family A selected the task as their first choice and
family B as second, family A will be assigned this task.

4. balanced work load.
Each family will be assigned at most the number of tasks defined in
team's Season setup.

5. rerun.
Assigned positions will NOT be overwritten.  When situation changes,
this routine can be rerun to pick up the (preference or job) changes.

6. manual overwrite.
All automatically assigned positions can be manually overwritten and
stay that way.  Auto assignment only happens to spots that are
available (unassigned).

No family will be assigned a job or work in a meet that they didn't
select.  To make this function work better, please ask families to be
more flexible (select more job types and meets) to give the system
more options.

I tested this routine against one of the teams' 2011 user preference
data and 90+% of the assignments can be made in a matter of seconds.
The remaining unassigned positions/families are mostly due to their
limited preferences (e.g. they only chose to work in 3 meets as 9-10
boy pusher but these positions are already filled).

This feature should save the volunteer admin a lot of time and reduce
the number of wrong assignments due to human errors.


Printing features for TSA Swim Team Manager

Teams have been using software to print personal best labels.  One of the teams asked me about such features so I implemented the following three printing options, hopefully further reducing volunteer workload.

1. Personal best labels on Avery 5160 (or its compatible 3 X 10) label sheets.  You can either import Hy-Tek meet result file or manually enter the results for a meet to the web site.  The system will calculate personal best for all swimmers and generate a file containing formatted pre-filled labels for you to download and print locally (MS Word required).

2. Main event labels on Avery 5160.  If you use the online automatic line up program, similar labels for the main event swimmers (individual and relays) can be generated.  You can put such labels on the back of the main event ribbons.

3. TSA event sheets: If you use the online automatic line up program, TSA event sheets (blue and pink forms from TSA can be generated as Microsoft Excel files. You can download such files (one file for boy events and one for girl events) and print them locally on colored paper.

Do automatic line up for the meet.
Go to the Meet Setup page.
Click on the blue ribbon icon corresponding to the meet you want to print these forms.
On the popup window, click on the "Create Event Sheets" button.
Download (right mouse click on the file name and select "Save link as ...") the TSABoyEventSheet.xls and TSAGirlEventSheet.xls files to the local hard drive.
Use windows explorer to locate  the downloaded files.
Double click on the file to open it.
You should see the main events line up results pre-filled in the TSA forms.
Print the boy's file on blue paper and girl's file on pink paper.
Cut the paper so each event is on its own piece of paper.

BTW, for teams using WinSwim, the automatic line up results can be imported into WinSwim so line up efforts can be greatly reduced.

Thank you!

Friday, February 3, 2012

New feature to allow manual tweak of the automated lineup process

Although automated lineup process is fast and accurate by personal best times, there are times that coaches want to drop certain swimmers from the main events of some strokes because these young swimmers cannot legally swim these strokes, even though they may have faster personal best times.  There can be other reasons to remove a swimmer from a stroke. A new feature has just been implemented to allow coaches to specify such exclusions before the automated lineup so their choices will be considered in the process.

To use this new feature, you can go to Meet Setup page, and click on the Kid pusher list icon for a meet.

When the pusher list shows up, select an age group.  You should see all swimmers in that age group in all strokes.  If a swimmer is absent from this meet, clicking on the swimmer's number (under any stroke) will remove the swimmer from all 4 strokes (including relays).  You can see the swimmer's name struck out in all 4 strokes.  Clicking on the swimmer's number again will bring the swimmer back and enable him/her in all strokes.

To remove a swimmer from participating the main events of specific strokes (including Team A relays), click on the swimmer's name under that stroke.  You should see the name becomes struck out in orange.  Line up process will not use such swimmers in main events of such strokes (including such strokes in relays).  They will still be considered for non-main event swimming for these strokes. Clicking on the name a second time, the name will be struck out in red. This means the swimmer will not swim this stroke in any heat. They could still swim relays (including team A relays). Clicking on the name a third time will clear all such restrictions.

To remove a swimmer from a main event, but still allow him/her to swim team A relay in that stroke, you can click on the time of that stroke when the name struck out in orange. The time should become green.

To better use the Kid pusher list and the auto line up program, you can put both windows side by side.  Tweak the pusher list and rerun the line up program to see the results.  Hope this new feature helps coaches or admins do lineup more accurately and efficiently. There is only one pusher list across all meets so please check it for every meet before running the auto lineup.

Important: auto lineup honors the pusher list but will overwrite any manual lineup or manual edit changes. The manual processes are the last resort to adjust an auto lineup. Unlike using the pusher list, manual changes will NOT update the exported forms on the Lineup page (upper right corner). The only export that will include manual changes are on the page that is launched from the blue ribbon icon, which includes TSA pink/blue forms, heat/time/pusher sheets and hy-tek meet entries. Use the pusher list when possible and minimize the use of the manual edits.