---
name: "job_site_walkthrough_video_estimates"
description: "Film a contractor job site walkthrough that becomes the estimate: a one-pass shot list that captures every surface, measurement, and access problem, on-camera narration that names materials and quantities as they are filmed, stills pulled from the footage for the written quote, and a short client cut to send with the bid. Use when estimating a remodel, repair, or trade job from a site visit, when a second trip for missed measurements keeps happening, or when scope arguments start after a quote is sent."
metadata: { "includeInPrompt": true }
---

# Job Site Walkthrough Video Estimates

## Purpose
Turn one site visit into three things at once: the measurement record, the photo record, and the client-facing proof that the quote matches the house. The camera pass runs in estimate order, the narration states the quantity for each line as it is filmed, and every line in the written quote points back to a timecode and a still. When a client later says a surface was not in the price, or a crew member who never visited asks what a room looked like, the answer is in the footage, not in memory.

This skill covers residential and light commercial remodel, repair, and trade estimating walks. It does not cover listing video for selling a finished home (use real_estate_video for that), formal quantity surveying from drawings, or a safety inspection. Flags filmed on the walk are estimating notes, not code or safety findings.

Files that ship with this skill:
- `references/shot-list.md`: room by room checklist, access pass, and systems pass.
- `references/narration-and-takeoff.md`: the spoken formula for each quantity type, plus the worked remodel example.
- `assets/client-cut-outline.md`: the structure for the short client cut that ships with the bid.
- `assets/estimate-packet-checklist.md`: what goes in the packet before it is sent.
- `bin/walkthrough_plan.py`: generates the ordered shot list, a blank takeoff CSV, and an ffmpeg stills script for a job.

## Workflow

### 1. Prep before you leave
Confirm permission to record inside the home, who will be present, and how long you have. A walk that gets cut short loses the rooms at the end of the route, so ask for the full window up front.

Ask three questions before the visit, and write the answers where the estimator will see them:
- What does the client want changed in each room, in their words?
- What is explicitly not in this job? Get this early. Exclusions named on the walk are cheap. Exclusions argued after the quote are not.
- What year was the building built? If it was built before 1978 and paid work will disturb paint, the EPA Renovation, Repair, and Painting Rule applies in the United States. See step 6.

Kit for one person, one pass:
- Phone or camera that shoots 4K, fully charged, with free storage cleared before the visit. 4K is 3840 by 2160, about four times the pixels of 1080p, so a frame pulled as a still holds detail and can be cropped and still stay sharp.
- 3-axis gimbal if you have one. It stabilizes pitch, roll, and yaw and takes most walking shake out. Without one, shoot two-handed, elbows in, and walk at half speed.
- Tape measure and a laser measure. Use both on at least one long dimension per room and note if they disagree.
- A second audio source if the room is noisy: a clip-on mic on the person narrating beats the camera mic across a room.
- Flashlight, painter tape or sticky notes for marking, and a notebook as backup. Video fails. Notes are the fallback, not the system.

Run the planner before the visit and bring its output:
`python3 bin/walkthrough_plan.py --project "Project name" --rooms "Exterior and Access,Kitchen,Primary Bath" --outdir ./job-name`
It writes `shot-list.md` in walk order, `takeoff.csv` with one row per standard check, and `stills.sh` for pulling stills later.

### 2. Lock the route in estimate order
Walk outside in, in the order the estimate will be written: exterior and access first, then rooms in the order they will appear as sections in the quote, then systems (panel, shutoffs, attic or crawl access), then the close.

Rules for the route:
- One pass, no doubling back for footage. If you missed a shot, note the timecode gap and catch it on the deliberate second sweep in step 5, not by wandering.
- Shoot rooms in final quote order. Transcribing in order is fast. Reordering footage to match a quote written in a different order is where hours go.
- Start each room from the doorway. The doorway wide shot is the orientation frame for anyone watching later.

### 3. Shoot each room in four beats
Full detail is in `references/shot-list.md`. The short version, per room:

1. Wide: stand in the doorway, hold 3 seconds before moving, pan once, slowly. Say the room name and the client goal for the room.
2. Medium: walk the perimeter at half speed, camera at chest height, shutter at double the frame rate (at 30 fps, 1/60) for natural motion. Lock exposure and white balance per room so colors do not shift mid-room.
3. Detail: stop on every surface that gets a price. Hold each stop at least 3 seconds. A still pulled from a moving frame is blurry and useless in a quote, so the hold is what makes the stills in step 7 possible.
4. Measure on camera: see step 4.

Keep the master take long and plain. This is a record first and a client video second. The client cut in step 8 is edited from it, never shot separately.

### 4. Narrate the estimate while you film
Narration is the core method. Silent footage forces the estimator to guess what they were looking at. Narrated footage transcribes straight into takeoff rows.

Speak this formula for every priced item, in this order: location, item, material, quantity with unit, condition, status.

Example: "Kitchen, north wall cabinets, painted wood uppers, 12 linear feet, doors sticking, measured."

Quantity types, and how to state each one (full table in `references/narration-and-takeoff.md`):
- Count: doors, windows, fixtures, outlets. State the count and the locations: "three outlets, two on the east wall, one behind the range."
- Linear: trim, baseboard, cabinet runs, countertop runs, pipe and conduit runs. State length, and height or depth when price depends on it.
- Area: flooring, drywall, paint, tile, roofing. State length and width separately before the product, so the math can be checked: "floor, 14 by 11, 154 square feet."
- Volume: concrete, gravel, excavation. State length, width, and depth: "pad, 10 by 10 by 4 inches."

Discipline that keeps the narration usable:
- Read every measurement out loud twice, then film the tape or laser display for 2 seconds. If the audio and the display disagree later, the display wins and the row gets flagged.
- Spell any material name that could be misheard in transcription.
- Say "unknown" out loud when you cannot verify something, and name the follow-up: "Subfloor under the vinyl, unknown, check after tear-out, price as an allowance." Never guess a concealed condition into a firm line. Separate measured, assumed, and concealed rows in the takeoff. A concealed substrate is the classic case: the finish hides it, so the honest row is an allowance with the check named, not a firm quantity.
- Have the client confirm choices on camera when they make one: product, color, tile direction, what stays. A confirmed choice on the walk prevents the most common scope argument.

### 5. Film access and the problems that change the price
Price is set as much by access as by surfaces. Film all of it, even when the client is standing there and it feels obvious:
- Street, parking, driveway, and where materials will be staged.
- The full path from street to work area: gate widths, door widths, stairs, turns, elevator if there is one. Measure narrow points and say the numbers.
- Where debris goes: dumpster spot, distance to carry, stairs on the carry route.
- Working constraints: occupied rooms next to the work, pets, alarm, parking rules, hours the building allows noisy work.
- Existing damage next to the work zone, filmed before anyone touches it: cracks, stains, worn floors on the carry path. This protects both sides if damage is claimed later.

Second sweep: after the last room, walk the route once more, fast, with the shot list in hand. Check off any missed check. This sweep is planned, so it takes minutes. An unplanned return trip takes half a day.

### 6. Flag hazards and regulated work on camera, without diagnosing
Film and narrate flags. Do not pronounce on code, structure, or safety beyond what you can see, and do not disturb a suspect material to check it.
- Year built and paint: for pre-1978 housing and child-occupied facilities in the United States, paid work that disturbs paint falls under the EPA RRP Rule. Firm certification is required, even for sole proprietorships, and the minor repair exception is 6 square feet or less per room inside or 20 square feet or less outside. Window replacement and demolition of painted surfaces are covered at any size. Unless documentation shows the paint is not lead based, the rule requirements apply. Narrate: "Built 1965, paint disturbance over the minor repair limit, RRP job, certified renovator required." Price the containment and paperwork, or state it as an exclusion with the reason. Verify current requirements at the EPA RRP page before quoting regulated work.
- Electrical: film the panel, its labeling, and any visibly damaged wiring in the work zone. Note it as an unknown for a licensed electrician if it is outside your trade.
- Water: film stains, soft spots, and shutoff locations. State what is visible and what is concealed.
- Access hazards on the carry route: steep stairs, low clearances, trip hazards. These change labor, so they belong in the estimate notes.
If you see a condition that looks unsafe to be near, leave and say so. The walk can be rescheduled. No estimate is worth filming from an unsafe spot.

### 7. Convert the footage the same day
Memory decays fast and the narration only pays off if it becomes rows while the visit is still fresh.

1. Transcribe the narration, by hand or with a transcription tool, keeping timecodes at least per room.
2. Fill `takeoff.csv`: one row per priced item, with line ID, room, timecode, item, unit type, dimensions, quantity, material, condition, and status (measured, assumed, or concealed). Every row must trace to a timecode. A row with no timecode is a row nobody can verify.
3. Pull the stills. For each row that will appear in the written quote, grab the held detail frame:
`ffmpeg -ss 00:01:12 -i walkthrough.mp4 -frames:v 1 -q:v 2 kitchen_cabinets.jpg`
Placing `-ss` before `-i` seeks fast, `-frames:v 1` takes exactly one frame, and `-q:v 2` writes a high quality JPEG. Or fill the timecodes into the generated `stills.sh` and run it. Name stills by line ID so the quote, the sheet, and the image folder agree.
4. Build the estimate from the sheet, not from memory. Add waste, labor, and access time as their own lines where they matter, rather than padding a material quantity where nobody can see it.
5. Write the exclusions and the unknown list into the quote itself: what is not included, and what is priced as an allowance pending a named check. A change order later should be a written amendment with description, reason, itemized cost impact, schedule impact in days, and both signatures before the changed work starts. Say that process out loud before the job is sold, so the first change is not the first time the client hears it.

### 8. Cut the client copy and send the packet
From the master, cut a short client version: exterior and access in a few seconds, then each room as wide plus best detail, with the client-confirmed choices left in and the measuring left mostly out. Cut it to the shortest length that still shows every room in the quote and nothing that is not in the quote. If a room is in the video and not in the price, either price it or cut it. That mismatch is where scope arguments start.

Send one packet (checklist in `assets/estimate-packet-checklist.md`): the written quote with line IDs, the stills named by line ID, the client cut, and the exclusions and allowances page. Keep the master footage, the full takeoff sheet, and the narration transcript in the job file. Retention call: keep them at least as long as your contract and local rules require for the job records, and longer if a dispute window is still open. State your retention period in the packet cover note rather than assuming one.

## Output Contract
Every job produces, in this order:
1. The master walkthrough video, filmed in estimate order, with the slate and the unknown list read out loud.
2. The completed takeoff sheet: every row has a line ID, room, timecode, unit type, dimensions, quantity, material, condition, and a status of measured, assumed, or concealed.
3. The stills folder: one still per quoted line that shows a surface or condition, named by line ID.
4. The written quote, built from the sheet, with exclusions and allowances stated in the quote.
5. The client cut and the packet cover note, sent with the quote.

## Operating Rules
1. One pass in estimate order. Reordering in the office is the cost this method exists to remove.
2. No silent surfaces. If a surface gets a price, it gets a held detail shot and a spoken quantity. If it has neither, it does not get a firm price.
3. Measured, assumed, and concealed never share a row status. Concealed conditions are allowances with a named check, never firm quantities presented as fact.
4. Never invent a dimension, a material, or a condition the footage does not show. If it is not in the video or the notes taken on site, mark it unknown.
5. The client cut shows only what the quote includes. Video of unpriced work sent with a bid reads as a promise.
6. Get permission to record, and stop recording in any space the client asks you to skip. Note the skipped space as not surveyed in the quote.
7. Regulated work gets priced from current primary sources, not from memory. Check the EPA RRP page for lead work, and local permit and licensing rules for the job location, before the quote goes out.
8. This skill is estimating practice, not legal, code, or safety advice. Flag conditions outside your trade for the licensed trade that owns them, and say so in the quote notes.
