Compound growth becomes much easier to understand when you can see each period’s increase added to the amount that grows next. A spreadsheet lets you test contributions, returns, time periods, and different assumptions without recalculating everything by hand.
What compound growth means
Compound growth occurs when an increase is added to the original amount and future increases are calculated from the larger total. In other words, growth earns growth. This is different from simple growth, where each period’s increase is based only on the starting amount.
For example, suppose you invest $1,000 and it grows by 10% per year. After one year, the balance is $1,100. In the second year, the 10% is calculated on $1,100, not the original $1,000, so the balance becomes $1,210. The additional $10 is the first visible benefit of compounding.
The basic formula is:
Future value = Starting value × (1 + growth rate) ^ number of periods
In a spreadsheet, the caret symbol ^ means “raised to the power of.” If the starting value is in cell B2, the annual growth rate is in B3, and the number of years is in B4, the formula is:
=B2*(1+B3)^B4
Enter a percentage as a decimal or as a percentage-formatted value. For example, type 7%, not 7, unless your formula is specifically designed to divide by 100.
Set up the input area
Start with a small input section so that you can change assumptions without rewriting formulas. In either Excel or Google Sheets, enter labels in column A and values in column B:
| Input | Example value | Purpose |
|---|---|---|
| Starting amount | $1,000 | Initial balance or quantity |
| Annual growth rate | 7% | Expected growth per year |
| Years | 20 | Length of the projection |
| Contributions per year | $2,400 | Optional additions during each year |
| Contribution timing | End of year | When additions enter the model |
Use clear labels such as Starting amount, Annual rate, and Years. Format the starting amount and contributions as currency, the rate as a percentage, and the years as a number. Good formatting reduces mistakes when you return to the worksheet later.
You can also name the input cells. In Excel, select a cell, click the Name Box to the left of the formula bar, and enter a name such as StartingAmount. Google Sheets supports named ranges through the Data menu. A named formula such as:
=StartingAmount*(1+AnnualRate)^Years
is often easier to read than a formula containing several cell addresses.
Build a year-by-year growth schedule
A single future-value formula gives you an answer, but a schedule explains how the answer develops. Create these headings in row 8:
- Year
- Beginning balance
- Growth
- Contribution
- Ending balance
In row 9, enter the first period. Assume the input values are in B2:B5, with the starting amount in B2, the annual rate in B3, the number of years in B4, and annual contributions in B5.
Use formulas like these:
- A9:
1 - B9:
=$B$2 - C9:
=B9*$B$3 - D9:
=$B$5 - E9:
=B9+C9+D9
In row 10, continue the schedule:
- A10:
=A9+1 - B10:
=E9 - C10:
=B10*$B$3 - D10:
=$B$5 - E10:
=B10+C10+D10
Copy row 10 downward for as many years as needed. If the projection is 20 years, fill the schedule through Year 20. The dollar signs in references such as $B$3 keep the assumption fixed when you copy the formula.
This schedule assumes the contribution is made at the end of each year. That means the annual contribution does not earn growth until the next period. If you add money at the beginning of each year, calculate growth after adding the contribution:
= (B10+D10) * (1+$B$3)
The timing difference can become meaningful over long periods, so document which assumption you use.
Separate growth from contributions
A final balance by itself can be misleading. If your account grows to $100,000, you may want to know how much came from your deposits and how much came from investment growth.
Add two more columns:
- Total contributions
- Total growth
For the first row, use:
- F9:
=D9 - G9:
=E9-$B$2-F9
For later rows:
- F10:
=F9+D10 - G10:
=E10-$B$2-F10
The total-growth column represents the ending balance minus the starting amount and all contributions. It is a useful way to show the effect of compounding, but it is still an estimate based on your assumed rate. It does not represent guaranteed profit.
You can create a quick summary above the schedule:
- Final balance:
=INDEX(E:E,MATCH($B$4,A:A,0)) - Total contributions:
=INDEX(F:F,MATCH($B$4,A:A,0)) - Estimated growth:
=INDEX(G:G,MATCH($B$4,A:A,0))
If your spreadsheet uses a different layout, simply reference the ending row directly. The INDEX and MATCH version is useful when you change the number of projected years.
Use monthly or quarterly compounding
Annual compounding is easy to understand, but many real savings products calculate interest more frequently. To model periodic compounding, convert the annual rate and number of years into periods.
The general formula is:
Future value = Starting value × (1 + annual rate / periods per year) ^ (years × periods per year)
For monthly compounding at 7% over 20 years:
=B2*(1+B3/12)^(B4*12)
For quarterly compounding, replace 12 with 4. For daily compounding, the number may be 365, although the product’s terms should determine the actual convention.
A more flexible schedule uses one row per month. Add these columns:
- Period
- Beginning balance
- Periodic growth
- Contribution
- Ending balance
If the annual rate is in B3 and the periods per year are in B6, the periodic growth formula is:
=B9*($B$3/$B$6)
The period count should equal years multiplied by periods per year. For a 10-year monthly projection, create 120 rows. Avoid mixing a monthly schedule with an annual contribution unless you deliberately divide the annual contribution into monthly amounts.
Model regular contributions with built-in functions
Excel and Google Sheets include functions that calculate the future value of repeated payments. The most common is FV:
=FV(rate, nper, pmt, pv, type)
The arguments are:
rate: interest rate per periodnper: number of periodspmt: payment made each periodpv: present value, or starting balancetype:0for end-of-period payments and1for beginning-of-period payments
If the annual rate is in B3, years are in B4, annual contributions are in B5, and starting value is in B2, use:
=FV(B3,B4,-B5,-B2,0)
The negative signs are intentional. Spreadsheet financial functions use cash-flow conventions: money you contribute is treated as leaving you, while the future value is returned as a positive amount. If your result appears negative, check the signs of pmt and pv.
For monthly contributions and monthly compounding, use:
=FV(B3/12,B4*12,-B5/12,-B2,0)
This assumes the annual contribution in B5 is evenly divided across 12 monthly deposits. If you make a different monthly contribution, enter that amount directly instead of dividing it.
The FV function is concise, but a visible schedule is better for learning, checking dates, and showing exactly when contributions occur. Use both when possible and compare their final balances.
Add inflation and purchasing power
A future dollar may buy less than a current dollar. To estimate today’s purchasing power, divide the future balance by an assumed inflation factor:
=FutureBalance/(1+InflationRate)^Years
For example, if a projected balance is $50,000 after 20 years and inflation is assumed to be 2.5% annually, the inflation-adjusted value is approximately:
=50000/(1+2.5%)^20
This does not predict actual inflation. It simply translates a future amount using one assumption. You can add an inflation input and an “Estimated value in today’s dollars” row to keep nominal and inflation-adjusted results separate.
You may also compare a nominal growth rate with inflation using an approximate real-growth formula:
=(1+GrowthRate)/(1+InflationRate)-1
This is more accurate than merely subtracting inflation from the growth rate, especially when the rates are large.
Create a chart that shows compounding
Select the Year and Ending balance columns, then insert a line chart. A line chart makes the increasing slope visible. If you also include Total contributions, you can compare the balance with the amount you personally added.
Useful chart choices include:
- A line chart for balance over time.
- A stacked column chart for contributions versus estimated growth.
- Two lines for different annual-return scenarios.
Label the vertical axis as dollars or units and include the rate assumption in the chart title. Do not use a misleading truncated axis when comparing small differences; starting the vertical axis at zero often makes the scale easier to interpret.
Test different scenarios
Compound-growth results are highly sensitive to assumptions. Create a scenario table with rates such as 3%, 5%, 7%, and 9%, or use Excel’s Data Table feature and Google Sheets’ formulas to compare outcomes.
You can also vary:
- Starting amount.
- Monthly or annual contribution.
- Investment period.
- Contribution timing.
- Fees or annual withdrawals.
- Inflation rate.
A simple comparison formula can reference a rate listed in column J. If J2 contains a scenario rate, use:
=$B$2*(1+J2)^$B$4
Copy it down for each rate. This makes it clear that a small difference in the assumed annual rate can produce a large difference over many periods.
For a fee-adjusted estimate, subtract the annual fee from the growth rate only as a rough approximation:
=StartingAmount*(1+GrowthRate-FeeRate)^Years
A more detailed model should apply fees at the appropriate frequency and account for contributions. Check the product’s fee structure before relying on the result.
Troubleshoot common spreadsheet problems
If the answer is unexpectedly high or low, inspect the assumptions before changing the formula.
- The rate is 700% instead of 7%: You may have entered
7while the cell is formatted as a percentage. Enter7%or0.07. - The balance does not change: Check whether the growth formula references the correct beginning balance and rate cell.
- Every row shows the same growth: Make sure the beginning-balance reference changes by row while the rate reference remains fixed.
- The final answer is negative with
FV: Review the signs for the starting value and payment. - The result is much too large: Look for an extra multiplication by 100, an incorrect number of periods, or a rate entered as a whole number.
- The schedule stops early: Check the year or period formula and extend the formulas through the intended horizon.
- The chart looks flat: Confirm that the values are numeric rather than text and that the axis scale is appropriate.
- The formula displays instead of the result: Turn off “Show formulas” and check that the entry begins with
=.
Use a calculator or a second formula as a reasonableness check. For a model without contributions, compare the schedule’s final value with =StartingAmount*(1+AnnualRate)^Years.
Understand the model’s limitations
A spreadsheet projection is an illustration, not a promise. A constant annual growth rate assumes a smooth result, while real investments and business revenues can rise and fall. A model with a 7% average assumption does not mean the value will increase by exactly 7% every year.
Other limitations include taxes, account fees, changing contribution amounts, withdrawals, inflation, sequence of returns, and the difference between a quoted rate and an effective annual rate. If an account compounds monthly, use the account’s stated terms rather than guessing. If growth is irregular, enter a separate rate for each period or use actual historical data carefully.
Finally, keep assumptions visible and dated. Add a note such as “Illustration only; annual rate is an assumption” so another person can understand how the worksheet was built. The value of the spreadsheet is not just the final number. It is the ability to see which inputs create that number, change them, and recognize how uncertainty affects the result.