Forward Rate Agreement Calculation

Forward Rate Agreement (FRA) Calculator .fra-calculator-container { max-width: 800px; margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; } .calculator-box { background-color: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; padding: 30px; margin-bottom: 40px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .calculator-title { text-align: center; margin-bottom: 25px; color: #2c3e50; font-size: 24px; font-weight: 700; } .input-group { margin-bottom: 20px; } .input-label { display: block; margin-bottom: 8px; font-weight: 600; color: #495057; } .input-field { width: 100%; padding: 12px; border: 1px solid #ced4da; border-radius: 4px; font-size: 16px; box-sizing: border-box; } .input-field:focus { border-color: #4dabf7; outline: none; box-shadow: 0 0 0 3px rgba(77, 171, 247, 0.2); } .calc-btn { width: 100%; background-color: #007bff; color: white; border: none; padding: 15px; font-size: 18px; font-weight: bold; border-radius: 4px; cursor: pointer; transition: background-color 0.2s; } .calc-btn:hover { background-color: #0056b3; } .result-box { margin-top: 25px; padding: 20px; background-color: #ffffff; border-left: 5px solid #007bff; border-radius: 4px; display: none; } .result-row { display: flex; justify-content: space-between; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid #eee; } .result-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .result-label { font-weight: 600; color: #6c757d; } .result-value { font-weight: 700; color: #2c3e50; font-size: 18px; } .payment-direction { font-weight: bold; color: #28a745; margin-top: 10px; font-size: 16px; } .article-content h2 { color: #2c3e50; margin-top: 30px; border-bottom: 2px solid #eee; padding-bottom: 10px; } .article-content h3 { color: #34495e; margin-top: 25px; } .article-content p { margin-bottom: 15px; text-align: justify; } .formula-box { background-color: #eef2f5; padding: 15px; border-radius: 5px; font-family: "Courier New", Courier, monospace; margin: 20px 0; overflow-x: auto; } .info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } @media (max-width: 600px) { .info-grid { grid-template-columns: 1fr; } }
FRA Settlement Calculator
ACT/360 (Typical for USD/EUR) ACT/365 (Typical for GBP)
Interest Rate Differential: 0.00%
Discount Factor: 0.0000
Settlement Amount: $0.00

Understanding Forward Rate Agreements (FRAs)

A Forward Rate Agreement (FRA) is a specific type of over-the-counter (OTC) financial derivative contract used primarily to hedge against interest rate volatility. In an FRA, two parties agree on an interest rate to be paid on a notional principal amount at a specified future date. It allows a borrower or lender to "lock in" an interest rate today for a period of time that begins in the future.

How the FRA Calculation Works

The value of an FRA is determined by the difference between the agreed-upon fixed rate (the contract rate) and the prevailing market reference rate (such as LIBOR, SOFR, or EURIBOR) at the settlement date. The unique aspect of an FRA is that the settlement amount is paid upfront at the start of the contract period, rather than at the end. Because the payment occurs at the beginning, the amount is discounted to its present value.

The formula for calculating the FRA settlement amount is:

Payment = [ (R_ref – R_fix) × N × (Days / Basis) ] / [ 1 + (R_ref × (Days / Basis)) ]

Where:

  • N: Notional Principal Amount (the theoretical loan size).
  • R_fix: The fixed interest rate agreed upon in the contract.
  • R_ref: The floating reference rate observed at the settlement date.
  • Days: The number of days in the contract period.
  • Basis: The day count convention (usually 360 or 365 days).

Interpreting the Results

The direction of the payment depends on the relationship between the Reference Rate and the Fixed Rate:

  • If Reference Rate > Fixed Rate: The market rate is higher than what was agreed. The Seller of the FRA pays the Buyer. This compensates the buyer for having to borrow at a higher market rate.
  • If Reference Rate < Fixed Rate: The market rate is lower than what was agreed. The Buyer pays the Seller. This compensates the seller (lender) for lending at a lower market rate.

Example Calculation

Imagine a corporate treasurer enters into a "3×6 FRA" (starts in 3 months, ends in 6 months) to hedge a $1,000,000 loan. The contract period is 90 days.

  • Notional: $1,000,000
  • Fixed Rate: 4.00%
  • Reference Rate at Settlement: 5.00%
  • Basis: 360 days

Since the Reference Rate (5%) is higher than the Fixed Rate (4%), the Seller pays the Buyer. The calculation determines the present value of the interest difference (1%) over 90 days.

Interest Difference = (0.05 – 0.04) × 1,000,000 × (90/360) = $2,500.

Discount Factor = 1 + (0.05 × 90/360) = 1.0125.

Settlement Amount = $2,500 / 1.0125 = $2,469.14.

function calculateFRA() { var notional = parseFloat(document.getElementById('notionalPrincipal').value); var fixedRate = parseFloat(document.getElementById('fixedRate').value); var referenceRate = parseFloat(document.getElementById('referenceRate').value); var days = parseFloat(document.getElementById('contractDays').value); var basis = parseFloat(document.getElementById('dayCountBasis').value); // Validation to prevent NaN errors if (isNaN(notional) || isNaN(fixedRate) || isNaN(referenceRate) || isNaN(days) || isNaN(basis)) { alert("Please enter valid numeric values for all fields."); return; } if (days <= 0 || notional <= 0 || basis 0) { // Reference Rate > Fixed Rate directionText = "Market Rate is HIGHER than Fixed Rate.Seller pays Buyer: " + formatter.format(absAmount) + ""; document.getElementById('paymentDirectionDisplay').style.color = "#28a745"; // Green } else if (settlementAmount < 0) { // Reference Rate < Fixed Rate directionText = "Market Rate is LOWER than Fixed Rate.Buyer pays Seller: " + formatter.format(absAmount) + ""; document.getElementById('paymentDirectionDisplay').style.color = "#dc3545"; // Red for paying out } else { directionText = "No payment required (Rates are identical)."; document.getElementById('paymentDirectionDisplay').style.color = "#6c757d"; } // Update DOM document.getElementById('resultBox').style.display = 'block'; document.getElementById('rateDiffDisplay').innerText = (rateDifference * 100).toFixed(4) + "%"; document.getElementById('discountFactorDisplay').innerText = discountFactor.toFixed(6); document.getElementById('settlementAmountDisplay').innerText = formatter.format(absAmount); document.getElementById('paymentDirectionDisplay').innerHTML = directionText; }

Leave a Comment