Estimate to Invoice

The complete workflow — from creating an estimate to printing the final invoice

ManagerReception

This guide walks through the full lifecycle of a job in Pistonlog — quoting the work as an estimate, promoting it to a live jobcard when the customer agrees, completing the work, and printing the invoice.

1. Create the estimate

Estimates are jobcards with isEstimate = true. They live in their own list at /estimates, use the #Estimate {n} reference prefix (the counter is shared with Jobcard{n} — numbers continue across both, only the prefix differs), and stay out of the live workflow board until promoted.

Open New Estimate

Sidebar → Estimates → New estimate. Or, equivalently, create a jobcard via POST with isEstimate: true.

Give it a title

Something descriptive like "Full service and MOT". Auto-title is also available.

2. Assign a customer and vehicle

Select or create a customer

Search by name. If they don't exist, Add new customer inline.

Select or create a vehicle

Search by registration. New vehicles use the DVSA lookup to pre-fill make/model/MOT date.

3. Add jobs and pricing

Each piece of work is a job on the estimate. Add labour lines, add parts. Totals update in real time.

Job templates

If you do the same kind of work regularly, use a saved job template to drop in pre-priced labour + parts in one click.

4. Send the estimate to the customer

Click Print to generate a customer-facing document with your garage branding, the quoted work, and totals with VAT. Save as PDF, email it, or discuss it over the phone.

5. Promote to a live jobcard

When the customer approves, click Promote to Jobcard on the estimate. This flips isEstimate to false and the record moves to your default starting status. The reference series also changes — #Estimate 17 becomes Jobcard17 (or your garage's equivalent counter). The card now appears on the workflow board.

6. Complete the work

When the work is done, drag the jobcard to a status flagged as a completion status (see Jobcard statuses — the isCompleted toggle is what makes a status a completion status, not its name).

While completing:

  • Update Mileage Out on the jobcard
  • Set next service / MOT / timing-belt reminder intervals on the relevant jobs (this schedules the next automatic reminder — see Reminder triggers)
  • Record a payment if the customer paid in person

These are separate actions on the jobcard, not a single popup that fires on status change.

7. Print the invoice

Click Print on the completed jobcard. The preview shows the customer invoice: garage details, customer + vehicle info, every job with labour and parts, totals with VAT.

Technician copy

You can also print a technician copy — same dialog, different format. It strips pricing and customer PII, showing only the vehicle + jobs (see the PII rule).

The workflow at a glance

Create estimate → Add customer, vehicle, jobs, and pricing → Send quote → Customer approves → Promote to Jobcard → Work completed → Move to completion status → Record mileage, set reminders, record payment → Print invoice

Was this article helpful?