Build a Sharpe Ratio Decision Workbook

Compare hypothetical strategies with a Google Sheets Sharpe ratio workbook.

Introduction

30 Second Summary

The option with the biggest average gain can look like the obvious winner. Wild monthly swings can make that choice harder to trust.

In this project, you will build a decision workbook in Google Sheets that calculates historical monthly plus assumption-based annualized Sharpe ratios. You will compare four hypothetical return series to see how variability can reverse a return-only decision.

What You'll Build

You will change the assumed risk-free return to watch the strategy rankings update instantly on the same sheet.

By the end of this project, you'll have:

  • An interactive risk-adjusted comparison where your assumed risk-free return updates the results for Sprint and Steady.
  • A before-and-after decision showing Sprint winning on average monthly return before Steady takes the lead once volatility enters the comparison.
  • An equal-Sharpe stress test proving that identical scores can hide worst months of -4% and 0%.
  • Secret Mission: Add skewness as a warning signal that distinguishes a negative left tail from a positive right tail.

Are there any prerequisites?

You need a Google Sheets account. Comfort with percentages, averages, and basic statistics helps.

Before We Start

Before any calculations, commit to the choice this workbook will help you make. You will compare hypothetical strategy returns to expose the risk patterns hidden by average return.

Set Up the Decision Workbook

Your decision workbook needs a clean baseline before it can support a fair comparison. A fixed dataset removes changing market prices from the exercise.

Each strategy return must line up with the correct month. The same row also needs the matching assumed monthly risk-free return.

In this step, get ready to:
  • Prepare a named Google Sheets workbook.
  • Populate the workbook with twelve months of fixed returns.
  • Apply percentage formatting to the return area.
Create and name the workbook

A Google Sheets workbook keeps every input visible beside the calculations that use it. This makes the later strategy comparison easier to inspect.

Why Google Sheets instead of Python?

Google Sheets keeps every input visible beside its result. Python would add package installation and code syntax without improving this workbook's core lesson.

This uses your existing account. No paid resource is created.

  • Go to sheets.google.com in your Mac's web browser.
  • Sign in with your existing Google Sheets account if prompted.
  • Create a blank spreadsheet from the Sheets home page.
  • Click the current spreadsheet title in the top-left corner.
  • Enter Sharpe Ratio Decision Workbook in the title field.
  • Press Enter to apply the name.

Your blank workbook is now open under the name Sharpe Ratio Decision Workbook. That grid is ready to become your strategy comparison model.

Can't reach the blank workbook?

  • Confirm that your browser has an internet connection.
  • Reload the Sheets home page after completing the sign-in flow.

Help me diagnose why I cannot create a blank Google Sheets spreadsheet.

Paste the fixed dataset

The dataset uses the same twelve months for Sprint and Steady. Its fixed values let you focus on how each input affects the decision.

  • Click cell A1 in the workbook.
  • Populate the workbook by pasting this tab-separated dataset into A1:
Month	Sprint Return	Steady Return	Assumed Monthly Risk-Free Return
1	8%	1.8%	0.2%
2	-6%	0.4%	0.2%
3	10%	1.6%	0.2%
4	-8%	0.2%	0.2%
5	7%	1.5%	0.2%
6	-5%	0.5%	0.2%
7	9%	1.7%	0.2%
8	-7%	0.3%	0.2%
9	8%	1.4%	0.2%
10	-6%	0.6%	0.2%
11	10%	1.6%	0.2%
12	-4%	0.4%	0.2%

What does this dataset do?

  • The Month column aligns each strategy observation by period.
  • The Sprint Return column contains large positive and negative movements.
  • The Steady Return column contains smaller movements.
  • The Assumed Monthly Risk-Free Return column provides the baseline return used in later comparisons.
  • Check that the pasted dataset ends at cell D13.

You should see four columns across row 1. Rows 2 through 13 should contain the twelve monthly observations.

Did the data stay in one column?

  • Undo the paste.
  • Click cell A1 again.
  • Copy the complete tab-separated dataset before pasting it again.

Help me fix a tab-separated dataset that pasted into one Google Sheets column.

Format and verify the returns

Percentage formatting makes every return use the same visual scale. Extending that format through columns E and F also prepares the later excess-return cells.

  • Click cell B2.
  • Hold Shift while clicking cell F13.
  • Click Format in the top menu.
  • Select Number.
  • Select Percent.

The values in columns B through D now display as percentages. The blank cells in columns E and F carry the same number format for later formulas.

Before you verify the setup, which columns do you expect to contain twelve visible percentage values?

  • Inspect cells A1:D13.
  • Select the range B2:F13.
  • Click Format in the top menu.
  • Select Number.
  • Confirm that Percent is the active number format.

You should see the headers Month, Sprint Return, Steady Return, and Assumed Monthly Risk-Free Return across row 1.

Rows 2 through 13 should list months 1 through 12. The return values in columns B through D should display as percentages.

✔️ Awesome, I've got everything!

Your named workbook contains the complete twelve-month dataset. The return area is also prepared with percentage formatting.

ⓧ I'd like to double check the full code

  • Compare cells A1:D13 with this complete dataset:
Month	Sprint Return	Steady Return	Assumed Monthly Risk-Free Return
1	8%	1.8%	0.2%
2	-6%	0.4%	0.2%
3	10%	1.6%	0.2%
4	-8%	0.2%	0.2%
5	7%	1.5%	0.2%
6	-5%	0.5%	0.2%
7	9%	1.7%	0.2%
8	-7%	0.3%	0.2%
9	8%	1.4%	0.2%
10	-6%	0.6%	0.2%
11	10%	1.6%	0.2%
12	-4%	0.4%	0.2%

What should match?

The headers and every monthly value should match character for character. The dataset should occupy exactly four columns and thirteen rows.

  • Confirm that the workbook name is Sharpe Ratio Decision Workbook.
  • Confirm that cells B2:F13 use percentage number formatting.

Your fixed data foundation is ready. Next, you will use average monthly return to make the workbook's first strategy decision.

Pick a Winner Using Return Alone

Your fixed 12-month dataset is ready in the Google Sheets workbook from earlier. Both strategies now share the same measurement window.

Average monthly return gives you a fast first answer. It leaves the size of each month's swings outside the decision.

This comparison deliberately uses one simple rule. The strategy with the larger average return becomes the tentative winner.

In this step, get ready to:
  • Build a summary block for both strategies.
  • Calculate each average monthly return.
  • Record the larger result as the tentative winner.
Calculate average monthly returns

An arithmetic mean represents the typical monthly result across the dataset. The AVERAGE function applies that calculation to all 12 months.

Rows 2 through 13 contain the monthly observations that each formula needs.

  • Enter Metric in cell H1.
  • Enter Sprint in cell I1.

Cells H1:I1 now identify the metric column plus the first strategy column.

  • Enter Steady in cell J1.
  • Enter Average monthly return in cell H2.

Your summary block now has its headers plus the first metric label.

Before you calculate the two averages, which strategy do you expect to come out ahead?

  • Enter =AVERAGE(B2:B13) in cell I2.
  • Enter =AVERAGE(C2:C13) in cell J2.

You'll see that the value in I2 is greater than the value in J2.

How Do the Formulas Work?

  • The formula in I2 calculates Sprint's average across B2:B13.
  • The formula in J2 calculates Steady's average across C2:C13.

Seeing an Unexpected Result?

Check that the Sprint formula references B2:B13. Check that the Steady formula references C2:C13.

Make sure each formula begins with an equals sign.

Help me check my average-return formulas in Google Sheets.

Record the tentative winner

Percentage formatting presents both averages in the same form as the monthly return data. It changes the display without changing the underlying values.

  • Select the range I2:J2.
  • Click Format in the top menu.
  • Select Number.
  • Click Percent.

Both average-return results now appear as percentages. Sprint has the higher average monthly return.

The return-only rule therefore points to Sprint. This is the intended incomplete decision.

  • Enter Return-only winner in cell H8.
  • Enter Sprint in cell I8.

Your first comparison is working. Sprint is now visible as the tentative return-only winner.

Why Is This Decision Incomplete?

Average return captures the typical monthly result. It does not capture the spread of those monthly results.

That spread is called volatility. The return-only rule leaves it outside the comparison.

Verify the return-only choice

Your final check connects the calculated averages to the recorded decision.

Before you check the summary, which strategy should appear in I8?

  • Compare the percentage values in I2 and J2.
  • Inspect the decision in H8:I8.

You'll see that Sprint has the higher average monthly return. You'll also see Return-only winner beside Sprint.

Your return-only benchmark is visible. Next, you'll test that choice with the Sharpe ratio to account for the variability behind each return.

Correct the Decision with the Sharpe Ratio

Your Google Sheets workbook currently ranks Sprint first because its average monthly return is higher. Sprint's unstable swings are still missing from that decision.

The Sharpe ratio measures average excess return per unit of variability. Adding it gives your workbook a risk-adjusted comparison that can overturn the return-only winner.

In this step, get ready to:
  • Calculate monthly excess returns for Sprint and Steady.
  • Build the risk-adjusted summary metrics.
  • Document the corrected decision with its annualization caveat.
Calculate monthly excess returns

An excess return is the strategy return left after subtracting the assumed monthly risk-free return. This puts both strategies above the same baseline before you compare their variability.

  • Select cell E1 in the workbook from earlier.
  • Add the excess-return headers plus the first formulas by pasting this block:
Sprint Excess Return	Steady Excess Return
=B2-D2	=C2-D2

How does this calculation work?

  • The formula in E2 subtracts the assumed monthly risk-free return in D2 from Sprint's return in B2.
  • The formula in F2 applies the same baseline to Steady's return in C2.
  • Using the same baseline makes the later Sharpe comparison consistent.

The fill handle is easy to miss. It is the small blue square at the bottom-right corner of the selected cells.

  • Select the range E2:F2.
  • Drag the fill handle down through row 13.
  • Select cell E13.
  • Confirm the formula bar shows =B13-D13.
  • Select cell F13.
  • Confirm the formula bar shows =C13-D13.

You should see monthly percentage values throughout E2:F13. Each row now shows how much its strategy returned above or below the shared baseline.

Missing excess-return values?

  • Re-enter any formula that appears as text with = as its first character.
  • Select E2:F2 again if the fill stopped before row 13.
  • Check that every Sprint formula subtracts column D from column B.

Help me fix the excess-return formulas in my Sharpe ratio workbook.

Build the risk-adjusted summary

The summary needs a consistent measure of variability. Sample standard deviation treats the twelve monthly observations as a sample when measuring how widely the excess returns move around their average.

  • Select cell H3.
  • Add the volatility plus monthly Sharpe rows by pasting this block:
Sample volatility of excess return	=STDEV.S(E2:E13)	=STDEV.S(F2:F13)
Average monthly excess return	=AVERAGE(E2:E13)	=AVERAGE(F2:F13)
Monthly Sharpe ratio	=I4/I3	=J4/J3

What do these rows measure?

  • Row 3 measures the sample volatility of each excess-return series.
  • Row 4 calculates the average monthly excess return for each strategy.
  • Row 5 divides average excess return by sample volatility. A higher result indicates more historical excess return for each unit of variability.
  • Select the range I3:J4.
  • Open the Format menu.
  • Choose Number.
  • Select Percent.
  • Inspect cells I3:J5 to confirm all six calculations display numeric results.

You should see percentage values in rows 3 and 4. Row 5 should show two monthly Sharpe ratios.

Seeing a missing summary result?

  • Confirm the Sprint formulas reference E2:E13.
  • Confirm the Steady formulas reference F2:F13.
  • Check that each row 5 formula divides the value directly above it by the volatility in row 3.

Help me troubleshoot a missing Sharpe ratio result.

Annualize and record the decision

The annualized row uses an annualization assumption to scale the monthly Sharpe ratios by the square root of twelve. This comparison assumes zero serial correlation.

  • Select cell H6.
  • Add the assumption-based annualized results by pasting this block:
Annualized Sharpe, zero serial correlation assumption	=I5*SQRT(12)	=J5*SQRT(12)

Why label the annualization assumption?

Multiplying by SQRT(12) scales a monthly Sharpe ratio under a zero serial correlation assumption. Compounding or serial correlation makes the relationship more complex.

The label keeps the result useful without presenting the scaling rule as universal.

You should see annualized results in I6:J6.

  • Select cell K6.
  • Enter Square-root annualization is an assumption-based comparison and can be unreliable when returns are compounded or serially correlated..

Your annualized figures now carry the assumption needed to interpret them responsibly.

Before you compare the monthly Sharpe ratios, do you expect Sprint's higher average return to keep it in first place?

  • Compare the value in J5 with the value in I5.

You will see that J5 is greater than I5. Steady produces the higher monthly Sharpe ratio.

You have just overturned the first answer with a risk-adjusted comparison. Steady delivers more average excess return for each unit of variability.

  • Select cell H9.
  • Enter Sharpe winner.
  • Select cell I9.
  • Enter Steady.
  • Inspect cell J6.

You should now see Sprint recorded as the return-only winner in I8. You should see Steady recorded as the Sharpe winner in I9.

Does Sprint still have the higher Sharpe ratio?

  • Check that I5 contains =I4/I3.
  • Check that J5 contains =J4/J3.
  • Confirm the risk-free return was subtracted in every row of E2:F13.

Help me find why my Sharpe ratio ranking differs from the expected result.

✔️ Awesome, I've got everything!

Your workbook now contains the complete excess-return comparison. Confirm the workbook has stored your latest changes.

ⓧ I'd like to double check the full code

Compare your populated cells with this complete workbook reference.

Month	Sprint Return	Steady Return	Assumed Monthly Risk-Free Return	Sprint Excess Return	Steady Excess Return		Metric	Sprint	Steady
1	8%	1.8%	0.2%	=B2-D2	=C2-D2		Average monthly return	=AVERAGE(B2:B13)	=AVERAGE(C2:C13)
2	-6%	0.4%	0.2%	=B3-D3	=C3-D3		Sample volatility of excess return	=STDEV.S(E2:E13)	=STDEV.S(F2:F13)
3	10%	1.6%	0.2%	=B4-D4	=C4-D4		Average monthly excess return	=AVERAGE(E2:E13)	=AVERAGE(F2:F13)
4	-8%	0.2%	0.2%	=B5-D5	=C5-D5		Monthly Sharpe ratio	=I4/I3	=J4/J3
5	7%	1.5%	0.2%	=B6-D6	=C6-D6		Annualized Sharpe, zero serial correlation assumption	=I5*SQRT(12)	=J5*SQRT(12)	Square-root annualization is an assumption-based comparison and can be unreliable when returns are compounded or serially correlated.
6	-5%	0.5%	0.2%	=B7-D7	=C7-D7
7	9%	1.7%	0.2%	=B8-D8	=C8-D8		Return-only winner	Sprint
8	-7%	0.3%	0.2%	=B9-D9	=C9-D9		Sharpe winner	Steady
9	8%	1.4%	0.2%	=B10-D10	=C10-D10
10	-6%	0.6%	0.2%	=B11-D11	=C11-D11
11	10%	1.6%	0.2%	=B12-D12	=C12-D12
12	-4%	0.4%	0.2%	=B13-D13	=C13-D13

How to use this reference

Each line represents one workbook row. Blank positions preserve the empty column between the return data and the summary.

  • Confirm cells B2:F13 use percentage formatting.
  • Confirm cells I2:J4 use percentage formatting.
  • Confirm the annualization note sits beside row 6.

Your workbook now separates a high return from an efficient risk-adjusted return. The final decision reflects both reward and variability.

Next, you will test where that decision metric reaches its limit by comparing strategies with matching Sharpe ratios.

Expose Sharpe Ratio Limitations

Your Google Sheets workbook now ranks Steady above Sprint with the Sharpe ratio. That result corrected the return-only choice.

A single volatility score treats unusually large gains like unusually large losses. This step tests that blind spot with two matched return patterns.

In this step, get ready to:
  • Add the matched Crash-Prone and Upside-Spike return series.
  • Compare average return, sample volatility, and monthly Sharpe ratio.
  • Test whether the resulting scores support the same decision for both strategies.
Add the matched return series

The matched dataset places unusual months on opposite sides of a shared center. You can use it to test how the existing metric reacts to different return shapes.

  • Select cell L1 in the workbook from earlier.
  • Paste the matched monthly series into L1 by copying the block below:
Month	Crash-Prone	Upside-Spike
1	-4%	6%
2	-4%	6%
3	2%	0%
4	2%	0%
5	2%	0%
6	2%	0%
7	2%	0%
8	2%	0%
9	2%	0%
10	2%	0%
11	2%	0%
12	2%	0%

How is this dataset constructed?

  • Crash-Prone has two negative outliers followed by ten positive months.
  • Upside-Spike reflects those unusual months above the shared center.
  • Both series contain 12 hypothetical observations, so the comparison uses matching sample sizes.
  • Confirm that the paste fills the range L1:N13.
  • Check that Crash-Prone starts with two -4% months.
  • Check that Upside-Spike starts with two 6% months.

You should see 12 numbered months beneath the three headers. The remaining Crash-Prone returns show 2%. The remaining Upside-Spike returns show 0%.

Did the data land in one column?

  • Undo the paste.
  • Select cell L1 again.
  • Copy the complete tab-separated block before pasting it.

Help me fix the matched return dataset in Google Sheets.

Build the score comparison

The comparison applies the same formulas to both strategies. Sample standard deviation measures the total spread of each return series.

Before you calculate the results, predict whether the two return patterns receive the same Sharpe ratio.

  • Select cell P1.
  • Build the first four rows of the comparison block by pasting the data below:
Metric	Crash-Prone	Upside-Spike
Average monthly return	=AVERAGE(M2:M13)	=AVERAGE(N2:N13)
Sample volatility	=STDEV.S(M2:M13)	=STDEV.S(N2:N13)
Monthly Sharpe ratio	=(Q2-$D$2)/Q3	=(R2-$D$2)/R3

What do these formulas compare?

  • The AVERAGE formulas calculate each strategy's average monthly return.
  • The STDEV.S formulas calculate sample volatility from the 12 monthly observations.
  • The Sharpe formulas subtract the assumed monthly risk-free return in D2 before dividing by sample volatility.
  • Select the range Q2:R3.
  • Open Format from the menu bar.
  • Select Number.
  • Select Percent.
  • Compare the values across Q2:R4.

You should see matching average returns in Q2:R2. You should also see matching sample volatility in Q3:R3 and matching monthly Sharpe ratios in Q4:R4.

You have just made the limitation visible. The shared Sharpe score hides the direction of each strategy's unusual months.

Why does the tie matter?

Sharpe compares average excess return with total variability. Standard deviation gives equal weight to deviations above the average and deviations below it.

The tied score therefore cannot tell which strategy produced its variability through losses. The direction of the extreme returns still matters to the decision.

Do the first three metrics differ?

  • Check that the Crash-Prone formulas reference M2:M13.
  • Check that the Upside-Spike formulas reference N2:N13.
  • Check that both Sharpe formulas use the assumed risk-free return in $D$2.

Help me troubleshoot mismatched metrics in my comparison block.

Reveal the downside difference

A worst-month comparison isolates the most negative observation in each series. This adds a direct view of downside risk to the tied Sharpe results.

Before you add the final row, predict which strategy has the lower worst month.

  • Select cell P5.
  • Add the worst-month comparison by pasting the row below:
Worst month	=MIN(M2:M13)	=MIN(N2:N13)

What does this row show?

Each MIN formula returns the lowest monthly observation from its strategy's dataset. This exposes the direction that total volatility leaves hidden.

  • Select the range Q5:R5.
  • Open Format from the menu bar.
  • Select Number.
  • Select Percent.
  • Enter a one-sentence conclusion in P8 stating that the tie does not make the downside profiles equally desirable because Crash-Prone falls to -4% while Upside-Spike bottoms at 0%.
  • Compare the completed block across Q2:R5.

You should see matching values for average return, sample volatility, and monthly Sharpe ratio. The worst-month row should show -4% for Crash-Prone and 0% for Upside-Spike.

That is the comparison complete. Your workbook now proves that equal Sharpe ratios can hide materially different downside experiences.

Are the worst months incorrect?

  • Check that Q5 uses the Crash-Prone range M2:M13.
  • Check that R5 uses the Upside-Spike range N2:N13.
  • Check the pasted return series for missing percentage symbols.

Help me troubleshoot the worst-month formulas in Google Sheets.

✔️ Awesome, I've got everything!

Your matched return series and comparison block are complete. Confirm that your conclusion is entered in P8.

ⓧ I'd like to double check the full code

Compare your workbook with this cumulative range checklist.

  • The workbook is named Sharpe Ratio Decision Workbook.
  • The original return dataset remains unchanged in A1:D13.
  • The Sprint and Steady excess-return formulas remain filled through E2:F13.
  • The Sprint and Steady summary remains in H1:J6.
  • The return-only winner remains Sprint in I8.
  • The Sharpe winner remains Steady in I9.
  • The annualization note remains beside row 6.
  • The matched 12-month dataset fills L1:N13 exactly as pasted above.
  • The comparison labels and formulas fill P1:R5.
  • The percentage formatting covers Q2:R3 and Q5:R5.
  • The conclusion in P8 explains why the tied Sharpe ratios do not make both downside profiles equally desirable.

Secret mission

Add a Skewness Warning

Equal Sharpe ratios can hide opposite tail directions. You will add skewness labels for both strategies. You will finish with a reusable decision rule.

Clean Up Your Resources

Clean Up Your Resources

Choose whether to keep, pause, or delete your workbook. This project uses your existing Google Sheets account, so it creates no additional ongoing cost.

Resources you used:

  • The Google Sheets workbook named "Sharpe Ratio Decision Workbook".

Keep everything running

No action is needed. Choose this option to keep using the workbook as a portfolio-analysis template.

  • The Sprint and Steady comparison remains available for testing different assumed risk-free returns.
  • The Crash-Prone and Upside-Spike comparison remains available for demonstrating the Sharpe ratio's downside limitation.
  • The skewness calculations remain available as warnings about asymmetric tail directions.

Pause - I'll come back to this later

Closing the browser tab pauses your work without removing the workbook. Your model stays in your Google Sheets account for your next session.

  • Close the browser tab containing "Sharpe Ratio Decision Workbook".
  • Return to the workbook from your Google Sheets account when you are ready to continue.
  • Change the assumed monthly risk-free return to test how the Sharpe results respond.

Delete - I don't want to use this again

Remove the workbook if you no longer need its data or formulas. This deletes the only resource created during the project.

Deletion Removes Your Work

Deleting the workbook removes its return series, calculations, conclusions, and skewness warning from your account. Keep the workbook instead if you want to reuse the analysis later.

  • Use the open workbook's file menu to move "Sharpe Ratio Decision Workbook" to your Google account's trash.
  • Open your Google account's trash area to confirm "Sharpe Ratio Decision Workbook" is listed there.
  • Use the workbook's trash controls to delete it permanently from your Google account.
  • Check your account's workbook list to confirm "Sharpe Ratio Decision Workbook" no longer appears.

Nice Work!

Nice Work!

You made it! Your Sharpe Ratio Decision Workbook now compares return with risk-adjusted performance in Google Sheets. You also proved why one score can leave downside risk hidden.

You've learned how to:

  • Build a working historical Sharpe ratio model from monthly return data. The workbook calculates excess return plus sample volatility.
  • Compare raw return with risk-adjusted return. The evidence changes the winner from Sprint to Steady.
  • Annualize a monthly Sharpe ratio under a zero serial correlation assumption. The matched strategies expose how equal Sharpe ratios can hide different downside profiles.
  • Secret Mission: Add skewness as an asymmetric-risk warning. Negative skewness flags a left-tail warning. Positive skewness flags a right-tail pattern.

Ready to quiz yourself?