Synthetic Operational Data Generator for Analytics, AI Prototyping and Decision Intelligence
SynthOps is an open-source synthetic data generation framework designed to create realistic, structured operational datasets across different industries.
The project helps analysts, analytics engineers, BI developers, data scientists, educators and product builders generate safe fictional datasets for dashboarding, data modelling, AI prototyping and decision-intelligence use cases.
SynthOps is currently in early development.
Version 1 starts with an Adult Social Care domain module and will later expand into other operational domains such as finance operations, construction operations, SaaS metrics and workforce analytics.
Realistic operational datasets are often difficult to access because they may contain sensitive, private or commercially confidential information.
This creates a barrier for people who want to practise analytics engineering, build dashboards, test AI prototypes, or demonstrate decision-support systems using realistic data.
SynthOps addresses this by generating fictional but structured datasets that reflect plausible operational patterns without using real personal or confidential data.
The first module generates synthetic adult social care operations data.
Current table:
care_homes
Planned tables:
residentsresident_care_needs_historystaffshiftsincidentsobservationshandover_notes
- Modular Python package structure
- Reusable core ID generation utilities
- Reusable date utilities
- Scenario-driven adult social care home generation
- Configurable ID prefixes and widths
- Configurable care home type
- Configurable turnover profile
- Type-influenced occupancy behaviour
- Synthetic sample CSV output
- Time-aware adult social care resident lifecycle generation
- Configurable dataset start and end dates for resident lifecycle data
- Active, discharged and deceased resident records
- Resident records linked to generated care homes
- Automated tests with
pytest
from synthops.domains.adult_social_care.care_homes import generate_care_homes
from synthops.domains.adult_social_care.residents import generate_residents
care_homes = generate_care_homes(
number_of_homes=10,
id_prefix="HM",
id_width=3,
seed=42,
)
residents = generate_residents(
care_homes=care_homes,
dataset_start_date="2020-01-01",
dataset_end_date="2024-12-31",
id_prefix="RES",
id_width=5,
seed=42,
)
print(care_homes.head())
print(residents.head())The current generator can create synthetic care home records with fields such as:
care_home_idcare_home_nameregionlocal_authoritycare_home_typeturnover_profilebed_capacityoccupancy_ratecurrent_residentscqc_ratingopened_date
synthops/
├── data/
│ └── sample/
├── docs/
├── examples/
├── notebooks/
├── src/
│ └── synthops/
│ ├── core/
│ └── domains/
├── tests/
├── README.md
├── requirements.txt
└── pyproject.toml
Create and activate a virtual environment:
python -m venv .venv
.\.venv\Scripts\Activate.ps1Install the project in editable mode:
pip install -e ".[dev]"Run tests:
pytestRun the example script:
python examples/generate_adult_social_care_sample.pyCurrent Adult Social Care sample outputs:
data/sample/adult_social_care/care_homes.csvdata/sample/adult_social_care/residents.csv
The residents output includes:
resident_idcare_home_iddate_of_birthgenderadmission_dateexit_dateexit_reasonstatus_at_dataset_end
---
## Responsible Use
SynthOps generates fictional data for learning, analytics development, dashboarding and prototyping.
The generated data must not be used for clinical decision-making, safeguarding decisions, regulatory reporting, financial decisions, employment decisions, or real-world assessment of individuals or organisations.
The assumptions used in this project are synthetic modelling choices designed to create plausible variation for analytics and prototyping. They should not be interpreted as real-world benchmarks.
---
## Roadmap
Planned development areas include:
- Resident lifecycle generation
- Care needs history generation
- Staff and shift generation
- Incident and observation generation
- Power BI demo dashboard
- Finance operations domain module
- Construction operations domain module
- Documentation site
- Optional Streamlit interface
---
## Portfolio Purpose
This project demonstrates the design of a reusable synthetic data product with modular architecture, responsible data assumptions, test coverage, documentation and analytics-ready output.
It supports professional positioning as an Analytics Engineer / Data Scientist focused on building trusted data products that transform fragmented operational data into reliable business decisions.