How to Calculate Sofr Compounded Rate

SOFR Compounded Rate Calculator

Calculate annualized compounded SOFR based on the NY Fed SOFR Index

Actual/360 (Standard) Actual/365
Annualized Compounded SOFR Rate:
0.00%

Understanding the SOFR Compounded Rate

The Secured Overnight Financing Rate (SOFR) is the broad measure of the cost of borrowing cash overnight collateralized by Treasury securities. Unlike LIBOR, which was based on bank estimates, SOFR is based on actual transaction data. Because SOFR is an overnight rate, most financial products (like loans or derivatives) use a Compounded SOFR rate to cover a specific interest period (e.g., 30, 90, or 180 days).

The SOFR Index Method

The most accurate and efficient way to calculate the compounded rate for a specific period is using the SOFR Index published daily by the Federal Reserve Bank of New York. The Index reflects the cumulative impact of compounding SOFR since April 2, 2018.

The Formula

Rate = [(Index End / Index Start) – 1] × (Day Count / Number of Days) × 100

Calculation Example

  • Start Index (July 1): 1.04523120
  • End Index (July 31): 1.05012458
  • Days in Period: 30
  • Day Count Basis: 360

Calculation: ((1.05012458 / 1.04523120) – 1) × (360 / 30) × 100 = 5.6181%

Why Use Compounded SOFR?

Daily compounding accurately reflects the time value of money and the actual cost of carry in the repo markets. While "Simple Average SOFR" merely averages the daily rates, "Compounded SOFR" accounts for the interest earned on interest during the period, which is the standard requirement for most ISDA-based contracts and commercial loan agreements.

function calculateCompoundedSOFR() { var indexStart = parseFloat(document.getElementById('sofrIndexStart').value); var indexEnd = parseFloat(document.getElementById('sofrIndexEnd').value); var days = parseFloat(document.getElementById('calendarDays').value); var basis = parseFloat(document.getElementById('dayCountConvention').value); var errorColor = "#fed7d7"; var resultWrapper = document.getElementById('sofrResultWrapper'); var resultValue = document.getElementById('sofrResultValue'); // Reset styles resultWrapper.style.backgroundColor = "#f7fafc"; if (isNaN(indexStart) || isNaN(indexEnd) || isNaN(days) || days <= 0 || indexStart <= 0) { resultWrapper.style.display = "block"; resultWrapper.style.backgroundColor = errorColor; resultValue.innerHTML = "Invalid Input"; resultValue.style.fontSize = "20px"; return; } // Formula: ((Index_End / Index_Start) – 1) * (Basis / Days) var compoundedRate = ((indexEnd / indexStart) – 1) * (basis / days) * 100; resultWrapper.style.display = "block"; resultValue.style.fontSize = "36px"; resultValue.innerHTML = compoundedRate.toFixed(5) + "%"; }

Leave a Comment