Repositories, such as the BioModels Database and the Physiome Model Repository support the reuse of models and ensure transparency about results in publications linked to those models. With thousands of models available, a framework to track the differences between models and their versions is essential to compare and combine models. Difference detection allows users to study the history of models but also helps in the detection of errors and inconsistencies. However, current repositories lack suitable methods to track a model's development over time. Consequently, researchers have problems to grasp the differences between models and their versions.Focusing on SBML and CellML, we developed an algorithm to accurately detect and describe differences between versions of a model with respect to (i) the models' encoding, (ii) the structure of biological networks, and (iii) mathematical expressions. Our method is implemented in a comprehensive and open library called BiVeS. Our work facilitates the reuse and extension of existing models. It also supports collaborative modelling. Finally, it contributes to better reproducibility of modelling results and to the challenge of model provenance.Our algorithm is the first tailor-made detector of differences between versions of computational models in standard formats.