Estimates Overview

Estimates are the quote step that comes before billing. You build a line-item proposal, send it to the client, and they approve, decline, or request changes right in the portal. When they accept, you convert the estimate into an invoice in one click — the line items carry over exactly.

What Estimates Is

A complete quote-to-approval workflow that handles:

  • Creating estimates with line items, quantities, unit prices, taxable flags, tax rate, a fixed discount, and currency — the same line-item shape an invoice uses
  • A valid-until date that auto-expires the estimate if the client doesn't respond in time
  • Generating branded PDFs through a secure download gateway
  • Sending email to the client with a link to view and respond
  • Client responses — Approve, Decline, or Request Changes, each from the client's portal view
  • Converting to an invoice — an accepted estimate becomes a draft invoice with a two-way link
  • Tracking status through Draft → Sent → Viewed → Accepted (or Declined / Expired) → Converted
  • An activity log recording every action with who did it and when

Quick Glossary

TermWhat it means
EstimateAn estimate custom post type — line items + totals + a status
Estimate NumberAuto-generated EST-YYYY-#### (e.g. EST-2026-0001)
Line ItemOne row — description, optional details, quantity, unit price, taxable flag
SubtotalSum of line items before tax and discount
Tax Rate / Tax AmountPercentage applied to taxable items, and the resulting amount
DiscountA fixed amount subtracted from the subtotal
Total AmountSubtotal + Tax − Discount
Issue DateWhen the estimate was issued (defaults to today)
Valid UntilWhen the quote expires (defaults to Issue Date + 30 days)
StatusLifecycle state (Draft / Sent / Viewed / Accepted / Declined / Expired / Converted)
Converted To InvoiceThe invoice an accepted estimate became — a two-way link
Terms / NotesFree-text blocks shown on the estimate and its PDF

The Estimates Page

Open Estimates from the left sidebar (/estimates/). It's a Vue.js app:

  • Toolbar — a Create Estimate button, plus search, a status filter, a client filter, and a date range.
  • List — each estimate shows its number, issue date, valid-until (flagged red if it has expired while still open), amount, and a status badge.
  • Row actions — View, Download PDF, Send Email, Mark as Sent / Mark as Draft, Clone, Edit, and Delete (delete is blocked once an estimate has been converted).

Individual estimates live at /estimate/{number}/ (for example /estimate/est-2026-0001/).

Estimate Statuses

StatusMeaning
DraftCreated but not yet sent
SentEmailed to the client; not opened yet
ViewedThe client has opened it
AcceptedThe client approved it — ready to convert
DeclinedThe client rejected it (final)
ExpiredThe valid-until date passed while still Sent or Viewed (final)
ConvertedTurned into an invoice — now read-only (final)

A daily background job moves any Sent or Viewed estimate to Expired once its valid-until date has passed, and records the change in the activity log.

The Estimate Lifecycle

Draft ──send──▶ Sent ──client opens──▶ Viewed
                  │                       │
                  └──────────┬────────────┘

              Accept / Decline / Request Changes

        accepted ──convert──▶ Converted (→ draft Invoice)

              (no response by Valid Until) ──▶ Expired
  • Send moves a draft to Sent and stamps the send time.
  • Viewing the estimate (the client opening its page) moves Sent to Viewed automatically.
  • Accept / Decline / Request Changes are the client's three responses (see Client Acceptance).
  • Convert to Invoice turns an accepted estimate into a draft invoice and locks the estimate.
  • Admins also have a Set Status escape hatch to correct the status manually when needed.

How It Connects to Invoices

Estimates and Invoices share the same line-item model, so conversion is lossless. When you convert an accepted estimate:

  • A new draft invoice is created with the client, line items, tax rate, discount, currency, and notes copied across.
  • The two records are linked both ways — the estimate shows Converted To Invoice, and the invoice records its source estimate.
  • The estimate becomes read-only so the quote and the bill can't drift apart.

See Converting to Invoices for the full mechanics.

Permissions Snapshot

WhoCan
Administrators & EditorsCreate, edit, send, clone, set status, convert, and see every estimate
Granted staff rolesSee all estimates (add roles under Settings → Estimate Settings → Estimate Access) — view, not the admin actions
Assigned clientsSee only their own estimates, and Approve / Decline / Request Changes on them
Everyone elseNo access

Client access is automatic: a user assigned to a client can view that client's estimates with no extra permission.

Was this page helpful?