SOFR rate shock calculator
Enter your floating-rate facilities and see what each SOFR shock does to a year of interest expense, in dollars and in dollars per $1 million per basis point.
This calculator reprices a book of SOFR-based debt under a set of parallel rate shocks and reports the annual interest at each one. It is built for treasurers, CFOs and credit analysts who need a quick sensitivity table for a budget, a covenant test or a hedging discussion, and it handles margins, benchmark floors and partial hedges with swaps or caps.
Rate shock calculator
Facilities
Change in annual interest by shock
Features
- Several facilities at onceAdd term loans, drawn revolvers and construction loans as separate rows, each with its own balance, margin and floor, and see the total.
- Floors that actually bindA benchmark floor is applied to the shocked SOFR, so down-shocks stop passing through once the floor is reached.
- Swaps and caps on part of a balanceHedge any share of a facility with a pay-fixed swap or a purchased cap and the hedged slice is repriced correctly in every scenario.
- Base rate from the dataStart from the latest published SOFR or the 30-day Average SOFR in this site's New York Fed snapshot, or type your own.
- Dollars per $1 million per basis pointEach shock shows the change per $1 million of debt per bp, the interest-expense analogue of DV01, so non-linear effects stand out.
- Chart and CSVA bar chart of the change versus base and a one-click CSV of the full matrix for a board pack or model.
How to use the rate shock calculator
- Choose the base SOFR. The default is the latest published rate; pick the 30-day Average SOFR if your loans reset on an average, or type a rate to test a different starting point.
- Edit the shock list. Use the bp moves your policy or lender asks for, separated by commas.
- Enter each facility: outstanding balance, margin in bp over SOFR, and the floor if the agreement has one (leave it blank for none). If part of the balance is hedged, choose swap or cap, the hedged share and the swap's fixed rate or the cap's strike.
- Read the matrix. The headline is the change at the largest up-shock; the table shows every scenario by facility, and the last column shows dollars per $1 million per bp.
- Download the CSV if you need the numbers elsewhere.
How the shock is calculated
The formula
For each shock the calculator moves SOFR in parallel, applies each facility's floor, adds the margin, adjusts the hedged share, and annualizes on the chosen day-count basis.
On ACT/360 a year of interest is 365/360 of the quoted rate, so an unhedged, unfloored balance moves by $101.39 per $1 million for each basis point. On ACT/365F or 30/360 the same move is exactly $100. That figure is the quickest sanity check on any output: hedging and floors can only reduce its size, never raise it. With a swap struck below a binding loan floor it can turn negative, because the loan stops falling while the swap keeps paying more.
Floors, swaps and caps: the conventions used
The floor is applied to the benchmark rate, not to the all-in rate; if your agreement floors something else, the down-shock rows will differ. The swap is modeled as the borrower paying a fixed rate and receiving SOFR on the hedged notional, with no floor of its own. That matters on the way down: if SOFR falls through the loan floor, the loan still charges the floor while the swap keeps paying SOFR, and the borrower loses the difference. This is commonly called a floor mismatch, and the calculator shows it rather than hiding it.
The cap is modeled as a purchased cap that pays SOFR above the strike on the hedged notional. Its premium is a sunk cost and is not included; add it to the margin as an annualized bp figure if you want it in the all-in rate. Shocks are applied as a level change held for a full year, so the table reads as an annual run-rate, not a forecast of the next twelve months of resets.
Worked example: $25 million at SOFR + 250 bp, 60% swapped
SOFR for October 8, 2026 was 3.87%. Take a $25,000,000 term loan at SOFR + 250 bp with a 0% floor on ACT/360, and assume 60% of the balance is swapped to a hypothetical fixed rate of 3.50%.
Base case. The unhedged 40% pays 3.87% + 2.50% = 6.37%. The swapped 60% pays 6.37% − 3.87% + 3.50% = 6.00%. The blended all-in rate is 0.4 × 6.37% + 0.6 × 6.00% = 6.148%. A year of interest is $25,000,000 × 6.148% × 365/360 = $1,558,347.22.
+100 bp. SOFR goes to 4.87%. Only the unhedged 40% reprices, so the all-in rate rises 40 bp to 6.548% and interest rises to $1,659,736.11, an increase of $101,388.89. Per $1 million per bp that is $101,388.89 ÷ 25 ÷ 100 = $40.56, which is 40% of the unhedged $101.39.
Without the swap, the same +100 bp would add $253,472.22 to a base of $1,614,618.06.
| Shock | SOFR | All-in rate | Annual interest | Change vs base |
|---|---|---|---|---|
| −100 bp | 2.87% | 5.748% | $1,456,958.33 | −$101,388.89 |
| −50 bp | 3.37% | 5.948% | $1,507,652.78 | −$50,694.44 |
| −25 bp | 3.62% | 6.048% | $1,533,000.00 | −$25,347.22 |
| 0 | 3.87% | 6.148% | $1,558,347.22 | $0.00 |
| +25 bp | 4.12% | 6.248% | $1,583,694.44 | +$25,347.22 |
| +50 bp | 4.37% | 6.348% | $1,609,041.67 | +$50,694.44 |
| +100 bp | 4.87% | 6.548% | $1,659,736.11 | +$101,388.89 |
Now give the same loan a 3.00% floor. In the −100 bp case SOFR would be 2.87%, below the floor, so the loan charges 3.00% + 2.50% = 5.50%. The unhedged 40% saves only 87 bp, and the swapped 60% now pays 5.50% − 2.87% + 3.50% = 6.13%, 13 bp more than in the base case. Interest falls by $68,437.50 instead of $101,388.89. Up-shocks are unchanged, because the floor is not touched.
Who should use this, and when to use something else
Use this calculator for a one-number answer to "what does a move in SOFR cost us over a year" across several facilities, including the effect of existing hedges. It is the right tool for budget sensitivity, lender-requested interest-rate sensitivity tables and sizing a new hedge. If you need the actual cash flows on specific payment dates, with amortization and a rate path that changes over time, use the floating-rate loan calculator. For the interest on one period with an observed SOFR, use the compounded SOFR calculator or the SOFR interest calculator.
Results are estimates. The credit agreement, the swap confirmation and the cap confirmation govern actual payments, and this is not hedging or financial advice. The model holds balances constant, applies each shock as a parallel move held for a full year, treats swap and loan as accruing on the same basis, and ignores lookbacks, reset lags, amortization, cap premiums and the different reset timing of loans priced on CME Term SOFR. If a loan floor sits close to the base rate, look at the down-shock rows closely: that is where the non-linearity lives.
What size of shock is historically plausible
A shock set is only useful if it spans moves that have actually happened. The New York Fed data on this site go back to April 2, 2018, and they show that a ±100 bp grid is narrow relative to several of the years since.
| Year | First print | Last print | SOFR change | Target-range change |
|---|---|---|---|---|
| 2018 (from Apr 2) | 1.80% | 3.00% | +120 bp | +75 bp |
| 2019 | 3.15% | 1.55% | −160 bp | −75 bp |
| 2020 | 1.54% | 0.07% | −147 bp | −150 bp |
| 2021 | 0.10% | 0.05% | −5 bp | 0 bp |
| 2022 | 0.05% | 4.30% | +425 bp | +425 bp |
| 2023 | 4.31% | 5.38% | +107 bp | +100 bp |
| 2024 | 5.40% | 4.49% | −91 bp | −100 bp |
| 2025 | 4.40% | 3.87% | −53 bp | −75 bp |
| 2026 (to Oct 8) | 3.75% | 3.87% | +12 bp | +25 bp |
Year-end prints distort this view. SOFR printed 3.00% on December 31, 2018, 54 bp above the prior day, and 3.15% on January 2, 2019, which is why the 2019 fall looks twice as large as the 75 bp of target-range cuts that year. December 31, 2025 printed 3.87% against 3.71% the day before. For a cleaner read, compare monthly averages instead.
Twelve-month moves in monthly average SOFR
Averaging each calendar month's daily SOFR prints and comparing every month with the same month a year earlier gives 90 twelve-month windows, from April 2019 through September 2026. Of those:
- 16 (18%) moved 25 bp or less, and 22 (24%) moved 50 bp or less.
- 54 (60%) moved 100 bp or less, which means 36 windows (40%) moved by more than 100 bp.
- 69 (77%) moved 200 bp or less.
- The largest rise was April 2023 against April 2022, +452 bp. The largest fall was April 2020 against April 2019, −246 bp.
- The most recent window, September 2026 against September 2025, was −55 bp (monthly averages of 3.75% and 4.30%).
These are counts of what happened, not probabilities of what will. They do suggest that a grid stopping at ±100 bp covered only about three in five of the twelve-month moves since 2019, and that adding ±200 bp and an extreme up case would have covered the 2022–2023 tightening.
Frequently asked questions
- What is a reasonable shock to test?
- The shocks should come from your own policy or your lender's reporting requirement; the calculator does not pick them. As a check on range, the data above show that 40% of twelve-month windows since 2019 moved more than 100 bp, and the largest rise was +452 bp, so a ±100 bp grid alone understates what has happened before.
- Why is the change per $1 million per bp $101.39 rather than $100?
- On ACT/360 a full year has 365 accrual days divided by 360, so 1 bp on $1,000,000 costs $100 × 365/360. Switch the basis to ACT/365F or 30/360 to see exactly $100.
- Why does my per-bp figure change between shocks?
- Because something non-linear is in play: a floor that binds on the down side, or a cap that starts paying on the up side. With no floor and no cap, every shock gives the same figure.
- Should I use latest SOFR or the 30-day Average as the base?
- Use the rate your loans actually reset on. Daily SOFR compounded in arrears tracks the overnight print; a loan on 30-day Average SOFR resets to a smoothed number that lags it. With no floor or cap in range, the choice moves the base case but not the size of each shock; if a floor or cap strike is near either rate, it changes the shock results too.
- Does the calculator work for loans on other benchmarks?
- The shock arithmetic is the same whatever the base rate, and the manual base accepts any rate you choose. This site does not publish CME Term SOFR, which is licensed by CME Group.
- How are hedges with a different notional handled?
- Express the hedge as a share of the facility balance. If a $40 million swap covers a $50 million loan, enter 80%. Over-hedging above 100% is not accepted, because the excess is a standalone position, not part of the loan's cost.
Privacy and data
All calculations run in your browser. The base rates come from a dated snapshot of New York Fed SOFR and SOFR Averages data served from this site, currently through October 8, 2026. Balances, names and hedge terms you enter are not sent or stored anywhere.