sync: auto-sync from HOWARD-HOME at 2026-04-23 13:34:46
Author: Howard Enos Machine: HOWARD-HOME Timestamp: 2026-04-23 13:34:46
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
- [Bypass Permissions Setting](feedback_bypass_permissions_setting.md) - Set permissions.defaultMode to bypassPermissions in settings.json on all machines
|
||||
- [365 Remediation Tool](feedback_365_remediation_tool.md) - Always means Graph API app fabb3421, not CIPP
|
||||
- [Ollama Tier-0 Routing](feedback_ollama_tier0_routing.md) - Route drafts/summaries/classifications through Ollama (qwen3:14b). Mike designed ClaudeTools this way — not optional.
|
||||
- [Syncro Emergency Billing](feedback_syncro_emergency_billing.md) — Emergency = 1.5× multiplier, not additive. Branch by `customer.prepay_hours`: no-prepaid → `26184` at actual hrs; prepaid → `26118` at hrs×1.5. Never stack. Always set `price_retail`.
|
||||
|
||||
## Machine
|
||||
- [ACG-5070 Workstation Setup](reference_workstation_setup.md) - Windows 11 Pro clean install 2026-03-30, replaced CachyOS. All tools installed.
|
||||
|
||||
23
.claude/memory/feedback_syncro_emergency_billing.md
Normal file
23
.claude/memory/feedback_syncro_emergency_billing.md
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: Syncro emergency/after-hours billing — check prepay_hours first
|
||||
description: Emergency labor is 1.5× multiplier, not additive. Branch by customer.prepay_hours — wrong branch doubles or undercharges. Applies to every /syncro bill for emergency work.
|
||||
type: feedback
|
||||
---
|
||||
|
||||
**Rule:** Before adding any Emergency/after-hours labor line item on a Syncro ticket, `GET /customers/<id>` and read `prepay_hours`.
|
||||
|
||||
- If `prepay_hours == 0` (no prepaid block): use product `26184` (Labor - Emergency/After Hours) at quantity = actual hours. The $262.50/hr rate already has the 1.5× multiplier baked in.
|
||||
- If `prepay_hours > 0` (customer has a prepaid block): use product `26118` (Labor - Onsite) at quantity = actual hours × 1.5. Prepaid blocks debit by QUANTITY, not dollars, so we bump qty instead of swapping to the Emergency product.
|
||||
|
||||
Never stack `26118` + `26184` for the same hour of work. Pick one path based on the prepaid state.
|
||||
|
||||
**Why:** Learned on ticket #32203 (Desert Auto Tech) 2026-04-23. Howard asked to bill "1 hour onsite + 1 hour emergency onsite." I posted both as separate additive line items and the invoice came out at $437.50 when the correct bill for 1 actual hour of emergency work was $262.50. Winter caught it and explained the rule: "the goal is to have it bill at time and a half." The Emergency product = time-and-a-half by rate; prepaid accounts = time-and-a-half by quantity. Swapping products AND multiplying quantity double-counts.
|
||||
|
||||
**How to apply:**
|
||||
- Every `/syncro bill` for emergency/after-hours work: check `prepay_hours` BEFORE choosing the product. Do not shortcut this.
|
||||
- For a 2-hour emergency job:
|
||||
- Non-prepaid customer → one line, 2.0 hrs × `26184` → $525.00
|
||||
- Prepaid customer → one line, 3.0 hrs × `26118` → 3 hours debit from block
|
||||
- Always set `price_retail` explicitly on `add_line_item`. The old "omit and let Syncro auto-calc" guidance was wrong — the rate does not populate from the product config, and the invoice will post at $0 if `price_retail` is missing. Fetch the current rate with `GET /products/<id>`.
|
||||
- Never let a customer-facing invoice post without verifying `.invoice.total` matches the expected `qty × price_retail`.
|
||||
- Full rules and examples live in `.claude/commands/syncro.md` under the "Labor product IDs" section.
|
||||
Reference in New Issue
Block a user