bidflow-electrical-estimatorlisted
Install: claude install-skill riteshkew/yc-skills
# Workflow
When this skill triggers, follow these steps in order.
## Step 1 — Parse the scope into quantities
Read the project description carefully and extract a quantity takeoff table:
| Item | Quantity | Unit |
|------|----------|------|
| Receptacles | N | each |
| Switches | N | each |
| Fixtures | N | each |
| Conduit | N | linear ft |
| Panel(s) | N | each |
| Breakers | N | each |
| Boxes | N | each |
| Cable / wire | N | ft or rolls |
| Consumables | N | packs |
Rules for this step:
- Convert linear footage to conduit sticks (divide by 10 for 10ft sticks, round up).
- Derive outlet box count from device + fixture count (one box per device/fixture).
- Note the stated labor rate and markup percentage from the scope; use defaults ($85/hr, 15% markup) if not provided.
- Flag any scope items that have no matching SKU in the price list — list them as `"sku": "UNLISTED"` with `unit_cost: 0` and a note.
## Step 2 — Match each quantity to a SKU in the price list
Load `resources/prices.csv`. For each takeoff item:
1. Search for the best-matching row by description keywords (wire gauge, device type, conduit size, amperage).
2. Record the matched `sku`, `unit`, `unit_cost`, and `labor_hours` (per-unit labor from the price list).
3. If multiple SKUs could match, prefer the one whose unit matches the takeoff unit exactly.
4. If no SKU matches, record `sku: UNLISTED` and set both `unit_cost` and `labor_hours` to 0 so arithmetic is not corrupted.
## Step 3 — Compute materia