I make numbers that executives bet on, and I can show my work.
Four years turning pharmaceutical and healthcare data into dashboards, KPIs and answers, at AstraZeneca and Cigna.
I care most about the unglamorous part: whether the number is actually right, and whether anyone can prove it.
Not a career change. A change in altitude.
2021 ββββββββββββ 2023 ββββββββββββ 2025 ββββββββββββ now
β β β β
Cigna, India MSc Data Science AstraZeneca, UK building in the open
Healthcare Teesside Univ. Pharma commercial
claims & ops (Advanced BI for 700+ users
reporting Practice)
β β β β
"make the "learn why the "make the "prove the number
report" method works" number trusted" in public"
I started where most analysts do: building the report someone asked for. Healthcare claims at Cigna taught me that the hard part was never the chart, it was the reconciliation underneath it, and that a discrepancy nobody chases becomes a decision nobody should have made.
An MSc in the UK gave me the statistical vocabulary for what I had been doing by instinct. At AstraZeneca that turned into ownership: KPI definitions, dimensional models and validation gates for reporting that 700+ people read without ever seeing my name on it.
The pivot happening now is from report author to analyst who engineers. Same domain, higher standard: version control, tests, measured results and documented trade-offs, which is what the repositories below are for.
|
At work
|
In the open
|
Levels are claims I can defend in an interview, so each one names where it was earned.
| Capability | Depth | Earned on |
|---|---|---|
| SQL (window functions, optimisation, reconciliation) | ββββββββββ Advanced |
Daily at AstraZeneca and Cigna; query tuning for recurring reporting |
| Power BI & DAX (models, measures, report performance) | ββββββββββ Advanced |
700+ user dashboards; Tableau to Power BI migration at Cigna |
| Excel, Power Query (M), VBA | ββββββββββ Advanced |
Automated recurring report packs, cutting manual preparation |
| Data validation & ETL testing | ββββββββββ Strong |
Source-to-target reconciliation on ADF and Databricks deliveries |
| Python (Pandas, NumPy, analysis) | ββββββββββ Strong |
Trend, forecasting and validation work; the repos below |
| Snowflake | ββββββββββ Strong |
Primary warehouse for commercial reporting at AstraZeneca |
| Dimensional modelling | ββββββββββ Strong |
Standardising KPI calculations across report suites |
| Azure data platform (ADF, Synapse, Databricks, Fabric) | ββββββββββ Working |
Validation and consumption side, alongside data engineering |
| Statistics & forecasting | ββββββββββ Working |
MSc Data Science; variance and trend analysis in role |
| Tableau | ββββββββββ Working |
The source system in the Cigna migration |
Built in the open, with tests, CI and measured results. Every number below is produced by code committed in that repository.
|
Healthcare data quality as dbt tests: NHS number checksums, ICD-10 format, duplicate claims, staging to mart reconciliation. 1.0 detection recall over 160 labeled violations, 0 false positives. |
Predicts claim denials before submission, with a SQL feature layer built so target leakage is structurally impossible. 38.5% lower simulated handling cost; threshold chosen by dollars, not accuracy. |
Ten benchmarked DAX antipatterns plus a static analyser for measures and semantic models. Scanner reports its own 1.00 precision and recall, gated in CI. |
|
Turns Tableau workbooks into a Power BI migration plan, from having done that migration manually. 88.5% auto-mapped calculations; a 2,246-calculation corpus in 0.32 s. |
Finds where Snowflake credits actually burn, using literal-stripping query fingerprints. 1M queries attributed in 3.7 s; runs offline against a committed ACCOUNT_USAGE replica. |
Bronze, silver and gold with contracts at every boundary and re-runs proven to be no-ops. Every row accounted for: 1.22M rows, conservation asserted per batch. |
|
π Β Trace it before you trust it. A KPI without a reconciliation path is an opinion with a number attached. π Β Define it once. Reusable measures and models, so "revenue" cannot quietly mean three things. π Β Report the boring result. If the simple baseline wins, that goes in the README too. π£οΈ Β Write for the reader. Stakeholders need the decision, not the query plan. |
π open healthcare data Β Β·Β π¨ dashboard design craft Β Β·Β π statistics that survive contact with real data Β Β·Β βοΈ writing up data quality war stories