Holiday Lights Estimate Wizard
Use the Holiday Lights Estimate Wizard to design holiday lighting proposals with visual design tools, zone mapping, and contract pricing.
Holiday Lights Estimate Wizard
The Holiday Lights Estimate Wizard combines visual design tools with automated pricing. You trace gutter lines on satellite or street view imagery, assign lighting zones, and generate a proposal with installation, materials, and removal costs.
Step 1 -- Customer & Property
Enter the customer and property information.
Customer Type
Select Residential or Commercial at the top of the form. This determines the pricing tier and proposal template.
Client Details
Search for an existing client or enter new information.
| Field | Description |
|---|---|
| Customer Name | Full name of the homeowner or business contact |
| For proposal delivery | |
| Phone | For SMS delivery |
| Address | Google Places autocomplete |
| City / State / ZIP | Auto-filled from address selection |
Click Next to continue.
Step 2 -- Design & Quote
This step has three tabs: Design Canvas, Bundle, and Quote Preview.
Tab 1 -- Design Canvas
The design canvas is where you trace light lines and define zones on the property.
Canvas Views
The left panel has three canvas tabs:
| Tab | What It Shows |
|---|---|
| Satellite | Aerial view of the property from above |
| Street View | Ground-level view of the front of the property |
| Property Photo | Upload a customer photo of the home |
Switch between tabs to trace lines from different angles.
Drawing Tools
Use the drawing tools to trace gutter lines, mark zones, and place light positions on the canvas.
- Gutter Line Tool -- click to place points along the roofline. The system measures the total linear footage.
- Zone Tool -- draw enclosed areas for accent lighting, bushes, or ground features.
- Light Placement -- mark individual fixture locations for spotlights or ground stakes.
Color Picker
Select the light color for each line or zone. Options include:
- Warm white
- Cool white
- Multi-color
- Red
- Green
- Blue
- Custom (enter hex code)
AI Measurement
Click Measure with AI to let the system estimate linear footage from a property photo. Upload a clear photo of the home, and the AI traces the gutter lines and returns measurements.
AI measurement works best with:
- Clear, well-lit photos
- Unobstructed views of the roofline
- Standard residential architecture
The AI measurement tool is an authenticated office-side action. The signed-in team member needs Holiday Lights manage, Estimates create, or AI access before CE Pro will call the measurement service.
Street View image loading now also runs through authenticated internal map routes. That means the signed-in teammate needs estimate-view access, and CE Pro prefers GOOGLE_MAPS_SERVER_API_KEY for those requests. If the dedicated server key is missing, the office environment falls back to NEXT_PUBLIC_GOOGLE_MAPS_API_KEY. If that public Maps key is browser-only, referrer-restricted, or missing Street View access, the design canvas keeps the plain-language unavailable message instead of falling through to a misleading address or image-load error.
For complex rooflines, trace manually for better accuracy.
Design Summary Panel
The right panel updates in real time as you draw. It shows:
| Metric | Description |
|---|---|
| Linear Feet | Total length of all traced lines |
| Zones | Number of defined lighting zones |
| Color Breakdown | Footage per color selection |
| Mini Light Strands | Number of strands needed (calculated from linear feet) |
| Roof Pitch | Flat, Standard, or Steep -- affects installation pricing |
| Unit Price per Foot | Your configured rate |
| Subtotal | Linear feet multiplied by unit price |
Tab 2 -- Bundle
Link the holiday lights estimate to an existing power wash estimate for combined pricing.
How Bundling Works
- Select an existing power wash estimate for the same customer. The system searches by customer name and address.
- The combined price appears with the bundle discount applied.
- Enter the Bundle Discount amount (percentage or dollar value).
Bundling a power wash with holiday lights increases the average ticket value and gives the customer a reason to book both services at once.
Tab 3 -- Quote Preview
The quote preview shows exactly what the customer will see.
Customer Info
Name, email, phone, and property address.
Design Details
- Linear feet
- Number of zones
- Colors used
- Roof pitch
Pricing Breakdown
| Line Item | Description |
|---|---|
| Installation | Per-foot rate multiplied by total linear feet |
| Mini Lights | Cost of light strands |
| Removal | Included if a 3-year contract is selected |
| Subtotal | Before discount and tax |
| Bundle Discount | Applied if a power wash is linked |
| Tax | Based on your configured tax rate |
| Total | Final price |
Contract Term
Select between two options:
- 1-Year Contract -- single-season installation and removal.
- 3-Year Contract -- locked pricing for three seasons. Removal costs are included in the annual price.
If your office uses the AI estimate-review tools on a holiday lights quote, the nearby-comparison benchmark now follows the first-year annual contract price when it exists. That keeps the review aligned with what the customer would actually pay for the selected contract instead of comparing an annual contract against install-only historical subtotals.
Proposal Media
Attach visual materials to the proposal:
- Photos -- property photos used during the design.
- Mockups -- renderings of the home with lights applied.
- Installation Blueprints -- annotated diagrams for the install crew.
The customer sees these attachments when they open the proposal link.
When the wizard creates the paired holiday-lights sidecar for a bundled residential estimate, CE Pro now keeps the follow-up client-link update scoped to the same workspace that created the quote. That prevents cross-workspace retry or rollback paths from touching the wrong holiday-lights record.
AI Mockup Guardrails
Mockup generation is an authenticated office-side action. The signed-in teammate must have Holiday Lights manage permission before CE Pro will call the AI image editor.
CE Pro also applies two protections before sending a mockup request:
- Uploaded source images must be
5 MBor smaller. - Each teammate is rate-limited to a small burst of mockup generations per minute.
These guardrails help prevent accidental spend spikes and keep the tool available for active estimators.
Saving and Sending
The same action buttons appear at the bottom of the screen regardless of which tab is active.
| Button | What It Does |
|---|---|
| Save Draft | Saves the estimate without sending |
| Preview PDF | Opens a PDF preview of the full proposal |
| Send Estimate | Opens the send modal |
Send Modal
Click Send Estimate to open the same shared review-and-send modal used by the other estimate and proposal wizards.
The subject line, email body, and SMS body are pre-filled. Edit them if needed. For SMS, the character counter shows your message length against the 160-character limit.
Click Confirm & Send. CE Pro now confirms the holiday-lights email and text send before it reports success back to the office, and the admin quote header uses that same shared modal instead of bypassing the review step with a direct-send button.
- If the send succeeds, the estimate moves to Sent and the office gets a success confirmation with the destination email address.
- If the email send fails, the wizard keeps the estimate retriable instead of silently claiming success.
- After the first successful send, the same header action becomes Resend Proposal so the office can send the holiday-lights email again without rebuilding the quote.
The matching View Public Page action now follows that same live customer-link path too. If the linked estimate already has a shared quote token, the office preview opens the shared /quote/[token] page; otherwise CE Pro falls back to the seasonal portal URL instead of a tokenless estimate link that would open in read-only mode.
- If the client has no phone number on file, or if SMS delivery is unavailable, the email still sends and the office sees a warning explaining why the text message did not go out.
Holiday-lights sends now stay on the seasonal delivery path inside the shared send module. That keeps the outgoing email and SMS pointed at the holiday-lights workflow instead of falling back to the standard residential estimate sender, while the linked shared estimate workspace records the send history and sent quote event from the same send completion path.
When a linked holiday-lights estimate already has a persisted shared public quote token, the delivered email and SMS now prefer that shared /quote/[token] link first and only fall back to the older holiday-lights portal URL if the shared quote link is unavailable. That keeps seasonal sends aligned to the same durable quote-core public link model the other migrated estimate types already use.
When a customer opens that holiday-lights portal from the delivered quote link, CE Pro now runs the same shared quote-core viewed-event bookkeeping there too. The latest open holiday-lights quote for that customer records the public portal view back into the linked estimate workspace instead of leaving the seasonal portal outside the shared send/view history.
That same seasonal view bridge now also runs when a customer opens the shared /quote/[token] page for a holiday-lights quote. Shared public quote links still render from the linked estimate workspace, but the underlying holiday-lights source quote now records its own viewed timestamp and seasonal pipeline move from that same open instead of only the linked estimate seeing the activity.
The first holiday-lights customer open now also advances the source seasonal quote from Sent to Viewed instead of only stamping viewed_at. That keeps viewed-status filters, dashboard counts, and seasonal reporting aligned with the first actual customer open.
Once a seasonal quote has been viewed, the office can still resend it normally. CE Pro now treats Viewed holiday-lights quotes as resendable proposal records instead of blocking delivery after the first customer open.
Shared /quote/[token] opens now record as shared quote opens in the holiday-lights sales history instead of being mislabeled as portal-only opens, which keeps the seasonal activity trail aligned with the public path the customer actually used.
Holiday-lights draft saves and status changes now run through the same shared quote-core service layer too. Saving or editing a seasonal quote now keeps the linked shared estimate, attached design snapshot, and bundled power-wash link aligned from one save path, and manual Declined or Expired updates now write the matching shared quote event onto the linked estimate instead of stopping at the seasonal source record.
Older workspaces that still had the earlier holiday-lights estimate-list projection function now stay compatible too. Seasonal quote saves now keep the shared estimate-list projection writing delivery_state as JSON, so holiday-lights draft creates no longer fail on production databases that were partially through the quote-core rollout.
When you reopen an existing holiday lights estimate from admin, the header now includes the office-side actions you expect:
- View Public Page
- Download PDF
- Send Proposal or Resend Proposal after the first successful delivery
- Open Estimate Workspace
- Convert to Job after the linked estimate exists
Behind that linked estimate workspace, holiday lights quotes now also feed canonical shared quote-core line items instead of only the older compatibility line_items JSON. The holiday-lights save routes still own the source holiday_lights_estimates table for now, but the linked estimate record now carries structured holiday-lights line items and quote snapshots aligned to the same quote-core direction used by generic, residential, fleet, and commercial work.
That linked estimate workspace now also carries the source holiday-lights estimate id directly, which lets shared quote-core public links rebuild the seasonal summary from the linked estimate record instead of losing the holiday-lights context when staff or customers open the shared quote page outside the dedicated portal send flow.
Holiday-lights quote-core syncing now follows the saved contract term too. When a quote has zone-based annual pricing, the linked estimate workspace uses the selected 1-Year or 3-Year annual contract total instead of falling back to the older midpoint install range, and reopening the office editor keeps the saved term, premium, and proposal media selections in place instead of snapping back to the default 1-year view.
Editing an existing holiday-lights quote now also keeps the saved Price Guarantee Years value aligned with the latest seasonal pricing config. Traced quotes that start from zone-derived linear footage no longer fail validation just because the office left the manual linear-feet field at 0 while the traced roofline still measures correctly.
That same saved contract-term total now carries through the rest of the workflow too. Holiday-lights send copy, AI review comparisons, client-detail estimate totals, and admin revenue / lead-source reporting now read the saved selected annual contract price before they fall back to the older low/high range fields, which keeps the office-facing numbers aligned with what the customer actually accepted.
The office-side holiday-lights inventory list now follows that same shared catalog direction too. The inventory admin screen and the dashboard low-stock count read from the shared price_book_items bridge when those SKU rows exist, and legacy SKU create/update actions refresh that shared copy after the write so the seasonal inventory catalog stops depending on a separate read-only table path.
Those holiday-lights inventory saves now also fail closed if the shared price-book bridge cannot be updated. If CE Pro cannot persist the matching shared SKU row, the office-side inventory create or edit is rolled back instead of leaving inventory_skus and the shared quote-core catalog out of sync.
Holiday-lights inventory writes now only touch the matching shared SKU rows too. Admin inventory creates and edits update the specific bridged price_book_items record for that SKU instead of rebuilding the whole holiday-lights inventory bridge after every change, which keeps the shared price-book copy aligned with far less write churn.
Accepted holiday-lights quotes now reuse the shared quote-core accepted follow-up helper too. When a customer accepts from the seasonal status flow or the office signs the linked holiday-lights contract, CE Pro re-syncs the linked estimate workspace first and then runs the same accepted-event, pipeline, webhook, gamification, and accepted-job follow-up path used by the newer shared estimate flows instead of keeping a separate seasonal-only acceptance branch.
Holiday-lights contract signing continues to store the captured signature directly on the contract record, and that signature-backed acceptance path is now regression-tested alongside the shared estimate-signature and commercial proposal-signature flows so CE Pro can harden all public signature collection paths together instead of patching them one module at a time.
That acceptance bridge now also owns the source holiday-lights quote update itself. Customer status changes and office-side contract signing both flow through the same helper, so the seasonal sales pipeline records the acceptance from one path, and already-accepted quotes no longer rewrite accepted_at just because the office reapplies a signed contract record later.
Tips
- Use the satellite view to trace gutter lines accurately. The overhead angle gives the clearest picture of the full roofline.
- AI measurement works best with clear property photos taken during the day. Avoid photos with heavy shadows or tree cover blocking the roofline.
- 3-year contracts include removal pricing in the estimate. This simplifies the proposal for the customer and locks in recurring revenue.
- Bundle with a power wash for a higher ticket value. Customers who are already spending on holiday lights are good candidates for a fall cleaning package.
Troubleshooting
AI measurement returned inaccurate results
The AI works best on standard rooflines with clear photos. For L-shaped homes, complex dormers, or multi-level roofs, trace manually using the gutter line tool. You can combine AI-traced lines with manual adjustments.
Colors do not match the design summary
Make sure you select the color before drawing each line segment. If you need to change a color after drawing, select the line on the canvas and use the color picker to update it.
Bundle discount is not applying
Confirm that the linked power wash estimate belongs to the same customer (matched by name and address). The bundle discount only applies when both estimates are active and not already sent.
Related articles
Was this article helpful?
Still need help? Contact support