Launching the Efficient Volunteer Matching Applet

I am excited to announce the launch of Intrepid’s next free tool: The Efficient Volunteer Matching Applet. It is a web-based platform available here (with a complete how to guide). All code is also open source, and nonprofits can use it locally if they prefer. We want to give a special thanks to our friends over at Maxilect for performing free diagnostics and bug checks for us.

The applet has a simple purpose but powerful results: an organization inputs a spreadsheet of volunteers and jobs and gets back a list of volunteers matched to jobs. It works perfectly with spread sheets generated by Google Forms. The help guide includes a test spread sheet for any interested person to try out. The end product is a list that looks like this:

The goal is to improve volunteer engagement by taking volunteer preferences and skills into consideration when assigning tasks for charity events, all while saving staff time. This is done by having volunteers rank the jobs they want to do. For example, if there is a 5-K fun run being organized, volunteers would rank roles like Snack Booth Assistant, Check-In Table Manager, Finish Line Monitor, etc. Volunteer (or staff) can also specify if they have experience doing a particular role. Perhaps they have volunteered at the 5-K for five years, and always worked the Snack Booth. The applet allows volunteers who did the job before to get priority over the job they did in the past.

Powering the applet is an algorithm called Top Trading Cycle, which was developed by Gale, Scarf, and Shapley, and improved by a series of economists and mathematicians. I plan to write-up a series on the math sometime in the future.

How it Works

Under the hood, the Top Trading Cycle essentially looks for what are called “cycles.” Say we have three people, each who worked a job last year. Then each of their jobs would “choose them” and each person would “choose” the job they prefer the most of the jobs that still remain unmatched. Suppose the three people all prefer the jobs someone else had last year. The below diagram illustrates such a situation, where “choosing” is depicted as an arrow.

There is a clear circle of arrows connecting all 3 people and all 3 jobs. This is a cycle, and the algorithm would match every person in this cycle to the job each chose and remove them from the pool. In this case there is also a fourth person, Larry, who worked a job last year. His job “chooses him” and he chooses registration. But because he is not part of the cycle, he is not matched in this iteration of the algorithm.

The algorithm finds all cycles each iteration, and matches and removes all people and jobs in those cycles. It then repeats, until there are either no more people or no more jobs left. The applet (and the algorithm) can also accommodate situations where there are new volunteers (people with no job last year) and new positions (positions no one held last year). In these cases, positions “choose” people based on a priority order, which the organization can assign randomly or based on some other criteria, like how early someone registered or how experienced they are.

Why Use It

One of the big benefits of using this algorithm are the guaranteed results. The below properties are always true of a match generated by this algorithm, regardless of how many people there are or who wants what job (even if everyone wants the same job).

First, the algorithm will always terminate. This means regardless of how many people we have, or who wants what job, the algorithm (and the applet) will always generate a match for everyone.

Second, there is no other matching which each volunteer prefers just as much and at least one volunteer prefers more. In technical terms, this is called pareto efficiency.

Third, all of the volunteers who had a task last year are assigned a task they prefer at least as much as their previous task. There is a reason for long-time volunteers to buy into this new system. This is called individual rationality.

Fourth, no group of volunteers who had a task last year can swap tasks among themselves and improve their assignments. This is called core stability.

As it turns out, the Top Trading Cycle algorithm is the only algorithm which achieves all four properties together. It also has the added bonus of “truthfulness,” meaning there is no incentive for volunteers to misreport what job they want. No one can “game the system.”

Again, the applet can be found here: If readers have questions or suggestions (including bugs!) please shoot us an email or leave a comment.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.