UPDATE: Zenodo migration postponed to Oct 13 from 06:00-08:00 UTC. Read the announcement.
There is a newer version of this record available.

Software Open Access

IOSACal: v0.2

Costa, Stefano

Laban, David

IOSACal is an open source program for calibration of radiocarbon dates.

Main highlights of v0.2:

  • new function to combine multiple determinations (Ward & Wilson 1978)
  • a simple and straightforward set of commands to get started
  • amazing interactive mode with IPython Notebook
  • plotting multiple dates in a stacked plot actually works
  • added several older calibration curves (useful to check published data)

On the technical side:

  • works with Python 3 only, dropped compatibility with Python 2
  • requires NumPy 1.8 and Matplotlib 1.3
  • calibration curves and calibrated ages are ndarray objects, super-easy to work with

Known issues:

  • AD/BC dates in output are not available, all dates are given as CalBP


Most available programs for radiocarbon calibration, like OxCal, CALIB and others, are freeware. You don’t have to pay for them, but on the other side you’re not free to modify them as you need, nor to access and study the source code.

This is the main motivation behind IOSACal: creating a free-as-in-freedom radiocarbon calibration software, with a clean programming library, that enables experiments and integration in existing archaeological information systems.

Furthermore, writing this software from scratch is an alternative way of learning how 14C calibration works, not only in strict mathematical terms, but also from a practical point of view.

IOSACal takes a radiocarbon determination and outputs a calibrated age as a set of probability intervals. A radiocarbon date is represented by a “conventional radiocarbon age” in years BP (before present, that is before 1950 AD) and a measurement error, like 2430±170. The combination of these two values is a numerical representation of a laboratory measure performed on the original sample.

The main task of the calibration process is to convert this measure into a set of calendar dates by means of a calibration curve. Users of IOSACal can choose whether they want results as a plot, a short textual summary or both (the plot includes the summary).

IOSACal reads calibration curves in the common .14c format used also by other programs. Should you have calibration data in another format, it would be easy to either convert them to that format or modify the source code of IOSACal to adapt it to your needs.

IOSACal is written in Python 3, and it makes heavy use of the NumPy library for the internal management of calibration curves and calibrated samples. Calibration curves, radiocarbon dates and calibrated curves are handled internally as ndarray objects, making it ridiculously easy to manipulate and plot them.

Generation of plots is done through Matplotlib, another Python library built on top of NumPy. The optional interpolation is done through the SciPy interpolate.interp1d method.

Installing the above packages is needed in order to run IOSACal on your computer. SciPy is optional but highly recommended: without it interpolation will be unavailable.

Files (459.1 kB)
Name Size
459.1 kB Download
  • C. Bronk Ramsey, Radiocarbon dating: revolutions in understanding, Archaeometry 50,2 (2008) pp. 249–275 http://dx.doi.org/10.1111/j.1475-4754.2008.00394.x

  • Hunter, J.D. 2007. «Matplotlib: A 2D Graphics Environment». Computing in Science Engineering 9 (3): 90–95. doi:10.1109/MCSE.2007.55.

  • Droettboom, Michael, Thomas A. Caswell, Eric Firing, Damon McDougall, Varoquaux, Paul Ivanov, Matt Giuca, et al. 2015. «matplotlib: v1.4.3». Zenodo, febbraio. doi:10.5281/zenodo.15423.

All versions This version
Views 90557
Downloads 493
Data volume 41.8 MB1.4 MB
Unique views 81757
Unique downloads 473


Cite as