Transport for the North (TfN) is England’s first Sub-national Transport Body.
We work with our members and partners to improve transport across the North of England. Better transport helps people access jobs, education and services. It also supports economic growth and creates opportunities for communities and businesses.
We provide evidence, analysis and advice to help shape transport investment and policy. Our work ensures decisions are informed by local knowledge and robust analysis.
Find out more on the Transport for the North website.
We develop data, modelling and analytical tools to support transport planning, appraisal and decision-making.
We believe public sector tools should be transparent, accessible and deliver value for money. We publish many of our tools, methods and processes on GitHub so that partners and other public bodies can use, review and improve them.
Our repositories fall into two categories:
- Internal TfN tools
- Common Analytical Framework (CAF) tools
The Common Analytical Framework (CAF) is a partnership between transport organisations across the UK.
CAF provides a shared set of tools and processes for transport modelling, appraisal and analysis. It helps organisations work in a more consistent, transparent and efficient way.
CAF tools are usually developed jointly with other transport bodies and are typically branded as "caf.X". They are designed to be flexible. Organisations can use individual components or combine them into larger analytical workflows.
To find out more about the tools and data we have available, please visit our resource hub.
- What is CAF?
- Who is CAF for?
- When should I use CAF?
- CAF Tools
- CAF Models
- How CAF fits within the analytical process
- Getting Started
- CAF Development
- Useful Links
- Contact Us
CAF is a suite of analytical tools and models that supports transport modelling, appraisal and strategic planning.
CAF provides a consistent approach to:
- Processing transport data
- Preparing modelling inputs
- Running analytical workflows
- Producing forecasts
- Supporting business cases and policy development
CAF helps improve confidence, consistency and efficiency across projects.
CAF is designed for:
- Transport modellers
- Transport planners
- Data analysts and engineers
- Consultants working on transport projects
- Organisations interested in using TfN tools
Note
Most CAF tools currently require some knowledge of Python.
You should consider using CAF when you need to:
- Process transport data
- Analyse land-use data
- Prepare modelling inputs
- Build highway, public transport or freight matrices
- Transform and analyse matrices
- Assess carbon impacts
- Support transport appraisal
- Work in a consistent way with other organisations
CAF tools can be used on their own or as part of a wider analytical process.
Note
Some CAF tools are not yet publicly available.
If you would like to know more about unpublished tools, please contact: TfNOffer@transportforthenorth.com
CAF tools are usually focused in scope, doing one specific thing, and have relatively small inputs/outputs.
List of some of the key tools available under CAF.
| Name | Description | Users / Usecase | Usability | Status | Language |
|---|---|---|---|---|---|
| caf.space | Creates translations between different zoning systems using geography, population or other weighting factors. | GIS Specialists and Transport Planners / Modellers | Code, CLI, GUI | Release | Python |
| caf.toolkit | Provides reusable Python tools for transport analysis, including matrix processing, logging and model configuration. | Python developers and data analysts | Code, CLI | Release | Python |
| caf.distribute | Builds transport demand matrices using established distribution methods, including gravity models and iterative proportional fitting. | Trip distribution modelling | Code Only | Beta | Python |
| caf.viz | Supports the creation of charts and visual outputs for analysis and model quality assurance. | Data analysts for model QA outputs | Code Only | Pre-Alpha | Python |
| caf.ntem | Extracts and processes data from the Department for Transport's National Trip End Model (NTEM). | Transport planners using DfT's NTEM datasets | Code, CLI | Beta | Python |
| caf.base | Provides common transport data structures, zone systems and segmentations used across CAF. | Transport modelling and planning, basis for other tools | Code Only | Beta | Python |
| caf.mat | Reads, writes and processes transport modelling matrices using a consistent approach. | Transport modelling and analysis | Code, CLI | Beta | Python |
| caf.brain | Simplifies the use of machine learning techniques within transport analytics workflows. | Data analysts for machine learning | Code Only | Beta | Python |
| OTP4GB-py | Runs public transport routing analysis using OpenTripPlanner and produces travel cost measures. | Transport routing analysis | Code, CLI | Release | Python |
| BODS-Extractor | Downloads and processes bus timetable and vehicle location data from the Bus Open Data Service. Allows for downloading bus schedules (GTFS format), live location data and producing "observed" bus schedules. | Gathering bus timetables evidence | Code, CLI | Release | Python |
| vis-core | A web mapping and dashboard framework used to build interactive visualisations and data products. | Data analysts, GIS specialists and web developers for web maps. | Code | Beta | Javascript |
CAF models are models in their own right, able to generate modelled data such as demand matrices (NorMITs-Demand) or carbon emissions (CAF.carbon). Inputs remain largely the same across runs, but arguments/segmentation etc. may change for specific use-cases.
List of some of the key models available under CAF.
| Name | Description | Users / Usecase | Usability | Status | Language |
|---|---|---|---|---|---|
| NorMITs-demand | Produces synthetic travel demand matrices and forecasts future travel demand across different transport modes. | Travel demand modelling | Code, CLI | Release | Python |
| Land-Use | Builds detailed population and employment datasets and can produce future development scenarios. | Land-use modelling | Release | Python | |
| caf.van | Estimates van travel demand for commuting, service, delivery and personal travel. | Travel demand modelling | Code, CLI | Release | Python |
| caf-freight-tools | Supports the analysis and modelling of heavy goods vehicle (HGV) movements. | Travel demand modelling | Code, CLI, GUI | Release | Python |
| caf.carbon | Forecasts transport-related carbon emissions and fleet impacts. | Carbon modelling | Code, CLI | Release | Python |
| caf.cvt | Assesses climate hazards and vulnerability across transport networks. | Climate modelling | Code, CLI | Beta | Python |
CAF tools align to different stages of the transport planning and modelling lifecycle.
CAF tools are tagged with the relevant modes and stage of assessment within their individual repository README.
Each CAF tool is maintained within its own repository, and most of CAF is Python-based.
To explore a tool navigate to the repository and review the README for a brief overview of the tools features and usage, most also have an online user guide with more details and examples.
CAF tool's often provide user interfaces to allow for use of the tools without any specific programming knowledge, these are most-likely command-line interfaces (CLI) but some tools also have graphical user interfaces (both desktop and web-based).
The usage of the tools varies, so the individual user guide should be consulted, but most of the Python tools are published on the Python Package Index (PyPI) and on Conda-forge. Therefore, installation of most Python tools can be done with one of the following commands:
conda install -c conda-forge {package_name}pip install {package_name}Note
Any tools written in other languages will be published based on standards from that language, see the individual repositories for details.
The largest portion of CAF which isn't Python based is the Visualisation Framework (vis-core), which is TfN's web framework. Vis-core is a JavaScript framework which is used for TfN's web dashboards but is also publicly available.
Where possible, CAF tools follow consistent architectural principles:
- Core logic separated from user interface
- Structured inputs
- Standardised result objects (e.g., JSON)
- Clear logging and error messages
- CLI-based execution
- Consistent command structures
- Designed to support web-based interfaces in future development
CAF is maintained by Transport for the North.
Please use the Issues or Pull Requests section within the relevant repository to:
- Raise an issue
- Suggest enhancements
- Contribute improvements
CAF continues to evolve, including:
- Improved discoverability and accessibility
- Enhanced documentation consistency
- Additional tools aligned with TfN's aspirations and goals
- Greater integration with other TfN resources, such as visualisation dashboards
We encourage use of, and contributions to, the repositories within this organisation, licenses are provided within our repositories and we have organisation contribution guidelines.
For further information, explore the repositories above, or contact Transport for the North - TfNOffer@transportforthenorth.com
