For the complete documentation index, see llms.txt. This page is also available as Markdown.

How do I compare BlueGamma data with Bloomberg or other platforms?

Match payment frequency, day count and valuation time, then compare par swap rates from /swap_rate. Default conventions and API parameters for SOFR, CORRA, ESTR, SONIA and EURIBOR.

To compare BlueGamma with Bloomberg or another platform, match the payment frequency, day count convention and valuation time on both sides, and compare par swap rates from the /swap_rate endpoint using the per-index conventions below. Most mismatches come down to one of those three settings or to snapshots taken at different times.

Who is this for? You're using BlueGamma, in the web app, over the API, or through the Excel Add-in, and want to check that the data lines up with platforms you already use like Bloomberg or online sources.

This guide walks you through how to make those comparisons accurately, using consistent quoting conventions for USD SOFR, CAD CORRA, EUR ESTR, GBP SONIA, and EUR EURIBOR.


🔑 Key Things to Keep in Mind

Before comparing rates, make sure to:

  • ✅ Match payment frequencies and day count conventions

  • ✅ Use the same valuation date/time (and time zone)

  • ✅ Align on swap structure (e.g. OIS vs IBOR-based)

  • ✅ Use the /swap_rate endpoint when comparing to par swap quotes (not /forward_rate or /discount_factor)


📐 Default Conventions by Index

These are the day count and payment frequency conventions behind BlueGamma's quoted swap curves for each index:

Currency
Index
Fixed Leg Day Count
Floating Leg Day Count
Fixed Leg Frequency
Floating Leg Frequency

USD

SOFR

Actual/360

Actual/360

Annual

Annual

GBP

SONIA

Actual/365 (Fixed)

Actual/365 (Fixed)

Annual

Annual

EUR

ESTR

Actual/360

Actual/360

Annual

Annual

EUR

1M EURIBOR

30/360 (Bond Basis)

Actual/360

Annual

Monthly

EUR

3M EURIBOR

30/360 (Bond Basis)

Actual/360

Annual

Quarterly

EUR

6M EURIBOR

30/360 (Bond Basis)

Actual/360

Annual

Semi-annual

EUR

12M EURIBOR

30/360 (Bond Basis)

Actual/360

Annual

Annual

CAD

CORRA

Actual/365 (Fixed)

Actual/365 (Fixed)

Semi-annual

Semi-annual

CHF

SARON

Actual/360

Actual/360

Annual

Annual

You can also retrieve these programmatically: every /get_swap_curve response includes the fixed_leg_day_count, floating_leg_day_count and leg frequency fields alongside the rates. See Fetching a Swap Curve.

EURIBOR fixed leg day count: the web app swap pricer and the Excel add-in's SWAP_RATE price EURIBOR fixed legs on Actual/360, not the 30/360 shown above. This comes out around 5bp lower at current rates. Over the API, /swap_rate uses the conventions in the table above when you leave out fixed_leg_frequency. If you pass fixed_leg_frequency without a day count, the fixed leg is priced on Actual/360, so add fixed_leg_day_count=Thirty360BondBasis to match 30/360.


🇺🇸 USD SOFR (Overnight Indexed Swap)

✅ Market Convention (and BlueGamma UI default)

  • Fixed leg: Annual, Actual/360

  • Floating leg: Annual, Actual/360

🔧 API Parameters

🔎 Notes

  • Bloomberg and other providers may use Semi vs Semi with different stub assumptions. Adjust accordingly if you're trying to match another screen exactly.


🇨🇦 CAD CORRA (Overnight Indexed Swap)

✅ Market Convention

  • Fixed leg: Annual, Actual/365

  • Floating leg: Annual, Actual/365

🔧 API Parameters


🇪🇺 EUR ESTR (Overnight Indexed Swap)

✅ Market Convention

  • Fixed leg: Annual, Actual/360

  • Floating leg: Annual, Actual/360

🔧 API Parameters

🔎 Notes

  • Bloomberg quotes EUR ESTR OIS with T+2 settlement. Use start_date=SPOT to start the swap on the spot date and match it. start_date=0D prices a swap starting today, which can cause a small difference for short maturities.


🇬🇧 GBP SONIA (Overnight Indexed Swap)

✅ Market Convention

  • Fixed leg: Annual, Actual/365

  • Floating leg: Annual, Actual/365

🔧 API Parameters

🔎 Notes

  • SONIA swaps settle T+0, so start_date=0D matches the standard quote.


🇪🇺 EUR EURIBOR

✅ Market Convention

  • Fixed leg: Annual, 30/360

  • Floating leg: 6M EURIBOR, Actual/360

💡 If your reference source uses 3M or 1M EURIBOR instead, update the index and floating_leg_frequency accordingly.

🔧 API Parameters


⏰ Close of Business & Time Zones

Even with matching conventions, two sources can differ simply because they captured the market at different moments. This applies whether you compare in the web app or over the API.

  • "End of day" isn't one global instant. Rates move through the trading day, so two snapshots taken at different times can differ even when everything else matches. A gap between two sources can just mean their snapshots were taken at different moments, not that either is wrong.

  • Local time can shift the value date. The same calendar date in local time versus UTC can be two different observations near the day boundary, leaving you comparing different value dates. It is also worth checking whether the other source is labelled by fixing date or value date, as these are not always the same.

  • In the web app, times are read in your local time zone by default. A time picked near midnight can therefore land on a different day's curve than you expect, so convert the other platform's close into your local time before entering it.

To line them up: the API and Excel Add-in both read timestamps in UTC, so give your valuation time in UTC (over the API, for example 2026-09-18T16:00:00Z; in the Excel Add-in a date on its own is taken as 23:59:59 UTC). Either way, confirm both sides use the same cut-off and value date.


🧪 Summary Checklist: If Rates Don't Match

This summary checklist pulls the guide together, conventions, structure, and timing. Work down it to track down a mismatch:

✅ Check This...
🔍 What To Look For

Frequency

Are fixed/floating legs aligned (e.g. 1Y vs 6M)?

Day count conventions

Are you using the same as your reference (e.g. 30/360 vs ACT/360)?

Valuation time/date

Align the exact timestamp. The web app reads times in your local time zone; the API and Excel Add-in read them in UTC

Close of business

Are both snapshots from the same cut-off, and on the same value date? See Close of Business & Time Zones above

Stub periods

Although BlueGamma's API doesn't allow you to adjust stub periods this may cause slight differences

Settlement

start_date=SPOT starts the swap on the index's spot date (e.g. T+2 for EUR), as standard quotes do. start_date=0D starts it today

Structure

Confirm you're comparing a par swap rate (not forward or zero rates)

📩 Still unsure? Email support@bluegamma.io with the values or screenshots you're comparing and we'll be happy to help.


Need an API key? 📩 support@bluegamma.io | 📅 Book a call

Last updated

Was this helpful?