Illustrative scenario — not a client
Field-service job app for an HVAC contractor
An HVAC contractor with twelve technicians moving job scheduling off a whiteboard and capturing photos and sign-offs on site.
Reviewed by Atin Agarwal, IOanyT · 5 October 2026
Document 1 · Readable requirements
Plain prose, not a bullet dump
An excerpt. A real specification covers every screen and flow.
- R-01
The office plans the day on one board
The office sees every technician's jobs for the day as a board. A job is assigned by dragging it to a technician; moving it notifies the technician. Unassigned jobs sit in a separate column so nothing is forgotten.
- R-02
The technician's phone is the job sheet
Each technician sees today's jobs in order, with the address, the customer's notes and the equipment history at that address. Tapping the address opens their usual maps app.
- R-03
Work is captured where it happens
On site, the technician records the work done, the parts used and photos before and after. A job cannot be closed without at least one photo and the customer's signature.
- R-04
The customer gets a report the same day
When a job is closed, the customer receives an email report with the work done, the photos, the parts and the technician's name. The office can resend it.
Document 2 · Wireframes
Every screen, to review
A few of the screens. Wireframes show what is on each screen and where — not the visual design.
- 8:30 · Boiler service
- 10:00 · AC not cooling
- 12:30 · Install quote
- 2:00 · Filter change
Last visit: 11 months ago
Work done
Swipe for more screens →
Document 3 · Walkthrough
A day in the life of the app
People catch missing scope in a story far more reliably than in a table of requirements.
At 7:45 the office manager drags two new jobs onto Ravi's column; his phone shows them in order. At the first house he opens the job, sees the boiler was serviced eleven months ago, replaces a valve, takes two photos and hands the phone to the customer to sign. The report lands in the customer's inbox before Ravi reaches the van. By evening the office board shows eleven jobs closed and one moved to tomorrow, without a single phone call.
Document 4 · Scope
Defined by both lists
In this release
- Office scheduling board to assign jobs to technicians by day
- Technician job list on the phone, with address and customer notes
- Photos, notes and parts used, captured on site
- Customer signature on job completion
- Job report emailed to the customer
- Customer and equipment history per address
Not in this release
- Offline mode (jobs need signal to sync)
- Route optimisation
- Quoting and invoicing inside the app
- Inventory management
- A customer self-booking portal
On a real quote, each carries a price to add it later.
Document 5 · Assumptions register
What the price rests on
If one turns out to be wrong, that is a pre-agreed trigger to re-quote — not an argument.
- One branch, twelve technicians
- Technicians use their own Android or iPhone through the browser
- Customer and equipment records are imported once from a spreadsheet
- English only
Document 6 · The quote
Three tiers. Every line visible.
QA and security sit in every tier. They are never what a smaller tier removes.
| Line item | Lean | Standard | Premium |
|---|---|---|---|
| Office scheduling board | ● | ● | ● |
| Technician job list with notifications | ● | ● | ● |
| On-site capture: work, parts, photos | ● | ● | ● |
| Customer signature to close a job | ● | ● | ● |
| Emailed job report | — | ● | ● |
| Customer and equipment history | — | ● | ● |
| One-time import from spreadsheet | — | ● | ● |
| Recurring maintenance contracts | — | — | ● |
| Jobs and technician reporting | — | — | ● |
| Priority support, three months | — | — | ● |
| Test coverage 80%+ | ● | ● | ● |
| Security review | ● | ● | ● |
| Dependency scanning | ● | ● | ● |
Your own quote shows a total for each tier, locked for 14 days from the moment it is issued.
Lean
Scheduling board, technician job list, on-site capture and signature
Standard
Lean plus emailed job reports, customer and equipment history and the data import
Premium
Standard plus recurring maintenance contracts, reporting and priority support
An illustrative scenario, not a quote for your project. Your quote is built from your own specification, with a blended total on every line instead of a rate card, and locked for 14 days once issued.
What arrives
Enough to decide with. Then enough to build from.
| Artifact | Free | On signature |
|---|---|---|
| Readable requirements Plain prose, not a bullet dump | Included | |
| Wireframes Every screen, to review | Included | |
| Scope summary What the build covers | Included | |
| Explicit exclusions The "not in this release" list, with backlog prices | Included | |
| Assumptions register Every load-bearing assumption, stated | Included | |
| Three-tier itemized price Traceable line items | Included | |
| Machine-readable spec exports | On signature | |
| Editable wireframe files | On signature | |
| openapi.yaml The API contract | On signature | |
| Mapping CSVs | On signature | |
| Given/when/then suites | On signature | |
| Architecture decisions | On signature |
What arrives free
- Readable requirements Included Plain prose, not a bullet dump
- Wireframes Included Every screen, to review
- Scope summary Included What the build covers
- Explicit exclusions Included The "not in this release" list, with backlog prices
- Assumptions register Included Every load-bearing assumption, stated
- Three-tier itemized price Included Traceable line items
What arrives on signature
- Machine-readable spec exports On signature
- Editable wireframe files On signature
- openapi.yaml On signature
- Mapping CSVs On signature
- Given/when/then suites On signature
- Architecture decisions On signature
What happens next
From your description to the build
- 01
You describe it
In plain words. Today a person runs the intake with you by email.
- 02
It asks back
The questions a good engineer would ask, before anything is priced.
- 03
The documents arrive
Everything on this page, for your project, before you pay anything.
- 04
The price holds
The quote is locked for 14 days from the moment it is issued.
- 05
You sign, we build
Every requirement traced from quote line to accepted build. Changes priced before you approve them.
Defined by both lists
Get this quoted for your project.
No signature, no call. A business email unlocks the full quote.