Home › Templates › Trading risk management spreadsheet
Trading Risk Management Spreadsheet
A free trading risk management spreadsheet for Excel and Google Sheets: write down your own limits once, and it sizes each stock, forex or futures trade from your risk per trade, adds up the open risk ("heat") of every position, flags STOP days against daily and weekly loss limits, tracks drawdown from your equity peak and cuts the next day's size when the drawdown reaches your line.
Use it in Google Sheets: choose File → Import → Upload in Sheets and pick the .xlsx, or upload it to Google Drive and open it with Google Sheets. No sign-up, no broker connection: you type your prices, stops and daily P/L yourself.
| Date | Realized P/L | End equity | Day % | Daily limit | Rolling 7-day % | Weekly limit | Drawdown | Size next day |
|---|---|---|---|---|---|---|---|---|
| 4 Sep | -$339.40 | $33,600.14 | -1.00% | OK | 1.49% | OK | 1.00% | 1.00 |
| 8 Sep | -$1,075.20 | $32,524.94 | -3.20% | STOP | -2.63% | OK | 4.17% | 1.00 |
| 9 Sep | $162.62 | $32,687.56 | 0.50% | OK | -2.15% | OK | 3.69% | 1.00 |
| 10 Sep | -$326.88 | $32,360.68 | -1.00% | OK | -4.65% | OK | 4.65% | 1.00 |
| 11 Sep | -$453.05 | $31,907.63 | -1.40% | OK | -5.04% | OK | 5.99% | 1.00 |
| 14 Sep | -$989.14 | $30,918.49 | -3.10% | STOP | -7.98% | STOP | 8.90% | 1.00 |
| 15 Sep | -$247.35 | $30,671.14 | -0.80% | OK | -5.70% | OK | 9.63% | 1.00 |
| 16 Sep | -$306.71 | $30,364.43 | -1.00% | OK | -7.11% | STOP | 10.53% | 0.50 |
| 17 Sep | $91.09 | $30,455.52 | 0.30% | OK | -5.89% | OK | 10.27% | 0.50 |
| 18 Sep | -$182.73 | $30,272.79 | -0.60% | OK | -5.12% | OK | 10.80% | 0.50 |
| 21 Sep | $60.55 | $30,333.34 | 0.20% | OK | -1.89% | OK | 10.63% | 0.50 |
| 22 Sep | -$75.83 | $30,257.51 | -0.25% | OK | -1.35% | OK | 10.85% | 0.50 |
| 23 Sep | $166.42 | $30,423.93 | 0.55% | OK | 0.20% | OK | 10.36% | 0.50 |
| 24 Sep | $0.00 | $30,423.93 | 0.00% | OK | -0.10% | OK | 10.36% | 0.50 |
| 25 Sep | $228.18 | $30,652.11 | 0.75% | OK | 1.25% | OK | 9.69% | 1.00 |
What's inside the spreadsheet
| Tab | What you type | What it calculates |
|---|---|---|
| Start here | Nothing | Steps, how the maths works, colour key, limits, disclaimer |
| Rules | Account size, risk % per trade, max daily loss %, max weekly loss %, max open risk (heat) %, max open positions, drawdown line, size-cut factor | Current equity, equity peak, drawdown, size multiplier now, risk per trade in $, daily/weekly/heat limits in $, a settings check |
| Position sizer | Instrument (stock, forex, futures), side, entry, stop, futures contract; optional point value, size step and risk % override | Risk budget, point value, risk per unit, size rounded down, actual $ and % risk, notional value and leverage, heat after the trade (OK/OVER), positions check, 1R/2R/3R target prices and P/L |
| Open positions | Up to 50 open trades: symbol, side, type, entry, current stop, size, point value; up to 200 closed trades: date, entry, initial stop, exit, size | Risk to stop per position and % of equity, total heat vs your limit (OK/OVER), positions vs max; initial risk, P/L and R multiple per closed trade |
| Daily log | Up to 300 trading days: date, realized P/L, deposit/withdrawal, trades, notes | Start/end equity, day P/L % vs daily limit (STOP), rolling 7-day P/L and % vs weekly limit (STOP), equity peak, drawdown, size multiplier for the next day, a row check |
| Summary | Nothing | Equity, drawdown, multiplier, heat and status now; days logged, best/worst day, STOP days, max drawdown, days at reduced size; R-multiple statistics; equity and drawdown charts (last 60 logged days) |
| Example Rules, Example Position sizer, Example Open positions, Example Daily log, Example Summary | Already filled | A fictional account with 64 trading days, 5 open positions and 20 closed trades, so every formula can be seen working |
The rules are yours: the template has no built-in percentages and the example values are only there to show the arithmetic. For one-off checks without a spreadsheet, the position size calculator and the lot size calculator do the sizing step; to write the rules themselves down in words, start from the trading plan template.
How to use it
- Open Rules and type your account size and your limits in the yellow cells (type 1% as
1%or0.01). The settings check inB23says OK when the inputs make sense together. - Before each trade, open Position sizer: pick the instrument and side, type entry and stop, and for futures pick the contract. Read the size in
B25, the dollar risk, and the heat and position checks below it. - After you enter, add the trade to Open positions with its stop. When you move the stop, update it there: the heat total follows.
- When a trade closes, delete it from the open list and, if you want R statistics, add it to the closed-trades table (columns M–X) with its initial stop.
- At the end of each trading day, add one row to Daily log: the date and the realized P/L after fees (0 on a flat day), plus any deposit or withdrawal. Column P says OK when the row is complete.
- Read the flags: STOP in the daily or weekly limit column means your own rule says stop for the day or the week. A multiplier below 1 means tomorrow's risk budget on the Rules and Position sizer tabs is already cut.
- Check Summary weekly: drawdown, days stopped out and, once you have closed trades, the R-multiple statistics.
Position sizing: the formula and three worked examples
Every size in the file comes from one line: size = risk budget ÷ (|entry − stop| × point value), rounded down to the size step. The risk budget is current equity × risk % per trade × the size multiplier. The point value is the dollar gain or loss of one share, unit or contract for a 1.0 move in price.
| Example (fictional prices) | Entry | Stop | Point value | Risk per unit | Raw size | Size | Planned risk |
|---|---|---|---|---|---|---|---|
| Micro E-mini S&P 500 (MES), long | 6,800 | 6,780 | $5 | $100.00 | 3.06 | 3 contracts | $300.00 |
| E-mini S&P 500 (ES), same prices | 6,800 | 6,780 | $50 | $1,000.00 | 0.31 | 0 contracts | $0.00 |
| Stock, long | 48.50 | 46.75 | $1 | $1.75 | 174.60 | 174 shares | $304.50 |
| EUR/USD, long (step 1,000 units) | 1.0850 | 1.0790 | $1 | $0.0060 | 50,925 | 50,000 units | $300.00 |
All four use the example's risk budget of $305.55 (equity $30,555.15 × 1% × multiplier 1.00). The MES row is the Example Position sizer tab. Its 1R, 2R and 3R targets are 6,820, 6,840 and 6,860, worth $300, $600 and $900 before costs. The ES row shows why contract size matters: one ES contract would risk $1,000 on the same stop, more than the whole budget, so the size is 0 and the sheet says so.
Notional value is not risk. Three MES contracts at 6,800 control $102,000 of index exposure, 3.34 times the account, even though the planned loss at the stop is $300. The sizer shows both so the leverage is visible. The risk/reward calculator covers the target side in more detail.
Futures point values (CME Group)
CME Group's Micro E-mini FAQ lists the multipliers: the S&P 500 row reads "$5" for the Micro E-mini and "$50" for the E-mini, the Nasdaq-100 row "$2" and "$20", the Dow "$0.50" and "$5", and the Russell 2000 "$5" and "$50". The same page names the codes MES, MNQ, MYM and M2K and refers to "E-mini S&P 500 (ES) futures". The Position sizer's contract table starts with these; add your own contracts in the empty rows from the exchange's contract specifications.
| Code | Contract | $ per index point | Risk of a 20-point stop, 1 contract |
|---|---|---|---|
| ES | E-mini S&P 500 | $50 | $1,000 |
| MES | Micro E-mini S&P 500 | $5 | $100 |
| MNQ | Micro E-mini Nasdaq-100 | $2 | $40 |
| MYM | Micro E-mini Dow | $0.5 | $10 |
| M2K | Micro E-mini Russell 2000 | $5 | $100 |
Open risk ("heat") and the position limit
Heat is what you would lose if every open stop were hit at once. Each position adds (entry − stop) × size × point value for a long, or (stop − entry) × size × point value for a short. A position whose stop has moved to or past the entry adds 0, because its stop no longer risks the starting capital.
| Symbol | Side | Type | Entry | Stop | Size | Point value | Risk to stop | % of equity |
|---|---|---|---|---|---|---|---|---|
| STK-A | Long | Stock | 84.2 | 81.9 | 70 | 1 | $161.00 | 0.53% |
| STK-B | Short | Stock | 142.6 | 146.1 | 40 | 1 | $140.00 | 0.46% |
| EUR/USD | Long | Forex | 1.085 | 1.079 | 23,000 | 1 | $138.00 | 0.45% |
| MES | Long | Futures | 6,800 | 6,780 | 1 | 5 | $100.00 | 0.33% |
| STK-C | Long | Stock | 51.1 | 51.4 | 120 | 1 | $0.00 | 0.00% |
| Total heat | $539.00 | 1.76% |
Total heat is $539.00, 1.76% of $30,555.15 equity, under the 6% limit, so the status is OK. STK-C counts as an open position but adds no heat. The position count is 5 of a maximum of 5, which is why the Example Position sizer shows OVER on the positions line for the MES trade: a sixth position would break the rule, even though heat after the trade (2.75%) would still be OK.
Daily and weekly loss limits
Daily: day P/L % = realized P/L ÷ start-of-day equity. At or below −3% the day is flagged STOP. In the example, 8 Sep lost -$1,075.20 (-3.20%) and 14 Sep lost -$989.14 (-3.10%).
Weekly: the sheet adds up P/L over the last 7 calendar days (the current row and the rows with a date in the 6 days before it) and divides by equity at the start of that window. That is a rolling week, so a bad Thursday–Wednesday stretch is caught even when it crosses a weekend. On 14 Sep the rolling 7-day loss was -7.98% and on 16 Sep -7.11%, both past −6%. On 16 Sep the day itself lost only -1.00%, so only the weekly flag fires.
The flags do not stop anyone from trading; they show that your own rule was reached. The trading checklist is a place to write what you do on a STOP day.
Drawdown and the size-cut rule
Drawdown = 1 − end-of-day equity ÷ equity peak. The peak is the highest end-of-day equity so far, moved up or down by deposits and withdrawals so that moving money does not look like a gain or a loss. When the drawdown is at or beyond your line, the size multiplier for the next day becomes the size-cut factor; otherwise it is 1.
In the example, equity peaked at $33,939.54 before September. After 16 Sep the drawdown reached 10.53%, past the 10% line, so from 17 Sep the risk budget was halved. The maximum drawdown was 10.85% on 22 Sep 2026. The multiplier went back to 1 after 25 Sep, when the drawdown fell under 10%, and switched on again for single days on 7 and 9 Oct. In total 9 days were traded at half size. The $1,500 withdrawal on 1 Oct lowered equity and the peak by the same amount, so it was not counted as a trading loss. To see how the chance of a deep drawdown depends on risk per trade, try the risk of ruin calculator.
R-multiples: judging trades by risk
An R multiple is the trade's P/L divided by its initial risk (entry to initial stop × size × point value). A trade that loses exactly its planned risk is −1R; a loss bigger than −1R usually means slippage, a gap or a moved stop. The closed-trades table on the Open positions tab works out R for each trade and the Summary adds them up.
| Closed | Symbol | Side | Entry | Initial stop | Exit | Size | Initial risk | P/L | R |
|---|---|---|---|---|---|---|---|---|---|
| 4 Aug | STK-D | Long | 40 | 38.8 | 42.1 | 250 | $300.00 | $525.00 | 1.75R |
| 6 Aug | STK-E | Short | 95.5 | 97.4 | 97.4 | 150 | $285.00 | -$285.00 | -1.00R |
| 11 Aug | MES | Long | 6,610 | 6,590 | 6,652 | 3 | $300.00 | $630.00 | 2.10R |
| 13 Aug | EUR/USD | Short | 1.092 | 1.097 | 1.0855 | 60,000 | $300.00 | $390.00 | 1.30R |
| 19 Aug | STK-F | Long | 22.4 | 21.7 | 21.7 | 420 | $294.00 | -$294.00 | -1.00R |
| 25 Aug | STK-D | Long | 43 | 41.6 | 46.3 | 210 | $294.00 | $693.00 | 2.36R |
| Example Summary: R statistics | Value |
|---|---|
| Closed trades | 20 |
| Wins / losses / break-even | 10 / 9 / 1 |
| Win rate | 50.0% |
| Average R per trade | 0.45R |
| Average win / average loss | 1.78R / -0.98R |
| Total R | 8.92R |
| Best / worst trade | 2.36R / -1.35R |
These are the 20 fictional closed trades on the Example tab, a separate sample from the Daily log, there only to show the formulas. The worst trade is -1.35R: the exit was worse than the initial stop, which is how slippage shows up in R. Twenty trades say very little about any method; the article on why win rate alone doesn't matter explains why the average R matters more than the win rate on its own.
A stop is not a guaranteed exit
All planned risk in the sheet assumes the stop fills at the stop price. The SEC's Investor.gov bulletin on stop, stop-limit and trailing stop orders (updated 18 Aug 2026) says: "When the stop price is reached, a stop order becomes a market order" and "The stop price is not the guaranteed execution price for a stop order." It adds that the execution price "can deviate significantly from the stop price due to the prices of available liquidity", and that "As with all limit orders, a stop-limit order may not be executed if the stock’s price moves away from the specified limit price".
So a gap through the stop can turn a planned −1R into −2R or worse, and the heat total is a planned figure, not a ceiling. Margin adds a second layer: Investor.gov's Understanding Margin Accounts bulletin warns "You can lose more money than you have invested" and "Your brokerage firm may sell some or all of your securities without consulting you to pay off your margin loan".
Futures leverage. The risk disclosure that futures brokers must give customers under CFTC Rule 1.55 (17 CFR 1.55(b)) begins: "The risk of loss in trading commodity futures contracts can be substantial." It continues: "You may sustain a total loss of the funds that you deposit with your broker to establish or maintain a position in the commodity futures market, and you may incur losses beyond these amounts." It also notes that "Under certain market conditions, you may find it difficult or impossible to liquidate a position."
The pattern day trader rule in 2026: what changed
Many risk sheets still hard-code the old US rule. Investor.gov's glossary entry describes it: "FINRA rules define a “pattern day trader” as any customer who executes four or more “day trades” within five business days, provided that the number of day trades represents more than six percent of the customer’s total trades in the margin account for that same five business day period", and such customers "must have at least $25,000" in the account.
That is changing. FINRA Regulatory Notice 26-10 (20 April 2026) states that "The SEC has approved" FINRA's amendments to Rule 4210 and says the new intraday margin standards "replace in their entirety the outdated day trading margin requirements, including the day trade count requirements for designating a customer as a “pattern day trader” and the $25,000 pattern day trader minimum equity requirement". Status as FINRA states it:
- Effective date: "Effective Date: June 4, 2026; Phase-in Period: Ends October 20, 2027".
- Transition: FINRA's investor page Understanding the New Intraday Margin Requirements says "Your firm might continue operating under the old day trading margin requirements during the transition".
- Margin minimum stays: the same page says "$2,000 is the minimum equity required to engage in leveraged trading (trading on margin)."
The template has no PDT counter for that reason. Whether your account still sees the old $25,000 rule between 4 June 2026 and 20 October 2027 depends on your broker. The intraday margin rules apply to your margin balance; they do not replace your own daily loss limit.
The formulas, explained
Exact formulas from the file (row 9 on Open positions and Daily log). On Daily log, A is the date, B the realized P/L, C deposits, F/G start and end equity, M the peak, N the drawdown and P the row check. Rules!B5–B12 are your settings; Rules!B15 is current equity.
| Field | Formula |
|---|---|
| Rules: current equity (B15) | =IF(COUNT('Daily log'!$G$8:$G$307)=0,N(B5),INDEX('Daily log'!$G$8:$G$307,MATCH(9.99E+307,'Daily log'!$G$8:$G$307))) |
| Rules: risk per trade now (B19) | =N(B15)*N(B6)*B18 |
| Position sizer: point value used (B20) | =IF(N(B11)>0,B11,IF(B6="Futures",IFERROR(INDEX($H$6:$H$15,MATCH(B10,$F$6:$F$15,0)),""),1)) |
| Position sizer: risk budget (B19) | =IF(B13<>"",N(B17)*B13*B18,Rules!$B$19) |
| Position sizer: size, rounded down (B25) | =IF(B16<>"OK","",ROUNDDOWN(B23/B24,0)*B24) |
| Position sizer: 2R target price (B38) | =IF($B$16<>"OK","",$B$8+IF($B$7="Long",1,-1)*2*$B$21) |
| Open positions: risk to stop (I9) | =IF(K9<>"OK","",MAX(0,IF(B9="Long",D9-E9,E9-D9))*F9*IF(G9="",1,G9)) |
| Open positions: heat status (E5) | =IF(OR(B5="",N(D5)=0),"",IF(B5>D5,"OVER","OK")) |
| Open positions: R multiple (W9) | =IF(X9<>"OK","",V9/U9) |
| Daily log: end equity (G9) | =IF(P9<>"OK","",F9+B9+N(C9)) |
| Daily log: daily limit flag (I9) | =IF(OR(H9="",N(Rules!$B$7)=0),"",IF(H9<=-Rules!$B$7,"STOP","OK")) |
| Daily log: rolling 7-day P/L (J9) | =IF(P9<>"OK","",SUMIFS(B$8:B9,A$8:A9,">"&(A9-7),P$8:P9,"OK")) |
| Daily log: equity peak (M9) | =IF(P9<>"OK","",MAX(IF(COUNT(M$8:M8)=0,N(Rules!$B$5),INDEX(M$8:M8,MATCH(9.99E+307,M$8:M8)))+N(C9),G9)) |
| Daily log: drawdown (N9) | =IF(P9<>"OK","",IF(N(M9)<=0,"",MAX(0,1-G9/M9))) |
| Daily log: size multiplier next day (O9) | =IF(P9<>"OK","",IF(OR(N(Rules!$B$11)=0,N(N9)<Rules!$B$11),1,IF(OR(Rules!$B$12="",N(Rules!$B$12)<0,N(Rules!$B$12)>1),1,Rules!$B$12))) |
| Summary: average R per trade (B34) | =IF(B30=0,"",SUM('Open positions'!$W$9:$W$208)/B30) |
Last value without arrays. INDEX(range,MATCH(9.99E+307,range)) returns the last number in a column and skips the blank-looking text cells of unfinished rows. It works in Excel, Google Sheets and LibreOffice without array formulas.
Rounding down. ROUNDDOWN(raw/step,0)*step keeps the planned risk at or under the budget. Rounding to the nearest unit could put it slightly over.
Rows that don't count. A Daily log row with no P/L, a text deposit or a date that is not after the rows above shows a message in column P and is left out of every total, equity chain and flag.
Common mistakes
- Sizing from the account size forever. Risk % should apply to current equity; the sheet does this automatically from the Daily log.
- Forgetting the point value. A 20-point stop is $100 on one MES contract and $1,000 on one ES contract. For forex pairs not quoted in USD, type the USD value of a 1.0 move per unit as the point value.
- Counting only new trades in heat. Every open position with a stop below entry (above, for shorts) still has risk; update stops as they move.
- Treating the stop as the worst case. Gaps and fast markets can fill beyond the stop (see the Investor.gov quote above).
- Logging P/L before fees. Commissions and fees are part of the day's loss; enter realized P/L after them.
- Logging deposits as profit. Put deposits and withdrawals in column C, not in P/L, or the limits and drawdown will be wrong.
Limits
- One currency and no live prices: you type entries, stops and daily P/L. No broker connection.
- Heat is measured from entry to stop, not from the current price, so open profit you could give back is not counted.
- The weekly limit is a rolling 7 calendar days, not a Monday-to-Friday week. Dates must go up row by row.
- Fees, slippage, gaps, margin and overnight financing are not modelled in the sizer.
- Up to 300 logged days, 50 open positions and 200 closed trades per file. The charts show the last 60 logged days; while fewer than 60 days are logged, the last value repeats to the right.
- Recalculation was tested in LibreOffice; the file uses only functions that also exist in Excel 2016+ and Google Sheets.
FAQ
How do you calculate position size from risk?
Decide the dollar risk first (account equity × risk % per trade), then divide it by the loss on one share, unit or contract if the stop is hit: |entry − stop| × point value. Round down. For example, a $305.55 budget with a 20-point stop on the Micro E-mini S&P 500 ($5 per point, so $100 per contract) gives 3.06, rounded down to 3 contracts and $300 of planned risk.
What is portfolio heat in trading?
Heat is the total amount you would lose if every open position hit its stop at the same time, usually shown as a percentage of equity. The template adds (entry − stop) × size × point value for each long (the reverse for shorts), counts a position as 0 once its stop is at or past entry, and flags OVER when the total is above your heat limit.
Does a stop-loss order guarantee my maximum loss?
No. The SEC's Investor.gov bulletin says "When the stop price is reached, a stop order becomes a market order" and "The stop price is not the guaranteed execution price for a stop order." A gap or thin market can fill you worse than the stop, so real losses can be larger than the risk the sheet plans.
Is the $25,000 pattern day trader rule still in effect?
FINRA Regulatory Notice 26-10 (20 April 2026) says the new intraday margin standards "replace in their entirety" the day trading margin requirements, including the pattern day trader designation and the $25,000 minimum equity requirement. The change took effect on 4 June 2026, but firms may phase it in until 20 October 2027 and may keep the old rules during that time, so ask your broker which rules apply to your account.
What is a daily loss limit and how does the drawdown rule work?
A daily loss limit is the most you allow yourself to lose in one day, as a % of start-of-day equity; the Daily log marks a day STOP when the loss reaches it. The drawdown rule compares end-of-day equity with its highest point so far; when the gap reaches your line (10% in the example), the next day's risk per trade is multiplied by the size-cut factor (0.5) until equity recovers above the line.
Can I use this trading risk management template in Google Sheets?
Yes. In Google Sheets choose File → Import → Upload and pick the .xlsx, or upload it to Google Drive and open it with Google Sheets. The formulas use IF, AND, OR, NOT, N, ISNUMBER, ISNA, IFERROR, COUNT, COUNTA, COUNTIF, COUNTIFS, SUMIFS, SUMPRODUCT, AVERAGEIF, LEN, SUM, MAX, MIN, ABS, ROUNDDOWN, INDEX and MATCH, which work in Excel 2016+, Google Sheets and LibreOffice. No macros, no dynamic arrays.
Related tools and templates
- Position size calculatorSize one trade from risk and stop
- Risk/reward calculatorTargets vs stop distance
- Risk of ruin calculatorDrawdown odds by risk per trade
- Lot size calculatorForex lots from risk and pips
- Position size spreadsheetSizing only, in Excel
- Trading plan templateWrite your rules down
- Trading checklistBefore, during and after a trade
- Day trading journalLog every trade and review
- All templatesFree spreadsheets
Educational template only, not financial advice and not a recommendation of any risk percentage, instrument or strategy. Example data is fictional: the account, prices, trades and results are made up to show the formulas. Trading stocks, forex and futures, especially on margin, can lose more than the planned risk. FINRA, SEC/Investor.gov, CFTC (eCFR) and CME Group material was retrieved on 3 November 2026.