FreshBooks estimates in a live spreadsheet

Add the Estimates table to a sheet as a data source named estimates and its 13 columns become names your formulas, pivot tables and charts use. Sheets reads it from your FreshBooks business each time the sheet opens or refreshes.

Formulas on this table

=data.estimates.sum(total)
Total total. Adds up the Total column over every row of Estimates.
=data.estimates.sum(total, status, A2)
Total per status. With a status in A2, the total for that one. Fill it down next to a list of them.
=list.estimates(status)
Every status, once. Spills the distinct status values down the column: the row labels for the formula above.
=data.estimates.sum(total, date, ">=2026-01-01")
Since a date. Only rows whose Date is on or after 1 January 2026. Criteria such as ">=", "<" and "<>" work as in any spreadsheet.
=data.estimates.count(id, status, "<>")
Rows with a status. Counts the rows whose Status is not empty.
=data.estimates.avg(discount)
Average discount. avg, min, max, count, countd (distinct) and first work the same way as sum.

Columns

ColumnIn formulasType
IDidText
Estimate no.estimate_noText
PO numberpo_numberText
DatedateDate
ClientclientText
Client IDclient_idText
TotaltotalNumber
DiscountdiscountNumber
StatusstatusText
Display statusdisplay_statusText
CurrencycurrencyText
ArchivedarchivedYes / no
Updated atupdated_atDate and time

Other sales tables

Your estimates, live

Invoices, payments, expenses and time entries become tables that formulas, pivot tables and charts read directly. Your numbers stay current without exporting.