BayesicFitting fits models to data. Data in this context means a set of (measured) points x and y. The model provides some (mathematical) relation between the x and y. Fitting adapts the model such that certain criteria are optimized. The BayesicFitting toolbox also determines whether one model fits the data better than another, making the toolbox particularly powerful. The package consists of more than 100 Python classes, of which one third are model classes. Another third are fitters in one guise or another along with additional tools, and the remaining third is used for Nested Sampling.