Data Sources
Bolster provides standardised access to a range of Northern Ireland and UK government data sources. Each module follows the same conventions:
A top-level
get_latest_*()function that downloads and returns apandas.DataFrameready for analysis.Caching to
~/.cache/bolster/<source>/to avoid repeated downloads.A matching CLI command (
bolster <command> --help).
NISRA
The NI Statistics and Research Agency publishes
a wide range of official statistics for Northern Ireland. All NISRA modules
live under bolster.data_sources.nisra.
Births
Monthly birth registrations from 2006 to present, broken down by sex and by registration vs. occurrence date.
from bolster.data_sources.nisra import births
df = births.get_latest_births(event_type="registration")
$ bolster nisra births
Deaths
Weekly death registrations with demographics, geography (Local Government Districts), and place-of-death breakdowns.
from bolster.data_sources.nisra import deaths
df = deaths.get_latest_deaths(dimension="demographics")
$ bolster nisra deaths
Marriages
Monthly marriage registrations.
from bolster.data_sources.nisra import marriages
df = marriages.get_latest_marriages()
$ bolster nisra marriages
Stillbirths
Monthly stillbirth registrations.
from bolster.data_sources.nisra import stillbirths
df = stillbirths.get_latest_stillbirths()
$ bolster nisra stillbirths
Population
Annual mid-year population estimates by age, sex, and Local Government District.
from bolster.data_sources.nisra import population
df = population.get_latest_population(area="Northern Ireland")
$ bolster nisra population
Population Projections
NI-level and LGD sub-area population projections (2024-based, 2024–2072).
from bolster.data_sources.nisra import population_projections
df = population_projections.get_latest_population_projections()
$ bolster nisra population-projections
Baby Names
Annual baby name registrations (1997–present) by sex and rank.
from bolster.data_sources.nisra import baby_names
df = baby_names.get_latest_baby_names(sex="female")
$ bolster nisra baby-names
Migration
Official and derived migration estimates — demographic components of population change including natural change, net migration, and cross-border flows.
from bolster.data_sources.nisra import migration
df = migration.get_latest_migration()
$ bolster nisra migration
Labour Market
Quarterly Labour Force Survey statistics: employment, economic inactivity, and unemployment rates for Northern Ireland.
from bolster.data_sources.nisra import labour_market
df = labour_market.get_latest_employment()
$ bolster nisra labour-market
Claimant Count
Monthly UC+JSA claimant count statistics from DfC/ONS. NI headline back to April 1997, with LGD and SOA breakdowns.
from bolster.data_sources.nisra import claimant_count
df = claimant_count.get_latest_claimant_count("headline")
$ bolster nisra claimant-count
Annual Survey of Hours and Earnings (ASHE)
Employee earnings statistics for Northern Ireland, covering median weekly and hourly earnings, real earnings growth, occupation/industry breakdowns, and gender pay distribution (Figures 1–18).
from bolster.data_sources.nisra import ashe
df = ashe.get_latest_ashe_timeseries("weekly")
$ bolster nisra ashe
Quarterly Employment Survey
Employee jobs by sector from Q1 1998 to present, seasonally adjusted and unadjusted.
from bolster.data_sources.nisra import quarterly_employment_survey
df = quarterly_employment_survey.get_latest_qes()
$ bolster nisra quarterly-employment-survey
Composite Economic Index (NICEI)
The headline experimental quarterly economic indicator for Northern Ireland.
from bolster.data_sources.nisra import composite_index
df = composite_index.get_latest_nicei()
$ bolster nisra composite-index
Index of Production / Services
Quarterly Index of Production (IOP) and Index of Services (IOS) for NI.
from bolster.data_sources.nisra import index_of_production, index_of_services
df_prod = index_of_production.get_latest_iop()
df_serv = index_of_services.get_latest_ios()
$ bolster nisra index-of-production
$ bolster nisra index-of-services
Construction Output
Quarterly construction output statistics — all work, new work, and repair & maintenance.
from bolster.data_sources.nisra import construction_output
df = construction_output.get_latest_construction_output()
$ bolster nisra construction-output
Business Register (IDBR)
NI Business Register (IDBR) — annual VAT/PAYE business counts by industry, legal status, and Local Government District.
from bolster.data_sources.nisra import business_register
df = business_register.get_latest_data()
$ bolster nisra business-register
Planning Statistics
NI Planning Activity Statistics — quarterly applications, approvals, and refusals by council.
from bolster.data_sources.nisra import planning_statistics
df = planning_statistics.get_latest_planning_statistics()
$ bolster nisra planning-statistics
Deprivation (NIMDM 2017)
NI Multiple Deprivation Measure 2017 — SOA-level overall and domain deprivation ranks for 890 Super Output Areas.
from bolster.data_sources.nisra import deprivation
df = deprivation.get_latest_data()
# Columns: soa_code, soa_name, mdm_rank, income_rank, employment_rank, ...
$ bolster nisra deprivation
Housing Stock
NI Housing Stock Statistics (DoF/LPS) — annual counts of residential properties by type (detached, semi-detached, terraced, flat) and Local Government District.
from bolster.data_sources.nisra import housing_stock
df = housing_stock.get_latest_data()
$ bolster nisra housing-stock
Wellbeing
Individual wellbeing statistics from the NI Wellbeing Dashboard — life satisfaction, happiness, anxiety, and loneliness.
from bolster.data_sources.nisra import wellbeing
df = wellbeing.get_latest_personal_wellbeing()
$ bolster nisra wellbeing
Public Confidence in Official Statistics
Public Awareness of and Trust in Official Statistics (PCOS) — awareness and trust indicators back to 2009.
from bolster.data_sources.nisra import public_confidence
df = public_confidence.get_latest_data()
$ bolster nisra public-confidence
Registrar General Quarterly Tables
Quarterly births, deaths, marriages, and LGD breakdowns.
from bolster.data_sources.nisra import registrar_general
data = registrar_general.get_quarterly_vital_statistics()
# data is a dict with keys: 'births', 'deaths', 'lgd'
$ bolster nisra registrar-general
Tourism — Occupancy
Monthly hotel and guest accommodation occupancy rates.
from bolster.data_sources.nisra.tourism import occupancy
df = occupancy.get_latest_hotel_occupancy()
$ bolster nisra occupancy
Tourism — Visitor Statistics
Quarterly visitor numbers and spend.
from bolster.data_sources.nisra.tourism import visitor_statistics
df = visitor_statistics.get_latest_visitor_statistics()
$ bolster nisra visitors
Department of Health NI (health_ni)
The Department of Health publishes health
and social care statistics for Northern Ireland. All health_ni modules live
under bolster.data_sources.health_ni.
Cancer Waiting Times
14-day, 31-day, and 62-day cancer referral-to-treatment waiting times by tumour type and HSC Trust. Data via PxStat.
from bolster.data_sources.health_ni import cancer_waiting_times
df = cancer_waiting_times.get_latest_62_day_by_tumour()
$ bolster nisra cancer-waiting-times
Diagnostic Waiting Times
Diagnostic waiting times by test type and HSC Trust. Data via PxStat DWT matrix.
from bolster.data_sources.health_ni import diagnostic_waiting_times
df = diagnostic_waiting_times.get_latest_diagnostic_waiting_times()
$ bolster nisra diagnostic-waiting-times
Elective Waiting Times
Inpatient/day-case and outpatient referrals waiting by weeks-waited band, specialty, and HSC Trust. Covers pre-encompass (legacy PAS) and encompass (new EPR system from December 2023) data series.
from bolster.data_sources.health_ni import elective_waiting_times
df = elective_waiting_times.get_latest_elective_waiting_times()
$ bolster nisra elective-waiting-times
Emergency Care Waiting Times
Monthly A&E attendance and 4-hour target performance by HSC Trust and hospital department.
from bolster.data_sources.health_ni import emergency_care_waiting_times
df = emergency_care_waiting_times.get_latest_data()
$ bolster nisra emergency-care
Disease Prevalence
NI disease register statistics at NI, LGD, HSCT, and GP-practice level. Covers 17 disease categories including hypertension, diabetes, and COPD.
from bolster.data_sources.health_ni import disease_prevalence
# NI-level summary
df = disease_prevalence.get_latest_disease_prevalence(level="ni")
# GP-practice level (~360 practices, ~17 financial years)
gp_df = disease_prevalence.get_latest_gp_prevalence()
$ bolster nisra disease-prevalence
$ bolster nisra disease-prevalence --level gp
Child Protection
NI child protection registrations, de-registrations, and case conference statistics from the Department of Health.
from bolster.data_sources.health_ni import child_protection
df = child_protection.get_latest_child_protection()
$ bolster nisra child-protection
PSNI
The Police Service of Northern Ireland
publishes open-data releases covering crime, road safety, and police activity.
All PSNI modules live under bolster.data_sources.psni.
Crime Statistics
Historical monthly crime statistics broken down by offence type, district
command unit, and outcome. Note: the most recent 12-month period is not
published in the open-data release; use get_historical_crime_statistics()
for reliable data.
from bolster.data_sources.psni import crime_statistics
df = crime_statistics.get_historical_crime_statistics()
$ bolster psni crime
Road Traffic Collisions
Annual road traffic collision data with casualty severity and road type.
from bolster.data_sources.psni import road_traffic_collisions
df = road_traffic_collisions.get_latest_collisions()
$ bolster psni rtc
Stop and Search
PSNI stop & search records from OpenDataNI; 199,661 records covering 2017/18–2024/25 with PACE reason flags, legislation, and demographic breakdowns.
from bolster.data_sources.psni import stop_and_search
df = stop_and_search.get_latest_stop_and_search()
$ bolster psni stop-and-search
PACE Statistics
Annual PSNI PACE statistics — monthly stop & search by reason and quarterly arrests by gender and category, back to 2013/14.
from bolster.data_sources.psni import pace
df_searches = pace.get_latest_pace_stop_and_search()
df_arrests = pace.get_latest_pace_arrests()
$ bolster psni pace
Police Ombudsman
Annual and quarterly Police Ombudsman complaint statistics — complaints by district, allegation type, and outcome back to 2000/01.
from bolster.data_sources.psni import police_ombudsman
df = police_ombudsman.get_latest_complaints()
$ bolster psni police-ombudsman
DVA — Driver and Vehicle Agency
Monthly test statistics from the NI Driver and Vehicle Agency.
from bolster.data_sources import dva
vehicles = dva.get_vehicle_test_statistics()
drivers = dva.get_driver_test_statistics()
theory = dva.get_theory_test_statistics()
$ bolster dva vehicle-tests
$ bolster dva driver-tests
$ bolster dva theory-tests
NI Water
Drinking water quality data for all NI supply zones.
from bolster.data_sources.ni_water import get_water_quality, get_water_quality_by_zone
df = get_water_quality()
zone = get_water_quality_by_zone("BALM") # Belfast Malone
$ bolster water-quality --postcode "BT1 1AA"
NI Assembly (AIMS)
NI Assembly AIMS data — Members of the Legislative Assembly, oral/written questions, and assembly votes.
from bolster.data_sources import niassembly
members = niassembly.get_members()
questions = niassembly.get_questions(member_id=123)
votes = niassembly.get_votes()
$ bolster niassembly members
$ bolster niassembly questions
$ bolster niassembly votes
EONI — Electoral Office for Northern Ireland
NI Assembly election results (2016 and 2022).
from bolster.data_sources.eoni import get_results
df_2022 = get_results(2022)
df_2016 = get_results(2016)
$ bolster ni-elections 2022
NI House Price Index
Standardised house price index for Northern Ireland.
from bolster.data_sources.ni_house_price_index import build
df = build()
$ bolster ni-house-prices
Justice — NICTS
NI Courts and Tribunals Service (NICTS) statistics.
Mortgage Possession Actions
Quarterly mortgage possession actions (applications, orders, and warrants) by court district.
from bolster.data_sources import justice
df = justice.get_latest_mortgage_possession_actions()
$ bolster justice mortgage-possession
Translink
Live and scheduled bus and rail departures, and vehicle positions, for the Translink NI public transport network.
from bolster.data_sources import translink
# Next departures from a stop (by name)
df = translink.get_departures_by_name("Europa Buscentre")
# Live vehicle positions
vehicles = translink.get_live_vehicles()
$ bolster translink departures "Europa Buscentre"
$ bolster translink vehicles
ONS — Office for National Statistics
ONS UK-wide statistical releases relevant to Northern Ireland.
CPI / CPIH / RPI Inflation
Annual rates and price indices for CPI, CPIH, and RPI from ONS.
from bolster.data_sources import ons_cpi
df = ons_cpi.get_latest_cpi()
$ bolster ons-cpi
Bank of England
Bank of England official Bank Rate (base rate) from 1694 to present.
from bolster.data_sources import boe_base_rate
df = boe_base_rate.get_latest_base_rate()
$ bolster boe-base-rate
Companies House
UK Companies House public data — basic company details and registered companies connected to a given address.
from bolster.data_sources.companies_house import query_basic_company_data
details = query_basic_company_data("12345678")
$ bolster companies-house --query "Farset Labs"
Gender Pay Gap
UK Gender Pay Gap reporting data from 2017 to present (all employers with 250+ employees).
from bolster.data_sources import gender_pay_gap
df = gender_pay_gap.get_gender_pay_gap_data()
$ bolster gender-pay-gap
Met Office
UK precipitation maps from the Met Office DataPoint API.
Requires the environment variable MET_OFFICE_API_KEY.
from bolster.data_sources.metoffice import get_uk_precipitation
img = get_uk_precipitation(order_name="my-order")
$ bolster get-precipitation --order-name "my-order"
Wikipedia
Structured data from NI-related Wikipedia tables (e.g. the NI Executive composition table).
from bolster.data_sources.wikipedia import get_ni_executive_basic_table
df = get_ni_executive_basic_table()
$ bolster ni-executive
Discovering New Publications
NISRA publishes new datasets regularly. Use the RSS feed integration to discover publications before they are implemented as modules:
$ bolster nisra feed --limit 20
Or programmatically:
from bolster.utils.rss import get_nisra_statistics_feed
feed = get_nisra_statistics_feed(limit=20)
for entry in feed.entries:
print(entry.published.date(), entry.title)
See Also
Data Source Development Guide — how to add a new data source module
API Reference — full API reference for all modules