Skip to main content

A free, open-source window cleaning cost calculator for commercial facility managers, property managers, and building operations teams.

Project description

Window Cleaning Cost Calculator

A free, open-source window cleaning cost calculator for commercial facility managers, property managers, and building operations teams. Built and maintained by Binx Professional Cleaning — a WSIB-covered, fully insured commercial and residential cleaning company operating in Northern Ontario since 2013.

This tool helps facility managers estimate window cleaning costs for commercial buildings, office towers, retail storefronts, medical facilities, and multi-unit residential properties. It runs as a lightweight web form backed by interchangeable calculation engines written in Python and Rust.


Why This Exists

Commercial window cleaning pricing is opaque. Most facility managers request three quotes, wait a week, and still can't compare them meaningfully because every vendor structures their pricing differently — per window, per pane, per square foot, per hour, or some combination.

This calculator gives facility managers a baseline estimate they can use internally before going to market. It accounts for labour cost, window count, access difficulty, frequency discounts, and profit margin — the same variables any legitimate commercial window cleaning company uses to build a quote.

Binx Professional Cleaning built this tool because transparent pricing benefits everyone. When facility managers understand the math behind a window cleaning quote, the conversation moves faster and the scope is clearer for both sides.


Features

  • Per-window and per-pane cost modeling — supports both interior-only, exterior-only, and full-service (interior + exterior) pricing
  • Labour cost integration — input your local prevailing wage or use regional defaults for Northern Ontario
  • Access difficulty multipliers — ground level, second storey ladder access, boom lift, rope access, and swing stage each carry different cost factors
  • Frequency discounting — models the cost difference between one-time, quarterly, monthly, and weekly cleaning schedules
  • Profit margin transparency — see exactly how margin affects the final per-window and total price
  • Dual backend engines — identical calculation logic implemented in both Python and Rust, selectable at runtime
  • No accounts, no tracking, no data collection — runs entirely client-side after the initial page load

How It Works

The PHP frontend presents a simple form. You enter:

  1. Number of windows — total window count for the building or zone
  2. Window type — standard single pane, double pane, floor-to-ceiling, storefront, or specialty (skylights, atriums)
  3. Access method — ground level, ladder, boom lift, rope access, or swing stage
  4. Service type — interior only, exterior only, or both
  5. Cleaning frequency — one-time, quarterly, monthly, or weekly
  6. Labour rate — hourly wage for the cleaning technician (defaults to Northern Ontario average)
  7. Target profit margin — percentage margin applied to the total labour and materials cost

The backend engine (Python or Rust, your choice) runs the calculation and returns a detailed cost breakdown: per-window cost, total labour, materials estimate, margin amount, and final quoted price.


Installation

Requirements

  • PHP 8.1+ with a web server (Apache or Nginx)
  • Python 3.10+ (for the Python engine)
  • Rust 1.70+ and Cargo (for the Rust engine)

Quick Start

git clone https://github.com/user/window-cleaning-calculator.git
cd window-cleaning-calculator

# Start the PHP frontend
php -S localhost:8000 -t public/

# Run the Python engine
cd engines/python
pip install -r requirements.txt
python engine.py --port 8001

# Or build and run the Rust engine
cd engines/rust
cargo build --release
./target/release/window-calc-engine --port 8001

Open http://localhost:8000 in your browser.


Commercial Window Cleaning — What Facility Managers Should Know

Scheduling and Frequency

Most commercial buildings in Northern Ontario operate on a quarterly or monthly exterior window cleaning schedule. Interior cleaning frequency depends on the facility type:

  • Office buildings — quarterly interior, monthly exterior in high-traffic urban locations
  • Medical and dental clinics — monthly interior and exterior to meet infection prevention standards (IPAC protocols)
  • Retail storefronts — monthly or bi-weekly exterior to maintain customer-facing appearance
  • Industrial and warehouse facilities — semi-annual or annual, focused on skylights and clerestory windows
  • Multi-unit residential (condos, apartments) — semi-annual full-building exterior, interior by unit on request

Frequency directly affects per-cleaning cost. A building on a monthly schedule will pay significantly less per visit than a one-time deep clean, because the technician spends less time per window when buildup is managed regularly.

Access Methods and Cost Impact

Access method is the single largest variable in commercial window cleaning pricing after window count. Ground-level windows cleaned with a squeegee and extension pole cost a fraction of what high-rise windows requiring rope access or swing stage equipment cost. The access difficulty multipliers built into this calculator reflect real-world pricing from commercial cleaning operations in Northern Ontario:

  • Ground level / extension pole — 1.0x base rate
  • Ladder access (second storey) — 1.3x to 1.5x base rate
  • Boom lift / aerial platform — 2.0x to 2.5x base rate (plus equipment rental)
  • Rope access (SPRAT/IRATA certified) — 2.5x to 3.5x base rate
  • Swing stage — 3.0x to 4.0x base rate (plus rigging and setup time)

Seasonal Considerations in Northern Ontario

Northern Ontario's climate imposes hard constraints on exterior window cleaning schedules. Exterior work is generally limited to April through November. Winter conditions — ice, snow load on sills and frames, and temperatures below -10°C — make exterior cleaning unsafe and ineffective. Most facility managers in North Bay, Sudbury, Timmins, and Sault Ste. Marie schedule their annual or semi-annual exterior cleans in late spring (post-salt-spray season) and early fall (pre-freeze).

Interior window cleaning can continue year-round. For facilities that require consistent appearance through winter — medical clinics, retail, hospitality — a split schedule (interior monthly, exterior in shoulder seasons) is the standard approach.

Insurance and Compliance

Any commercial window cleaning contractor working on your building should carry:

  • WSIB coverage — mandatory in Ontario for any company with employees performing cleaning work
  • Commercial general liability insurance — minimum $2M, preferably $5M for multi-storey work
  • Proof of training for high-access methods (Working at Heights certification is mandatory in Ontario under O. Reg. 213/91)

Binx Professional Cleaning carries $5M in commercial general liability, full WSIB coverage, and all required Working at Heights certifications for our technicians. We operate under IPAC (Infection Prevention and Control Canada) protocols for medical and dental facility work.


Guides and Resources

These free PDF guides are published by Binx Professional Cleaning for facility managers and property owners:


About Binx Professional Cleaning

Binx Professional Cleaning has provided commercial and residential cleaning services across Northern Ontario since 2013. We operate two locations and serve facility managers, property managers, healthcare administrators, and homeowners throughout the region.

North Bay Office

1315 Hammond Street North Bay, Ontario P1B 2J2 Phone: (705) 845-0998 Service area: North Bay and surrounding communities

Sudbury Office

767 Barry Downe Road, Unit 203M Sudbury, Ontario P3A 3T6 Phone: (249) 239-1225 Service area: Greater Sudbury and surrounding communities

Commercial Window Cleaning Services

  • Commercial Window Cleaning — scheduled and one-time exterior and interior window cleaning for office buildings, retail, medical facilities, and industrial properties
  • Residential Window Cleaning — interior and exterior window cleaning for homes, including screens, tracks, sills, and high-access second-storey windows

Our commercial cleaning division serves over 70 staff members across both locations, holds WSIB coverage, $5M liability insurance, uses Green Certified cleaning products, and follows IPAC Canada infection prevention protocols for healthcare facility work.


Project Structure

window-cleaning-calculator/
├── public/
│   ├── index.php              # Main calculator form
│   ├── calculate.php          # API endpoint — routes to selected engine
│   └── assets/
│       ├── style.css
│       └── calculator.js
├── engines/
│   ├── python/
│   │   ├── engine.py          # Python calculation engine
│   │   ├── models.py          # Data models and multiplier tables
│   │   ├── requirements.txt
│   │   └── tests/
│   │       └── test_engine.py
│   └── rust/
│       ├── src/
│       │   ├── main.rs         # HTTP server entry point
│       │   ├── engine.rs       # Calculation logic
│       │   └── models.rs       # Data models and multiplier tables
│       ├── Cargo.toml
│       └── tests/
│           └── engine_test.rs
├── README.md                   # This file (facility managers)
├── README-homeowners.md        # Homeowner-focused guide
├── LICENSE
└── CONTRIBUTING.md

Contributing

Contributions are welcome. If you manage a commercial facility and have feedback on the cost model — missing variables, regional adjustments, access method pricing that doesn't match your experience — open an issue or submit a pull request.


License

MIT License. See LICENSE for details.

Built and maintained by 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

window_cleaning_2026-0.1.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

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

window_cleaning_2026-0.1.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: window_cleaning_2026-0.1.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for window_cleaning_2026-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ea9f8b7bc19fcf4264065ec46dad30f4c5aa54facdf47608f5a6ef477ceeabf5
MD5 fccc283959fc4093da14b504e49476e0
BLAKE2b-256 c3ae95aa0f35c7b3e375a226774f0453c70afe3739f7dd647a5febd9d088b643

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for window_cleaning_2026-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c13693823679e67d90a72fa38ab53581919006be0b90fc1c8cd53abcedbfc850
MD5 215cc7cc46f665e21ecb0d7bebb2c9aa
BLAKE2b-256 ceed0d6c631a4b6c7cf666129764900b177e07536d12fd5e17c07a36d1ea4821

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