FreshBooks bills in a live spreadsheet

Add the Bills table to a sheet as a data source named bills and its 18 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.bills.sum(total)
Total total. Adds up the Total column over every row of Bills.
=data.bills.sum(total, vendor, A2)
Total per vendor. With a vendor in A2, the total for that one. Fill it down next to a list of them.
=list.bills(vendor)
Every vendor, once. Spills the distinct vendor values down the column: the row labels for the formula above.
=data.bills.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.bills.count(id, vendor, "<>")
Rows with a vendor. Counts the rows whose Vendor is not empty.
=data.bills.avg(amount_excl_tax)
Average amount (excl. tax). avg, min, max, count, countd (distinct) and first work the same way as sum.

Reports that use it

=data.bills.sum(outstanding, payment_status, "Overdue")
Bills overdue. Vendor bills past due, the cash you need to set aside.

Columns

ColumnIn formulasType
IDidText
Bill no.bill_noText
DatedateDate
Due datedue_dateDate
VendorvendorText
Vendor IDvendor_idText
TotaltotalNumber
Amount (excl. tax)amount_excl_taxNumber
TaxtaxNumber
OutstandingoutstandingNumber
PaidpaidNumber
Payment statuspayment_statusText
Days overduedays_overdueWhole number
AgeingageingText
StatusstatusText
CurrencycurrencyText
ArchivedarchivedYes / no
Updated atupdated_atDate and time

Other expenses tables

Your bills, live

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