From 8ec6899fc7392d7c761b28ed64e0ad7b0b0d2cc8 Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Mon, 25 May 2026 12:33:48 -0700 Subject: [PATCH] sync: auto-sync from GURU-5070 at 2026-05-25 12:33:44 Author: Mike Swanson Machine: GURU-5070 Timestamp: 2026-05-25 12:33:44 --- .claude/commands/syncro-emergency-billing.md | 133 +++++++++++++++++++ .claude/scheduled_tasks.lock | 1 + 2 files changed, 134 insertions(+) create mode 100644 .claude/commands/syncro-emergency-billing.md create mode 100644 .claude/scheduled_tasks.lock diff --git a/.claude/commands/syncro-emergency-billing.md b/.claude/commands/syncro-emergency-billing.md new file mode 100644 index 0000000..b449ee2 --- /dev/null +++ b/.claude/commands/syncro-emergency-billing.md @@ -0,0 +1,133 @@ +# Syncro Emergency / After-Hours Billing + +Rules for applying emergency or after-hours labor premiums in Syncro tickets. + +--- + +## Definitions + +| Term | Meaning | +|---|---| +| **Normal hours** | 9:00 AM – 5:00 PM, Monday–Friday | +| **After-hours** | Before 9 AM or after 5 PM on weekdays, or any time on weekends/holidays | +| **Emergency** | Customer explicitly requested emergency or same-day rates | +| **Same-day** | Work done same day it was requested, during normal hours — only billable as emergency if customer requests it | + +--- + +## When to Apply the Premium + +**Claude-created tickets:** Apply emergency premium **only if explicitly requested** by the customer or instructed by Mike/Howard. + +**Suggest it** (do not apply automatically) when: +- Work is performed after-hours or on a weekend +- Ticket notes indicate the customer called in urgently outside normal hours + +Do not apply for same-day work unless the customer asks for the emergency rate. + +--- + +## Ticket Subject Prefix + +| Condition | Prefix | +|---|---| +| Customer explicitly requested emergency rates | `Emergency -` | +| Work performed outside normal hours (not customer-requested) | `Afterhours -` | +| Normal hours, no emergency request | No prefix | + +Examples: +- `Emergency - Servers down, HP ProLiant host powered off` +- `Afterhours - Printer not connecting after office hours` + +--- + +## Billing Method — Two Scenarios + +### Step 1: Determine if Customer is a Block Customer + +Check customer notes in Syncro for "block hours," "prepay hours," or "prepaid." Block customers have invoices with $0.00 totals and line item descriptions containing "Prepay Hours." + +Known block customers as of 2026-05-25: Valley Wide Plastering (VWP), Dataforth Corporation, Cascades Retirement Properties. Always verify — blocks can be exhausted or moved to QB tracking. + +--- + +### Scenario A — Block / Prepaid Hours Customer + +Use **two line items**, both using the same standard labor product as the non-emergency work: + +| Line | Product | Qty | Description | +|---|---|---|---| +| 1 | Standard labor product (see table below) | Actual hours worked | Description of work performed | +| 2 | Same standard labor product | 0.5 × line 1 qty | `Emergency/Same day rate` | + +**Example:** 1 hour of emergency remote business on a block account: +- Line 1: `Labor - Remote Business` (1190473) — 1.0 hr — "Emergency remote - Servers down, powered on via iLO" +- Line 2: `Labor - Remote Business` (1190473) — 0.5 hr — "Emergency/Same day rate" + +Reference: Invoice 67594 (VWP, 2026-05-12), Ticket #32269. + +--- + +### Scenario B — Non-Block / Direct Billing Customer + +Use a **single emergency labor product** for the full hours worked: + +| Customer type | Product | Product ID | Rate | +|---|---|---|---| +| Business | Labor - Emergency or After Hours Business | 26184 | $262.50/hr | +| Residential | Labor - Emergency or After Hours Residential | 42584 | $202.50/hr | + +**Example:** 4 hours of emergency business work, direct billing: +- Line 1: `Labor - Emergency or After Hours Business` (26184) — 4.0 hr + +Reference: Ticket #32188 (VWP, direct billing, 2026-04-22). + +--- + +## Standard Labor Products (Reference) + +Standard non-block business rate: **$175/hr**. Emergency premium is 50%, so $175 × 1.5 = $262.50 (product 26184). + +| Service type | Product | Product ID | Rate | Notes | +|---|---|---|---|---| +| Remote Business | Labor - Remote Business | 1190473 | $175.00/hr | Non-block cash billing | +| Onsite Business | Labor - Onsite Business | 26118 | $175.00/hr | Same rate as remote | +| In-Shop Business | Labor - In Shop Business | 573881 | $175.00/hr | | +| Block/Prepaid (any type) | Labor - Remote Business | 1190473 | $0.00 | Price = $0; draws from block in hours | +| Remote Residential | Labor - Remote Residential | 1190471 | $100.00/hr | | + +--- + +## Straddle (Mixed Normal + Emergency Hours) + +If work begins during normal hours and continues into after-hours (or vice versa): +- Ask: "Does the after-hours portion warrant splitting the labor?" (brief overlap usually doesn't) +- If splitting: bill normal hours on standard product, after-hours/emergency portion on the appropriate emergency product or as a second prepay line + +--- + +## Products NOT to Use + +| Product | ID | Why not | +|---|---|---| +| LLF - Remote Labor (Emergency/Afterhours) | 145022 | Legacy contract product, no longer applicable | +| Fee - On-Site Business Emergenc | 45871 | Not in current use — do not add without explicit instruction | +| Fee - On-Site Residential Emerg | 45870 | Not in current use — do not add without explicit instruction | + +--- + +## Quick Decision Tree + +``` +Was emergency rate explicitly requested by customer? + YES → Apply premium (see billing method below) + NO → Is work happening after-hours or on a weekend? + YES → Suggest emergency rate to Mike/Howard; do not apply automatically + NO → Bill at standard rates, no prefix +``` + +``` +Is customer a block/prepaid customer? + YES → Two line items: actual hrs (standard product) + 0.5x hrs (same product, "Emergency/Same day rate") + NO → One line item: emergency product (26184 business / 42584 residential) for full hours +``` diff --git a/.claude/scheduled_tasks.lock b/.claude/scheduled_tasks.lock new file mode 100644 index 0000000..ad0bfef --- /dev/null +++ b/.claude/scheduled_tasks.lock @@ -0,0 +1 @@ +{"sessionId":"2158f2e7-8168-4859-b2cf-e0b05d6517b2","pid":18624,"acquiredAt":1779727871169} \ No newline at end of file