Sign in

Blog · How-to guides · Finance and FP&A teams

Create a revenue waterfall chart in Google Sheets

Create a Google Sheets revenue waterfall from monthly customer revenue and signed changes. Reconcile every bridge component to independently reported closing revenue before formatting the chart.

The short answerTo create a revenue waterfall chart in Google Sheets, arrange opening revenue followed by positive and negative revenue changes in two columns. Insert a chart and choose Waterfall chart. Add a final subtotal for closing revenue, and verify separately that opening revenue plus all movements equals the independently reported closing revenue for the same scope.

Create a revenue waterfall chart in Google Sheets by arranging opening revenue, signed changes and a final subtotal that represents closing revenue. Prove the bridge against an independent revenue total before formatting it. The chart should explain the change; it cannot establish whether the source revenue is complete.

Define the comparison and prepare the source rows

This example compares August and September 2026 recognized revenue for a US distributor in USD. Both periods cover the same entity, revenue accounts and customer scope. Retain the invoice, credit and journal references behind the monthly customer totals.

Use one customer ID across both months and include the union of the customer lists. A customer appearing in only one export still needs a row. Enter zero only after confirming that the missing month has no revenue; an incomplete export is not evidence of a zero.

On a Customers tab, use A for customer ID, B for August revenue, C for September revenue, D for movement and E for driver. These are the complete monthly balances for the example:

Customer August revenue (USD) September revenue (USD) Movement (USD) Driver
A 400,000 540,000 140,000 Expansion
B 0 60,000 60,000 New
C 300,000 255,000 -45,000 Contraction
D 35,000 0 -35,000 Lost
E 265,000 265,000 0 Unchanged
Total 1,000,000 1,120,000 120,000

The totals sit below the data and must stay outside all customer ranges. In D2 enter this formula and fill through D6:

=C2-B2

For this nonnegative revenue example, E2 can classify each customer:

=IF(AND(B2=0,C2>0),"New",IF(AND(B2>0,C2=0),"Lost",IF(D2>0,"Expansion",IF(D2<0,"Contraction","Unchanged"))))

Fill through E6. Review customer IDs with negative net revenue separately, because refunds can make these simple rules misleading. Also validate new and lost labels against customer records before presenting them as business events.

Build the two-column chart table

On Bridge, put the independent September revenue report total, 1120000, in E2. The August control report must separately agree with the opening customer total. Use the following layout in A1:B6, including headers:

Row A: Label B: Amount (USD) Formula in B
2 August revenue 1,000,000 =SUM(Customers!B2:B6)
3 Expansion 140,000 =SUMIFS(Customers!$D$2:$D$6,Customers!$E$2:$E$6,A3)
4 New 60,000 Copy B3 down
5 Contraction -45,000 Copy B3 down
6 Lost -35,000 Copy B3 down

Google's SUMIFS documentation supports conditional sums; here the driver label selects customer movements. Keep labels identical to the classification column. A typo can omit an entire movement category without creating a formula error.

The revenue change is 140,000 + 60,000 - 45,000 - 35,000 = $120,000. Adding that to opening revenue gives $1,120,000. Growth is 120,000 / 1,000,000 = 12.0%, rounded to one decimal place.

These categories describe changes in customer revenue, rather than separate price and volume effects. Do not add another price effect on top of expansion that already contains it. The Excel waterfall guide covers the corresponding workbook approach when the source file uses that application.

Insert the waterfall and add the closing subtotal

Select Bridge!A1:B6, choose Insert > Chart, and choose Waterfall chart under the chart type settings. The first column supplies labels and the numeric column supplies amounts. Google's waterfall chart guide describes this layout and how values add to or subtract from a starting value.

Under Customize > Series, add a final subtotal after the Lost movement and label it September revenue. The subtotal should show $1,120,000 from the baseline. Opening revenue also begins at the baseline; movement bars float between successive running balances. Covirage is not affiliated with Google or Microsoft.

Use the running balances below to inspect the picture:

Position Running revenue (USD)
Opening August revenue 1,000,000
After expansion 1,140,000
After new customers 1,200,000
After contraction 1,155,000
After lost customers 1,120,000

Show dollar labels and a title naming the measure and comparison periods. Keep the business sequence rather than sorting bars by size. Do not include an additional closing-value row as an ordinary movement; that would add the ending revenue again.

For charts built from grouped summaries, the separate pivot chart walkthrough covers that workflow. A burndown chart in Google Sheets answers a different question about remaining work, rather than revenue movements.

Prove the bridge outside the chart

The main reconciliation compares the calculated close with the independently supplied September total:

=B2+SUM(B3:B6)-$E$2

That returns 1,000,000 + 120,000 - 1,120,000 = $0. Google's SUM reference documents adding a range; the range here contains only movements, excluding the opening balance and chart subtotal.

A second check compares grouped movements with all customer changes:

=SUM(B3:B6)-SUM(Customers!D2:D6)

This also returns zero. Review row-level classifications as well: offsetting omissions can pass a total check. All dollar figures here are whole dollars, so the reconciliation needs no rounding allowance. When updating the workbook, extend every range together and retain the independent control report.

Where it goes wrong

  • Using positive lost revenue. Lost and contracted revenue reduce the bridge and require negative movements.
  • Mixing measures. Bookings, billings, recognized revenue and cash receipts cannot share one revenue bridge without an explicit reconciliation.
  • Counting the closing total twice. A closing subtotal is a balance, never another revenue increase.
  • Overlapping drivers. Each source movement must appear in one category; customer expansion and its price components cannot both be added.
  • Filling the gap with unexplained revenue. Investigate missing credits, dates and customer mappings before calling the bridge reconciled.

Reconcile your own revenue file in Covirage

Upload the revenue workbook or Google Sheet with its customer IDs, period totals and supplied driver classifications. Covirage maps the columns, its tools compute and check the figures, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account, then set up your business and bring a sample of your own data.

See Covirage for spreadsheet analysis for the related file-based work.

Questions people ask

Do I enter closing revenue as another positive movement?

No. Closing revenue is the balance after the movements, not an additional increase. In this layout, chart the opening balance and signed changes, then add a final subtotal through the chart's Series settings. Keep independently reported closing revenue in a separate control cell.

Can a revenue waterfall show new and lost customers?

Yes. Compare matched customer IDs between periods, distinguish genuinely new and lost accounts from changes on continuing accounts, and sum the signed differences. Confirm that renamed or merged IDs are mapped consistently so an administrative change does not appear as churn.

Why does my revenue bridge fail to reconcile?

Common causes are missing customers, duplicate movements, inconsistent credit treatment or different period scopes. Compare the source totals first, then check that every customer-level change appears in exactly one driver category. Keep any unresolved difference visible until its cause is identified.

Is a revenue waterfall the same as a revenue recognition schedule?

No. A revenue waterfall explains a change between comparable revenue totals. A recognition schedule determines when amounts are recognized under the company's accounting policy. Build this bridge from the reported revenue measure, with the recognition treatment already applied consistently across periods.