PHPackages                             davecook/home-care-cost-model - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. davecook/home-care-cost-model

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

davecook/home-care-cost-model
=============================

A reference cost model for Canadian home care service-mix decisions (PSW, housekeeping, nursing) with 2026 tax relief stack and per-province subsidy eligibility.

v0.1.0(3mo ago)00MITPythonPHP &gt;=8.0

Since Apr 10Pushed 3mo agoCompare

[ Source](https://github.com/DaveCookVectorLabs/home-care-cost-model)[ Packagist](https://packagist.org/packages/davecook/home-care-cost-model)[ Docs](https://github.com/DaveCookVectorLabs/home-care-cost-model)[ RSS](/packages/davecook-home-care-cost-model/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependenciesVersions (2)Used By (0)

Home Care Cost Model
====================

[](#home-care-cost-model)

[![PyPI version](https://camo.githubusercontent.com/7930504d5988f911f8edc8ef58cc65faea41a71998f3e2d695886be5c2f9a047/68747470733a2f2f62616467652e667572792e696f2f70792f686f6d652d636172652d636f73742d6d6f64656c2e737667)](https://pypi.org/project/home-care-cost-model/)[![npm version](https://camo.githubusercontent.com/dbb20acffed9b5fb1df3b4f47880eb5ca34b0ddb700743eb8b2be236aba7b222/68747470733a2f2f62616467652e667572792e696f2f6a732f25343064617665636f6f6b253246686f6d652d636172652d636f73742d6d6f64656c2e737667)](https://www.npmjs.com/package/@davecook/home-care-cost-model)[![Crates.io](https://camo.githubusercontent.com/3cbe0dac49ad8db28ba37dcaa0aceda299d165b6f29039f0cccdfd86627d39c6/68747470733a2f2f696d672e736869656c64732e696f2f6372617465732f762f686f6d652d636172652d636f73742d6d6f64656c2d656e67696e652e737667)](https://crates.io/crates/home-care-cost-model-engine)[![Gem Version](https://camo.githubusercontent.com/f0e7ba4087fe8e4b45246642a84c5de860754f4af944c99bfa2494076c24ff85/68747470733a2f2f62616467652e667572792e696f2f72622f686f6d655f636172655f636f73745f6d6f64656c2e737667)](https://rubygems.org/gems/home_care_cost_model)[![Hex.pm](https://camo.githubusercontent.com/07af61ff8e49d7058ceb7b3abc63065d4f66f2a7410de7f0cfaed59760611380/68747470733a2f2f696d672e736869656c64732e696f2f686578706d2f762f686f6d655f636172655f636f73745f6d6f64656c2e737667)](https://hex.pm/packages/home_care_cost_model)[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](https://opensource.org/licenses/MIT)[![Data: CC BY 4.0](https://camo.githubusercontent.com/02e201913ec608c1d33a2f0f60e3adb1ea45b3ea404939de1d2af0430abfb73f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446174612d43432532304259253230342e302d6c69676874677265792e737667)](https://creativecommons.org/licenses/by/4.0/)

A reference cost model and open dataset collection for home care decisions in Canada. The model quantifies the trade-off families face when combining Personal Support Worker (PSW) hours, housekeeping services, nursing care, and informal caregiving for an older adult or person with a disability remaining at home. It spans all ten provinces and three territories, incorporates 2026 tax relief parameters (Medical Expense Tax Credit, Disability Tax Credit, Canada Caregiver Credit, Veterans Independence Program), and emits explicit scope of practice warnings when inputs imply a service substitution that is not legally permissible.

---

Plain-language summary
----------------------

[](#plain-language-summary)

Families across Canada routinely face a choice between hiring a Personal Support Worker (PSW) and hiring a cleaner or housekeeper when a parent or spouse begins to need help at home. The two roles are not interchangeable. A PSW is trained and authorised to provide personal care — bathing, toileting, transfers, feeding, medication reminders, and (in some provinces and under delegation) basic wound and ostomy care. A housekeeper or cleaning service is authorised to clean. Asking a cleaner to help with personal care is outside their scope of practice and, in several provinces, outside the scope of their insurance.

This repository publishes a parametric model that takes a recipient's activities-of-daily-living (ADL) and instrumental-activities-of-daily-living (IADL) scores, their province, a short description of their household and diagnosis, and returns a service mix (PSW hours, housekeeping hours, nursing hours), a monthly private-pay cost, the hours covered by the applicable provincial subsidised program, and the federal and provincial tax credits that typically apply. It also flags, in writing, any combination of inputs where cleaning services cannot legally substitute for personal support.

The model is not clinical advice. It is a reference framework for comparing options before a formal care assessment. All data sources are government or peer-reviewed. All code is open source under MIT. All data is published under CC BY 4.0.

---

What This Does
--------------

[](#what-this-does)

Given an older adult or disability-care recipient's functional assessment and jurisdiction, the model computes:

- **Recommended weekly service hours** across three categories (personal support, housekeeping, skilled nursing), derived from Katz ADL and Lawton IADL scores with diagnosis- and cognition-aware adjustments.
- **Scope of practice warnings** when the combination of inputs implies a legally-impermissible substitution (e.g. housekeeping for a recipient whose ADL score indicates need for bathing or transfer assistance).
- **Private-pay monthly cost** using per-province rate bands derived from Statistics Canada wage tables and Canadian Home Care Association agency markup ranges.
- **Subsidised hours allocation** for the recipient's province, following publicly-documented eligibility rules (Ontario HCCSS, BC Health Authority home care, Alberta Continuing Care at Home, Quebec CLSC Soutien à domicile, Saskatchewan Health Authority, Manitoba Home Care, Atlantic provinces, Territories).
- **Federal and provincial tax credit stack** — Medical Expense Tax Credit (METC), Disability Tax Credit (DTC), Canada Caregiver Credit (CCC), Veterans Affairs Canada VIP, and Indigenous Services Canada FNIHB Home and Community Care Program flags.
- **Out-of-pocket cost after credits**, monthly and annualised.
- **Hybrid-versus-all-PSW comparison**, showing how much a family saves by using a cleaning service for housekeeping hours rather than paying a PSW rate for those same hours.
- **Employment-law warnings** when private-hire arrangements exceed a threshold that triggers CRA employer obligations (CPP, EI, provincial WSIB, T4 filing).
- **Data source citations** linking every output field to the Sources manifest row that supplied its constants.

Every response includes a `disclaimer` field: *"Reference model only. Not clinical or financial advice; consult a regulated health professional or registered tax practitioner for individual decisions."*

---

Datasets
--------

[](#datasets)

Three classes of data ship with this repository. All live under `datasets/`.

### Class 1 — Sources (raw, verbatim, credited)

[](#class-1--sources-raw-verbatim-credited)

Fetched by `datasets/pull_sources.py` from authoritative portals and stored under `datasets/sources//` with a sibling `.source.json` that records upstream URL, retrieval timestamp, license, and SHA256. A human-readable manifest is at `datasets/SOURCES.md`. No Source file is ever edited after download.

Upstream organisations represented in Sources: Statistics Canada (wage, population, CPI tables), Canadian Institute for Health Information (home care indicators), Canada Revenue Agency (tax folios), Veterans Affairs Canada (VIP rate schedule), Indigenous Services Canada (FNIHB Home and Community Care), Canadian Home Care Association, the Ontario Ministry of Health (HCCSS), and the equivalent provincial and territorial ministries.

### Class 2 — Reference tables (hand-curated, deterministic)

[](#class-2--reference-tables-hand-curated-deterministic)

FileRowsDescription`home_care_services_canada.csv`~112Scope-of-practice and rate bands for 8 service categories across 13 Canadian jurisdictions, plus federal/cross-jurisdiction rows for VAC VIP and ISC FNIHB. Every row cites a `source_url`.`home_care_tax_parameters_2026.csv`~40Tax-year 2026 parameters for METC, DTC, CCC, VAC VIP, and provincial disability supplements. Every row cites a CRA folio or equivalent.`home_care_subsidy_programs.csv`~25Provincial and territorial subsidised home care programs: administering body, eligibility rules, typical hours awarded, wait time, URL, retrieval date.### Class 3 — Derived scenarios (engine-generated)

[](#class-3--derived-scenarios-engine-generated)

These are the analysis-ready tables published to Hugging Face, Kaggle, Zenodo, Dryad, and Mendeley Data. Every row is produced by calling `engines/python/engine.py` with a specific input grid.

FileRowsDescription`home_care_scenarios.csv`5,000Synthetic household scenarios with population-weighted province sampling, joint-distribution diagnosis/cognition/mobility sampling calibrated to CIHI home care indicators, and per-scenario engine outputs. Deterministic with `random.seed(42)`.`home_care_per_province_rate_bands.csv`~650Product of the reference scope table × Statistics Canada CPI-adjusted wage data for 2019–2026, yielding implied private-pay and agency-billed rate ranges per (province, service, year).`home_care_cost_model_archetypes.csv`~2,500Engine outputs for a grid of canonical household archetypes: every (province × ADL × IADL × cognitive × mobility) combination at constant household composition and income. The lookup-table form of the calculator.`home_care_tax_relief_sensitivity.csv`~3,500Sensitivity grid: ~700 base scenarios × 5 net-income bands ($25k, $50k, $75k, $100k, $150k). Shows how tax-credit value shifts across the income distribution.`home_care_subsidy_gap.csv`~39013 jurisdictions × 30 representative scenarios. Reports subsidised hours awarded vs. model-recommended hours vs. monthly dollar gap, exposing cross-province variation in home care program generosity.All derived datasets are labelled **"Synthetic. Generated from seed 42. Not survey data."** in their header comments and dataset cards.

---

Calculation Model
-----------------

[](#calculation-model)

```
# Inputs
adl_katz_score        ∈ [0, 6]
iadl_lawton_score     ∈ [0, 8]
province              ∈ {ON, QC, BC, AB, SK, MB, NS, NB, NL, PE, YT, NT, NU}
household_composition ∈ {alone, with_spouse, with_adult_child, multigen}
cognitive_status      ∈ {intact, mild, moderate, severe}
mobility_status       ∈ {independent, cane, walker, wheelchair, bedbound}
primary_diagnosis     ∈ {dementia, stroke, frailty, parkinson, post_surgical,
                         mobility_only, chronic_mixed}

# Hours derivation
psw_hours_per_week    = max(0, 7*(6 - adl) + cognitive_bump
                             - min(informal_hours*0.5, cap))
housekeeping_hours    = max(0, 2*(8 - iadl) + household_modifier)
nursing_hours         = diagnosis_map[primary_diagnosis]

# Gates
if adl
