How the T&M Override (Time & Material Override) works in the Ganarpro Cleaning Calculator 2025

Here’s exactly how the T&M Override (Time & Material Override) works in the Ganarpro Cleaning Calculator 2025 code.


💡 Concept

T&M (Time & Material) lets you bill by man-hour instead of square footage or unit rates.
When you turn on the override, the calculator ignores all normal pricing models (Market-Win, Lean, Profit-Heavy) and instead bases the total on hours × hourly bill rate — plus any enabled add-ons (like windows or pressure wash).


⚙️ How It Works in Code

Inside the main calculation block (calc = useMemo(...)):

  1. Labor hours are already computed from the project’s size, productivity, and phases. const laborHours = roughHrs + finalHrs + fluffHrs;
  2. T&M settings come from: const [manHour, setManHour] = useState({ enabled: false, bill_rate_per_hour: 65, apply_to_selected: false, override: false, manual_hours: 0 });
  3. When T&M is enabled, the calculator checks if the user turned on the “Use manual hours” override: const tmHours = (manHour.enabled && manHour.override && isFinite(manHour.manual_hours)) ? Math.max(0, manHour.manual_hours) : laborHours;
    • If override = true, it uses the user-entered manual hours.
    • If override = false, it uses the automatically computed labor hours.
  4. Then it computes a Man-Hour Total: const manHourTotal = (tmHours * manHour.bill_rate_per_hour) + pressureCost + flooringCost + unitsBathsCost + unitsMixCost + windowCost; That means even under T&M, all add-ons still count.
  5. If the user checks “Use Man-Hour total as Selected Bid”, this replaces the standard bid: if (manHour.enabled && manHour.apply_to_selected) { selectedBid = manHourTotal; }

🧮 Example

Say your standard Lean price is $14,000

  • You enable T&M
  • Set bill rate = $65/hr
  • Override = ON
  • Manual hours = 180
    Then:
T&M Total = 180 × $65 = $11,700

(+ any window, pressure, or flooring costs)

If “Use Man-Hour total as Selected Bid” is checked, the Selected Bid field will now show $11,700 instead of the $14,000 Lean price.


✅ Summary

SettingEffect
T&M EnabledActivates hourly pricing mode
Manual Hours OverrideLets you replace calculated hours with your own
Apply to Selected BidMakes T&M total override all standard pricing models

Would you like me to explain how to combine T&M with recurring janitorial mode (since those two can also interact under certain flags)?

Scroll to Top