This site contains documentation on software I am authoring and maintaining for matching problems. In matching markets, supply and demand cannot (or should not) be coordinated by prices, but by other criteria. Prominent examples include personal preferences of market participants in the sharing economy, as well as in education and labour markets, where both sides have to choose each other, i.e. employees cannot just choose their employer, they also have to be chosen (and vice versa).

A major challenge in matching markets is designing allocation mechanisms in such a way that all participants have an incentive to reveal their true preferences. This can prevent individual participants from taking advantage of others through strategic reporting of their preferences, whilst also facilitating the statistical analysis of existing allocation practices, such as the design of gender and minority quotas in labour markets or catchment areas in school choice.

Solutions for


R package matchingMarkets implements structural estimators to estimate preferences and to allow causal inference based on observed outcomes in matching markets. This includes one-sided matching of agents into groups as well as two-sided matching of students to schools. The package also contains algorithms to find stable matchings in the three most common matching problems: the stable roommates problem, the college admissions problem, and the house allocation problem.


MatchingTools API is an application programming interface that provides access to the most commonly used matching algorithms. It is based on the well-documented, tried and tested software implementation in R package matchingMarkets on the Comprehensive R Archive Network (CRAN). Taking preference lists of market participants as input, the algorithms return matchings in JSON open standard file format.


Web applications for matching schemes based on the most commonly used matching algorithms implemented in R package matchingMarkets on the Comprehensive R Archive Network (CRAN).