This webpage has been activated on December 27, 2018. The previous version of the webpage is available at

Please report any issue on the Biogeme's users group


Biogeme is a open source Python package designed for the maximum likelihood estimation of parametric models in general, with a special emphasis on discrete choice models. It relies on the package Python Data Analysis Library called Pandas.

Biogeme used to be a stand alone software package, written in C++. All the material related to the previous versions of Biogeme are available on the old webpage.

The zoo must go on

Several versions of Biogeme have been developed over the years. They all wear the name of an animal: Bison, Python, and now, Pandas.


The first version of Biogeme, developed around 2000, was designed to estimate the parameters of a list of predetermined discrete choice models such as logit, binary probit, nested logit, cross-nested logit, multivariate extreme value models, discrete and continuous mixtures of multivariate extreme value models, models with nonlinear utility functions, models designed for panel data, and heteroscedastic models. It was based on a formal and simple language for model specification developed with Bison, a general-purpose parser generator.


The second version of Biogeme, developed around 2010, was designed for general purpose parametric models. The specification of the model and of the likelihood function was based on an extension of the Python programming language. A series of discrete choice models were precoded for an easy use. The package was written in C++ and was standalone.


The third version of Biogeme, developed in 2018, has been (almost) completely written in Python. It relies on the package Python Data Analysis Library called Pandas for the management of the data. The parts of the software that require intensive computational efforts have been coded in C++, for the sake of efficiency.

Conditions of use

BIOGEME is distributed free of charge. We ask each user


I would like to thank the following persons who played various roles in the development of Biogeme along the years. The list is certainly not complete, and I apologize for those who are omitted: Alexandre Alahi, Nicolas Antille, Gianluca Antonini, Kay Axhausen, John Bates, Denis Bolduc, David Bunch, Andrew Daly, Anna Fernandez Antolin, Mamy Fetiarison, Mogens Fosgerau, Emma Frejinger, Carmine Gioia, Marie-Hélène Godbout, Stephane Hess, Tim Hillel, Richard Hurni, Eva Kazagli, Jasper Knockaert, Xinjun Lai, Gael Lederrey, Virginie Lurkin, Nicholas Molyneaux, Carolina Osorio, Meritxell Pacheco Paneque, Thomas Robin, Pascal Scheiben, Matteo Sorci, Michael Thémans, Joan Walker. I would like to express a special thank to Moshe Ben-Akiva and Daniel McFadden for their friendship, and for the immense influence that they had and still have on my work.


Biogeme has been developed by Michel Bierlaire, Ecole Polytechnique Fédérale de Lausanne, Switzerland.