Why your swap rate doesn't match your bank's: five causes and how to reconcile them
Last updated: 9 October 2026
Short answer: two sources quoting the same swap usually differ because of snap time, fixed-leg frequency, curve interpolation, the discount curve, or day counts and calendars. Once those are aligned, two mid rates should agree within about 1bp. An annual against a semi-annual fixed leg alone is about 3bp at a 3.5% rate.
On evaluation calls, the first technical question is nearly always a reconciliation one. "Your rates are 3bp off our current source, why?" "Which discount curve do you use, €STR or 1M EURIBOR?" "What day count, and can I choose it?" "Our bank reconciles at more decimal places, can we get unrounded data?" Treasury and valuation teams ask because a swap rate they cannot reconcile is a swap rate they cannot put in front of an auditor or a credit committee. This guide sets out the causes in the order they usually turn up, with real numbers.
Why doesn't my swap rate match my bank's?
Because the two numbers were built differently, not because the market is different. Each source makes choices about when to snap, which conventions to quote, how to interpolate and how to discount, and each choice moves the rate.
The table below is the checklist we work through when a prospect brings a gap to a call. Work down it in order: the first two rows explain most gaps.
| Cause | Symptom | Typical size | How to check |
|---|---|---|---|
| Snap time | Gap varies day to day, changes sign | Whatever the market moved between the two snaps, often a few bp | Compare timestamps on both quotes |
| Fixed-leg frequency | Constant gap, same sign every day, grows with the rate level | About 3bp at 3.5%, 4 to 5bp at 4 to 4.5% | Check annual vs semi-annual (or quarterly) fixed leg |
| Interpolation | Vanilla tenors agree, broken dates and amortising swaps do not | Several bp on amortising deals, more on sparsely quoted curves | Price a standard tenor and an amortising profile on both |
| Discount curve | Par swaps agree, forward-starting or off-market swaps do not | Nil on par swaps; several bp on amortising, forward-starting or off-market swaps | Ask which curve each source discounts on (OIS or IBOR) |
| Day count and calendars | Small gap, payment dates differ by a day or two | Up to 5bp for a wrong day count; calendars are usually under 1bp | Compare the cash flow schedule line by line |
| Bid, mid or offer | Bank's rate always on one side of yours | The bank's spread and margin | Ask the bank for its mid |
| Rounding | Differences under 0.5bp that never go away | Up to 0.5bp | Compare at four or more decimal places |
What tolerance should you expect between two sources?
Two independent mid rates, built from the same market on the same conventions and snapped at the same time, should agree within about 1bp on vanilla tenors. A persistent gap above 2bp means a convention or snap-time difference you have not found yet.
Two caveats. First, the tolerance is for mid against mid. A rate your bank quotes you to trade is not a mid: it includes the bid or offer side and the bank's margin, which depends on your credit, the size, the tenor and your relationship. Our guide to checking a bank's swap quote covers that comparison.
Second, a structure with an embedded floor or other option will not reconcile to a vanilla swap rate at any tolerance. Price the option separately, or ask the bank for the swap rate without it.
"Everyone starts with the same underlying swap rates. Then everyone builds their own forward curve, and based on that forward curve, everyone does their own swap pricing. Assuming the methodology in those two steps is the same, you will get the same point… probably within about one or two basis points."
How much can snap time move a swap rate?
As much as the market moved between the two snaps. That is often a couple of basis points within one afternoon, and more on a data release or central bank day.
Snap time is the most common cause of a gap and the easiest to miss, because neither number is wrong. One source snaps at 16:00 London, another at 16:00 New York, a third takes the last quote before midnight UTC.
A 5-year rate can move a couple of basis points between lunchtime and the close on an ordinary afternoon, so a 13:00 snap and a 16:00 snap of the same swap will rarely match. The symptom to look for: if the gap between your two sources changes size or sign from one day to the next, suspect snap time before anything else.
How much does an annual or semi-annual fixed leg change the rate?
At current EUR rate levels, about 3bp on a 5-year swap, and 4 to 5bp when rates are around 4 to 4.5%. An annual fixed rate is always higher than the semi-annual rate on the same swap, because the semi-annual leg pays half its coupon six months earlier.
The two rates are linked by compounding. A semi-annual rate r is worth (1 + r/2)² - 1 on an annual basis, and the gap between them is roughly r²/4, so it grows with the square of the rate level.
This mismatch is common because market standards differ by currency. EUR swaps against 6M EURIBOR quote an annual 30/360 fixed leg. GBP SONIA and USD SOFR swaps quote annual, but USD LIBOR swaps quoted a semi-annual fixed leg, and many models and templates still carry that convention. A template reused across currencies, or a confirmation that pays semi-annually against a screen that quotes annual, produces a constant gap.
Worked example: one 5-year EUR swap, six different rates
All figures below are the same 5-year swap against 6M EURIBOR, spot start, with a market-standard rate of 3.50%. Only the conventions and the snap time change. Illustrative figures, not market data: the convention rows are derived from the 3.50% base by formula, and the snap rows show a typical size of intraday move.
| Variation | Fixed leg | Fixed day count | Snap | Swap rate | Difference from standard |
|---|---|---|---|---|---|
| Market standard | Annual | 30/360 | Close | 3.500% | 0.0bp |
| Semi-annual fixed leg | Semi-annual | 30/360 | Close | 3.470% | -3.0bp |
| Actual/360 fixed leg | Annual | Act/360 | Close | 3.450% | -5.0bp |
| Actual/365 fixed leg | Annual | Act/365F | Close | 3.498% | -0.2bp |
| Earlier snap | Annual | 30/360 | Early afternoon | 3.480% | -2.0bp |
| Previous day's close | Annual | 30/360 | Prior day | 3.520% | +2.0bp |
Check the compounding by hand. Converting the semi-annual rate back to an annual basis gives (1 + 0.03470/2)² - 1 = 3.500%. On a real curve, two priced rates usually differ from this conversion by a fraction of a basis point, because of the floating leg and discounting, not because either number is wrong.
The Actual/360 row is the trap that catches people most often. Act/360 counts 365 days in a year against a 360-day base, so it pays about 1.4% more interest per year, and the fair rate falls to compensate: 3.50% × 360/365.25 ≈ 3.450%. The Act/365F row is close to 30/360 because a 365-day year is almost exactly one 30/360 year; the 0.2bp comes from the leap day. A model that applies the money market day count to the fixed leg will be about 5bp low.
Why does interpolation matter more on amortising swaps?
Because an amortising swap uses forward rates at dates between the quoted tenors, and the interpolation method decides what those forwards are. Vanilla tenors land on quoted points, so two sources agree there and diverge in between.
A curve is built from quotes at fixed tenors (1Y, 2Y, 3Y, 5Y, 7Y, 10Y and so on). Everything between those points comes from the interpolation method. Smooth methods produce forwards that move gradually; stepwise (flat-forward) methods, also widely used, produce forwards that jump at each quoted tenor. Neither is wrong, but two sources using different methods will disagree between the quoted points.
On a bullet swap the steps largely average out. On an amortising swap, where notional is concentrated in some periods and runs off in others, they do not. A mismatched interpolation method can put an amortising swap rate several basis points away from another source, and more on a sparsely quoted curve. The test is simple: if two sources agree on the 5Y and 10Y par rates but disagree on your amortising swap, ask each one which interpolation it uses.
Does the discount curve (OIS or IBOR) change the swap rate?
On a standard par swap the quoted rate barely moves, because the market quote is the input. On forward-starting, amortising or off-market swaps, and on any mark-to-market, discounting on an IBOR curve instead of an OIS curve can produce a material gap.
A swap rate is a weighted average of the forward rates over the life of the swap, and the weights are the discount factors for each payment date. Since collateralised swaps moved to overnight rate discounting, market practice is to project the floating leg on the IBOR curve (6M EURIBOR, say) and discount on the OIS curve (€STR for EUR). In GBP and USD, where swaps now reference SONIA and SOFR, the overnight curve does both jobs. Older systems, or ones set up for a single curve, project and discount on the same IBOR curve.
Change the discount curve and two things move: the weights on each period, and the IBOR forwards themselves, because they are bootstrapped from par quotes using that discount curve. For a vanilla par swap the effects cancel almost entirely. For anything else they do not. It is one of the first things to check when an amortising EUR swap is several basis points away from another source: one system may discount on a 1M EURIBOR curve, the other on €STR. Our guides to discount factors and overnight index swaps explain both curves in more detail.
Do not confuse a discounting difference with comparing the wrong index. A 5-year €STR swap quotes well below a 5-year 6M EURIBOR swap, typically by tens of basis points. That gap is the basis between the two indices, not a discounting effect.
"The discount curve in your example was one-month EURIBOR. Typically for these types of trades the discount curve is not the curve that you pay the floating interest on. The underlying discount curve, which discounts all the cash flows to the present value, is typically €STR…"
Do day counts, calendars and rounding matter?
Yes, but less than the first four causes once the fixed-leg day count is right. A wrong fixed-leg day count can cost 5bp; calendars and rounding usually account for less than 1bp each.
Day counts. The worked example shows the range: Act/365F against 30/360 was 0.2bp, Act/360 against 30/360 was 5bp. 30/360 and 30E/360 differ only around month-ends that fall on the 31st; for a swap rolling on the 13th, both give the same rate.
Calendars. EUR swaps use the TARGET calendar for payment dates; some confirmations use TARGET and London combined. A different calendar moves a payment date by a day or two around holidays, which shows up in the cash flow schedule and the accrued interest before it shows up in the rate.
Rounding. A rate rounded to two decimal places in percent can be up to 0.5bp from the unrounded value. Illustratively, on a 5-year swap with €100m notional and rates around 3.5%, 1bp is worth roughly €45,000 of present value, so 0.5bp of rounding is over €20,000 on a valuation. Some counterparties reconcile at five or more decimal places; ask your source for unrounded values if you need to tie out to the cent.
How to check this yourself
- Line up the timestamps. Get the exact snap time for both numbers, in the same time zone. If they differ by more than an hour, re-pull one at the other's time before going further.
- Write down the conventions for both. Fixed-leg frequency and day count, floating-leg index and frequency, start date (spot or forward), calendar and business day convention.
- Convert any frequency difference with the compounding formula. (1 + r/2)² - 1 for semi-annual to annual. If the converted rate closes the gap, you have found it.
- Compare a vanilla tenor first. If the 5Y par rate agrees within 1bp but your amortising or forward-starting swap does not, the cause is interpolation or discounting.
- Ask which curve each source discounts on. OIS (€STR, SONIA, SOFR) or the IBOR curve.
- Compare cash flows line by line. Payment dates, accrual fractions and notionals. Calendar and day count differences show up here first.
- Compare at four or more decimals. Then treat whatever is left after steps 1 to 6 as bid, offer and margin.
Where BlueGamma fits
- Swap rates, forward curves and discount curves for 30+ currencies, mid only, typically within 1bp of bank mids once conventions align. The full build, curve by curve (instruments, interpolation, day counts, calendars), is in our methodology, and the methodology document ships with every trial.
- Every point is timestamped in UTC at source, and you can pass a valuation time to get the last quote at or before it, so you can match your bank's snap.
- The API quotes each index at its market-standard conventions by default, lets you override the fixed-leg frequency and day count (when you set the frequency, set the day count too), and echoes the conventions it used in every response. It returns the computed rate unrounded.
- Amortisation schedules are priced directly in the swap pricer, so you can test an amortising profile rather than a bullet approximation.
- For a structured comparison of providers, see how to choose an interest rate data provider.
Start a free 14-day trial and reconcile your own swaps against your bank, or book a call and bring the gap with you.
Frequently Asked Questions
Why is my swap rate 3bp different from my bank's?
A constant gap of about 3bp is usually a fixed-leg frequency mismatch: one source quotes an annual fixed leg and the other a semi-annual one. At a 3.5% rate the difference is roughly 3bp, and it grows to 4 to 5bp at 4 to 4.5%. If the gap changes size or sign from day to day instead, the two quotes were most likely snapped at different times. See our methodology for how each convention is set.
How close should two swap rate sources be?
Two independent mid rates should agree within about 1bp once snap time and conventions are aligned. A persistent gap above 2bp points to a convention difference you have not found yet. A bank's executable quote will sit further away because it includes the bid or offer side and the bank's margin; our guide to checking a bank's swap quote covers that comparison.
How do I convert a semi-annual swap rate to an annual rate?
Use the compounding formula: annual rate = (1 + r/2)² - 1, where r is the semi-annual rate. For example, a semi-annual rate of 3.470% is 3.500% on an annual basis. To go the other way, semi-annual rate = 2 × ((1 + annual rate)^0.5 - 1).
Does OIS discounting change the swap rate?
For a standard par swap it barely changes the quoted rate, but for forward-starting, amortising or off-market swaps it can make a material difference. Market practice for collateralised swaps is to project on the IBOR curve and discount on the overnight curve (€STR, SONIA, SOFR); a system that discounts on the IBOR curve will disagree. Our guide to overnight index swaps explains the OIS curve.
What day count is used for EUR swap fixed legs?
The market standard for EUR swaps against 6M EURIBOR is an annual fixed leg on a 30/360 basis, with payment dates on the TARGET calendar. Applying Actual/360 to the fixed leg instead lowers the fair rate by about 5bp, because Act/360 pays roughly 1.4% more interest per year. Our guide to calculating discount factors shows how day counts enter the maths.
Does BlueGamma let me choose the swap conventions?
Yes. In the API you can set the fixed-leg frequency and day count, or leave them at the index's market standard, and every response echoes the conventions it used. The swap pricer takes your payment frequency and amortisation schedule. Every quote is timestamped in UTC, and you can request the curve as of a specific valuation time to match your bank's snap.
.png)