Skip to main content

Healthcare VOC compliance calculator — computes VOC exposure, OSHA PEL comparison, and multi-jurisdiction regulatory compliance for cleaning products used in healthcare facilities.

Project description

Healthcare VOC Compliance Calculator

PyPI version npm version Crates.io Gem Version Hex.pm License: MIT

An open-source calculator and dataset collection for evaluating VOC (Volatile Organic Compound) exposure from cleaning products used in healthcare facilities. Covers 26 jurisdictions across the United States and Canada.


What This Does

Given a cleaning product's VOC content, a room's geometry, and ventilation parameters, this tool calculates:

  • VOC concentration (mg/m³) at steady state during a cleaning cycle
  • OSHA PEL comparison — what percentage of the Permissible Exposure Limit the concentration represents
  • Time to safe reentry — how long until VOC concentration drops below 10% of PEL
  • Annual VOC load — total VOC released per year at the given cleaning frequency
  • Multi-jurisdiction compliance — whether the product meets VOC limits in each of 26 jurisdictions

Datasets

Two CSV datasets are included in datasets/:

Dataset A: VOC Regulatory Limits by Jurisdiction (650 rows)

VOC limits (g/L) for 25 cleaning product categories across 26 jurisdictions:

  • US Federal (EPA 40 CFR Part 59 Subpart C)
  • California (CARB Consumer Products Regulations)
  • 12 OTC states (CT, DE, ME, MD, MA, NH, NJ, NY, PA, RI, VA, DC)
  • 8 states with independent regulations (MI, CO, IL, IN, IA, OH, UT, WA)
  • Canada Federal (SOR/2021-268)
  • Ontario, British Columbia, Quebec

Each row includes the product category, numeric VOC limit, regulation name, effective date, and healthcare-specific context notes.

Dataset B: Healthcare Cleaning Product VOC Compliance Matrix (5,000 rows)

Synthetic product data modeled on real institutional cleaning product categories:

  • VOC content (g/L concentrate and effective diluted)
  • Certifications (Green Seal GS-37, UL ECOLOGO, EPA Safer Choice, UL GREENGUARD Gold, LEED v4)
  • Per-jurisdiction compliance flags (compliant/non-compliant in each of 26 jurisdictions)
  • Healthcare approval status, IPAC compatibility rating
  • Pricing (CAD/litre), dilution ratios, coverage rates
  • Recommended healthcare facility types

Calculation Model

effective_voc     = product_voc_g_per_L × dilution_ratio
product_applied_L = room_sqft / coverage_sqft_per_L
total_voc_mg      = effective_voc × product_applied_L × 1000

# Single-zone mass balance with ventilation
emission_rate     = total_voc_mg / cleaning_duration_hr
ventilation_rate  = air_changes_per_hour × room_volume_m3
steady_state      = emission_rate / ventilation_rate

osha_pel_percent  = (steady_state / 300) × 100

ASHRAE 62.1-2022 minimum ventilation rates for healthcare spaces are built in as reference values:

Space Type Minimum ACH
Patient room 6
ICU 12
Operating room 20
Exam room 6
Corridor 4
Laboratory 12
Dietary kitchen 10

Engines

The calculation is implemented in seven languages. Each exposes /calculate (POST) and /health (GET) REST endpoints:

Language Directory Package
Python (FastAPI) engines/python/ healthcare-voc-compliance on PyPI
Rust engines/rust/ healthcare-voc-engine on Crates.io
Java engines/java/ io.github.davecookvectorlabs:healthcare-voc-engine on Maven Central
Ruby (Sinatra) engines/ruby/ healthcare_voc_compliance on RubyGems
Elixir (Plug) engines/elixir/ healthcare_voc on Hex.pm
PHP engines/php/ davecook/healthcare-voc-compliance on Packagist
Go (net/http) engines/go/ github.com/DaveCookVectorLabs/healthcare-voc-compliance on pkg.go.dev

Quick Start (Python)

pip install healthcare-voc-compliance
# or run from source:
cd engines/python
pip install -r requirements.txt
python engine.py          # CLI mode — runs sample calculation
python engine.py --serve  # HTTP server on port 8001

API Example

curl -X POST http://localhost:8001/calculate \
  -H "Content-Type: application/json" \
  -d '{
    "room_sqft": 200,
    "ceiling_height_ft": 9,
    "product_voc_g_per_L": 8.0,
    "dilution_ratio": 0.015625,
    "coverage_sqft_per_L": 400,
    "air_changes_per_hour": 6,
    "cleaning_frequency_per_year": 365,
    "product_category": "General Purpose Cleaner",
    "space_type": "patient_room"
  }'

Regulatory Sources


Project Structure

healthcare-voc-compliance/
├── datasets/
│   ├── generate_regulatory_limits.py     # Dataset A generator
│   ├── generate_product_matrix.py        # Dataset B generator
│   ├── voc_regulatory_limits.csv         # 650 regulatory limits
│   └── healthcare_cleaning_products_voc.csv  # 5,000 products
├── engines/
│   ├── python/engine.py                  # Python (FastAPI)
│   ├── rust/src/main.rs                  # Rust
│   ├── java/src/.../VOCCalculator.java   # Java
│   ├── ruby/lib/healthcare_voc_compliance.rb  # Ruby
│   ├── elixir/lib/healthcare_voc.ex      # Elixir
│   ├── php/src/VOCCalculator.php         # PHP
│   └── go/main.go                        # Go
├── notebooks/
│   └── voc_compliance_analysis.ipynb     # Jupyter analysis notebook
├── pdfs/
│   └── generate_pdfs.py                  # PDF white paper generator
├── docs/                                 # Sphinx documentation
└── public/                               # PHP web frontend

License

MIT License. See LICENSE for details.

Maintained by Dave Cook — Binx Professional Cleaning, North Bay and Sudbury, Ontario.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

healthcare_voc_compliance-0.1.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

healthcare_voc_compliance-0.1.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file healthcare_voc_compliance-0.1.0.tar.gz.

File metadata

File hashes

Hashes for healthcare_voc_compliance-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d576226703d42b32a155444bf113a605048461608cb8d942c028a834d86d5a32
MD5 101ad75334f5b084dc4bd0e4b7d2037f
BLAKE2b-256 50461145820de8245fb1105016899759653d3bb03295a46cb58e735579ee1794

See more details on using hashes here.

File details

Details for the file healthcare_voc_compliance-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for healthcare_voc_compliance-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ab2d958fdf14a39943fd32e21d6741a11acb47c3bffb86fa70ce1a869ca9c71
MD5 5f73810893a1d1232030989251362bbb
BLAKE2b-256 a403e071b19d03d5040e00a6143375451ad34b9bfc797fcfe4a47f05c98fd2c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page