Skip to main content

emergency-plumbing-triage

Zero-dependency Python helpers for 24/7 home-service dispatch: issue triage, first-5-minute checklists, after-hours cost estimates (2026 US benchmarks), US ZIP/phone validation, and a tiny CLI.

Field-tested against a real-world emergency plumbing dispatch workflow — burst pipes, sewage backup, gas risk, and no-water calls — so the defaults match how live 24/7 shops actually triage at 2 a.m.

  • Live dispatch operation: 24hourplumberusa — 24/7 call flow and first-5-minute checklist
  • Service catalog reference: plumbing services — full repair, replacement, and installation list
  • Emergency guide: emergency plumbing costs, shut-off steps, and what counts as an emergency vs. morning job
  • Live coverage map: service coverage — 4,942 cities & towns across 50 states with live ETAs

Install

pip install emergency-plumbing-triage

Quick use

from emergency_plumbing_triage import classify_issue, get_checklist, estimate_cost

result = classify_issue("burst pipe with active flow I cannot stop")
print(result["level"])   # EMERGENCY
print(result["reason"])
print(get_checklist())   # first-5-minute steps

print(estimate_cost("overnight", hours=2.0))
# {'window': 'overnight', 'dispatch': (150, 350), 'hourly': (125, 400), 'total_low': 400, 'total_high': 1150}

Validate a dispatch request:

from emergency_plumbing_triage import validate_dispatch_request

validate_dispatch_request(zip_code="90210", phone="(888) 217-6399", psi=55)

CLI

python -m emergency_plumbing_triage --issue "sewage backing into tub" --window overnight --hours 2
python -m emergency_plumbing_triage --issue "slow drip in bucket, valve holds" --checklist

API

  • classify_issue(text) -> {level, reason, checklist} — EMERGENCY (active flow, sewage indoors, gas smell, no water), SAME_DAY, or ROUTINE.
  • get_checklist() -> [str] — shut main clockwise, kill power risk, drain pressure, contain + clear, document + call.
  • estimate_cost(window, hours) — windows: business, evening, overnight (also weekend), holiday. 2026 US benchmarks.
  • is_valid_zip(code), normalize_phone(us_phone), is_normal_pressure(psi), validate_dispatch_request(...).
  • get_service_coverage(), get_coverage_examples() — nationwide footprint from the live service coverage hub (4,942 cities, 50 states).

Live coverage examples

Dispatch windows vary by market — the service coverage hub lists every state page with its largest cities, and each city page breaks out emergency plumber, drain cleaning, and water heater repair with local costs and response notes:

  • Texas — Houston · San Antonio · Dallas
  • California — Los Angeles · San Diego · San Jose
  • Florida — Jacksonville · Miami · Tampa
  • New York — New York · Buffalo · Yonkers
from emergency_plumbing_triage import get_service_coverage

print(get_service_coverage())
# {'cities': 4942, 'states': 50, 'url': 'https://24hourplumberusa.com/locations', 'examples': [...]}

See the field guides that informed the defaults: 24hourplumberusa, plumbing services, and emergency plumbing.

Why this exists

Small dispatch teams and indie hackers keep re-implementing the same keyword triage + fee-table math. This packages the boring part so a side-project IVR, SMS bot, orinternal dashboard can triage consistently.

Built from public plumbing services and emergency plumbing triage notes; no affiliation required to use the code (MIT).

Metadata

Release files for emergency-plumbing-triage 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for emergency-plumbing-triage 0.2.1
File Size Uploaded Provenance Actions
emergency_plumbing_triage-0.2.1.tar.gz 10.8 kB Without provenance Details for emergency_plumbing_triage-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for emergency-plumbing-triage 0.2.1
File Interpreter ABI Platform Actions
emergency_plumbing_triage-0.2.1-py3-none-any.whl Python 3 none any Details for emergency_plumbing_triage-0.2.1-py3-none-any.whl

Total release size: 21.5 kB

Release files / emergency_plumbing_triage-0.2.1.tar.gz

Download URL emergency_plumbing_triage-0.2.1.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5a6d74855236edbf6b52fb8e75fe0c8fea20696a985b0f1c0eb9e578f0014c0d
BLAKE2b-256 checksum
How to use checksums
e5c252ea8d72d9efc420c81b12a0da7c7247ec9028016df5a4ad10f71650041f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / emergency_plumbing_triage-0.2.1-py3-none-any.whl

Download URL emergency_plumbing_triage-0.2.1-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b50ca564b1a38179d7b4a08d436dc0fe4c2f3fee4c8b21c3effba29ec67397b
BLAKE2b-256 checksum
How to use checksums
e8165524859d40911327cb429b8155e87cc629d69c2f664c4e735c3705574d59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Security for emergency-plumbing-triage 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page