Estimate auto-expire automatically marks Active estimates as Lost (reason: expired) after they sit without activity for a configurable window. This keeps your Sales Pipeline accurate without you having to manually clean out estimates that customers ghosted on.

Go to Settings > Invoicing and scroll to the Estimate Lifecycle section.

Two fields

  1. Auto-expire stale estimates: master toggle. When on, the system runs a daily check in the early morning (server time) to find Active estimates that have not had activity in the configured window and marks them Lost with reason "expired".
  1. Days: the activity window. Default is 30. Adjust based on your sales cycle - shorter (14-21 days) if you sell low-consideration installs, longer (45-60 days) for big custom builds where customers think it over.

What counts as activity: anything that touches the estimate within the window keeps it Active. That includes:

  • Edits to the estimate
  • Follow-ups logged on the customer
  • Reminders or tasks linked to the estimate

If none of those happen for the configured number of days, the estimate is marked Lost the next time the cron runs.

Click "Save" to apply.

What "expire" actually does

  • The estimate's lifecycle moves from Active to Lost
  • The "lost reason" is set to "expired"
  • The estimate disappears from active pipeline views and shows up under Lost on the Sales Pipeline board, with a Lost (Expired) badge on its detail page
  • No customer-facing notification is sent

Can you bring an expired estimate back? Yes. Open the estimate, click "Reactivate", and confirm. The lifecycle returns to Active and the estimate goes back on the pipeline board. Useful when a customer resurfaces after a long quiet period.

Where to find expired estimates

  • Sales Pipeline board: Lost column, filterable by reason
  • Estimates list: filter by lifecycle = Lost
  • Reports > Sales Pipeline > Lost Reasons: shows the histogram of why deals were lost, including "Expired" as a category

If you turn auto-expire off, the daily cron stops running and estimates stay Active until you manually close them as Won or Lost.