Skip to case

A local-service quote journey people can actually finish.

One responsive landing page turns a vague “get a quote” call to action into a bounded estimate, visible adjustments, validation, and a sandbox confirmation.

Live artifactOpen full page ↗

Outcome

From an open-ended callback to one inspectable request.

The concept does not claim more leads. It proves that one visitor can understand the scope, produce a deterministic estimate, recover from invalid input, and reach a clear confirmation state.

Before / common input

“Can you tell me what it costs?”

No job type, size, condition, or timing attached.

After / structured sandbox result

·

House wash, medium property, built-up condition, one story, preferred timing captured.

Task loop

Every screen advances the same estimate.

This is one action-state-result chain, not three unrelated mockups.

  1. 01Action

    Choose service and property conditions.

    Only bounded options are allowed; house height disappears for surface-only services.

  2. 02State

    Recalculate and explain the range.

    Each visible line maps to one selected input or additive treatment.

  3. 03Result

    Validate contact details and confirm locally.

    The reference stays attached while the UI states explicitly that nothing was sent.

Build

Two deliverables. One shared contract.

The end-client page handles the buyer task. The case page exposes the implementation boundary and proof.

Cross-surface record
Estimate outputCalculated from normalized selections
Contact stepReference remains visible before submit
ConfirmationSame reference, preserved through the local-only flow

Worked / Broke / Fixed / Verified

The non-happy path is part of the proof.

A control is not proof until both failure and recovery are visible and testable.

Worked

Selection changes recalculate the range.

Pure calculation tests cover each service and story isolation.

Broke

A four-digit ZIP cannot create a request.

The form exposes an inline error and focuses the invalid field.

Fixed

Five digits clear the custom validity state.

The user can recover without losing the estimate selections.

Verified

One stable reference reaches confirmation.

Desktop and mobile browser tests assert correspondence and bounds.

Delivery

Inspectable in the browser, not trapped in a showreel.

Public-path release proof is represented here by direct routes, responsive captures, executable tests, and a verification date. Hosting remains a separate deployment step.

Live interactionOpen estimate pageDesktop + mobile responsive path ↗
Automated checksEngine, rendered flow, overflow, console
Last verifiedLocal Vite release candidate

Limits

What this proof does not claim.

Credits

A first paid pilot covers one of these deliverables, not both.

Applied evidence patterns