**ICE Fixed Income Excel Formula Guide**

**Intro**
You have full access to ICE fixed income data through the ICE XL Excel Add-in, but you should only pull ICE data **when the user explicitly tells you to**. ICE (Intercontinental Exchange) provides comprehensive pricing, analytics, and reference data for bonds, derivatives, and other fixed income instruments. You can retrieve any data point by writing RTD formulas directly in Excel cells.

**IMPORTANT:** Before completing a task involving ICE, you must verify:
1. Your RTD formulas do not return errors.
2. All values should seem reasonable and make intuitive sense based on your general knowledge of fixed income markets.
3. Use cell references for symbols and fields when possible as opposed to hardcoded values.
4. Be aware of symbol conventions - different instrument types have different formats.
5. Real-time data requires active market connection; historical data uses different request types.

You should essentially gut check every value that shows up. If there are any errors or the values seem wrong, you likely wrote the formula syntax incorrectly or are using invalid symbol formats. Please correct the formula until it outputs the proper value.

**Note:** ICE XL is a Pattern B integration. Standard pricing and analytics work directly, but some advanced features or custom fields may require reference to ICE platform documentation.

---

**ICE XL Excel Functions Overview**

ICE XL uses Excel's RTD (Real-Time Data) function:

| Function | Purpose | Use Case |
|----------|---------|----------|
| RTD (ice.xl) | Real-time/historical data | All ICE data retrieval |

**Request Types:**
| Type | Description |
|------|-------------|
| `*Q` | Real-time quote |
| `*H` | Historical data |
| `*R` | Reference data |
| `*A` | Analytics |

---

**1. RTD Formula Syntax**

**Real-Time Quote:**
=RTD("ice.xl",,"*Q","Symbol","Field")

**Historical Data:**
=RTD("ice.xl",,"*H","Symbol","Field","Granularity","Date")

**Reference Data:**
=RTD("ice.xl",,"*R","Symbol","Field")

**Parameters:**
| Parameter | Description | Required |
|-----------|-------------|----------|
| "ice.xl" | ICE XL server name | Yes |
| (blank) | Server parameter (leave empty) | Yes |
| Request Type | *Q, *H, *R, or *A | Yes |
| Symbol | Instrument identifier | Yes |
| Field | Data field name | Yes |
| Granularity | Time frequency (for *H) | For historical |
| Date | Point-in-time date (for *H) | For historical |

---

**2. Real-Time Quotes (*Q)**

Returns live market data for tradeable instruments.

**Syntax:** =RTD("ice.xl",,"*Q","Symbol","Field")

**Examples:**
=RTD("ice.xl",,"*Q","BRN 1!-ICE","Last")
-> Brent crude front month last price.

=RTD("ice.xl",,"*Q","UST10Y","Yield")
-> 10-year US Treasury yield.

=RTD("ice.xl",,"*Q","EUR=","Bid")
-> EUR/USD bid price.

=RTD("ice.xl",,"*Q","ES 1!-CME","Last")
-> S&P 500 E-mini front month.

---

**3. Historical Data (*H)**

Returns historical time series data.

**Syntax:** =RTD("ice.xl",,"*H","Symbol","Field","Granularity","Date")

**Granularity Codes:**
| Code | Description |
|------|-------------|
| D | Daily |
| W | Weekly |
| M | Monthly |
| I1 | 1-minute bars |
| I5 | 5-minute bars |
| I15 | 15-minute bars |
| I60 | 60-minute bars |

**Examples:**
=RTD("ice.xl",,"*H","BRN 1!-ICE","Last","D",DATE(2024,9,10))
-> Brent crude price on Sep 10, 2024.

=RTD("ice.xl",,"*H","UST10Y","Yield","D",DATE(2024,1,1))
-> 10Y Treasury yield on Jan 1, 2024.

=RTD("ice.xl",,"*H","GC 1!-CMX","Last","W",DATE(2024,6,1))
-> Gold weekly price as of June 1, 2024.

---

**4. Symbol Formats**

**Futures:**
| Market | Format | Example |
|--------|--------|---------|
| ICE Brent | `BRN {month}!-ICE` | `BRN 1!-ICE` (front month) |
| ICE WTI | `WTI {month}!-ICE` | `WTI 1!-ICE` |
| ICE Gas Oil | `GAS {month}!-ICE` | `GAS 1!-ICE` |
| CME Gold | `GC {month}!-CMX` | `GC 1!-CMX` |
| CME S&P 500 | `ES {month}!-CME` | `ES 1!-CME` |
| CME Eurodollar | `ED {month}!-CME` | `ED 1!-CME` |

**Month Codes:** 1! = front month, 2! = second month, etc.

**Government Bonds:**
| Instrument | Symbol |
|------------|--------|
| US 10Y Treasury | `UST10Y` |
| US 2Y Treasury | `UST2Y` |
| US 5Y Treasury | `UST5Y` |
| US 30Y Treasury | `UST30Y` |
| German 10Y Bund | `DE10Y` |
| UK 10Y Gilt | `UK10Y` |
| Japan 10Y JGB | `JP10Y` |

**Corporate Bonds (by identifier):**
| Format | Example |
|--------|---------|
| CUSIP | `037833100` |
| ISIN | `US037833100` |
| SEDOL | `2046251` |

**FX:**
| Pair | Symbol |
|------|--------|
| EUR/USD | `EUR=` |
| GBP/USD | `GBP=` |
| USD/JPY | `JPY=` |
| USD/CHF | `CHF=` |

**Indices:**
| Index | Symbol |
|-------|--------|
| ICE US Dollar Index | `DXY` |
| VIX | `VIX` |

---

**5. Common Fields Reference**

**Pricing Fields:**
| Field | Description |
|-------|-------------|
| `Last` | Last traded price |
| `Bid` | Bid price |
| `Ask` | Ask price |
| `Mid` | Mid price ((Bid+Ask)/2) |
| `Open` | Opening price |
| `High` | Session high |
| `Low` | Session low |
| `Close` | Previous close |
| `Settlement` | Settlement price |
| `Volume` | Trading volume |

**Yield/Spread Fields:**
| Field | Description |
|-------|-------------|
| `Yield` | Yield to maturity |
| `YieldChange` | Daily yield change |
| `Spread` | Credit spread |
| `OAS` | Option-adjusted spread |
| `ZSpread` | Z-spread |
| `GSpread` | G-spread (vs govt) |

**Bond Analytics:**
| Field | Description |
|-------|-------------|
| `Duration` | Modified duration |
| `EffDuration` | Effective duration |
| `Convexity` | Convexity |
| `DV01` | Dollar value of 01 |
| `AccruedInterest` | Accrued interest |
| `CleanPrice` | Clean price |
| `DirtyPrice` | Dirty price (full) |

**Reference Data:**
| Field | Description |
|-------|-------------|
| `Coupon` | Coupon rate |
| `Maturity` | Maturity date |
| `IssueDate` | Issue date |
| `Issuer` | Issuer name |
| `Currency` | Currency code |
| `Rating` | Credit rating |
| `Sector` | Industry sector |
| `Country` | Country of risk |

**Futures-Specific:**
| Field | Description |
|-------|-------------|
| `OpenInterest` | Open interest |
| `ExpiryDate` | Contract expiry |
| `ContractSize` | Contract size |
| `TickSize` | Minimum price move |

---

**6. Example Formulas by Use Case**

**Energy Futures:**
=RTD("ice.xl",,"*Q","BRN 1!-ICE","Last")
-> Brent crude front month.

=RTD("ice.xl",,"*Q","BRN 1!-ICE","Bid")
-> Brent crude bid price.

=RTD("ice.xl",,"*Q","WTI 1!-ICE","Last")
-> WTI crude front month.

=RTD("ice.xl",,"*Q","GAS 1!-ICE","Settlement")
-> ICE Gas Oil settlement.

**Treasury Yields:**
=RTD("ice.xl",,"*Q","UST10Y","Yield")
-> 10Y Treasury yield.

=RTD("ice.xl",,"*Q","UST2Y","Yield")
-> 2Y Treasury yield.

=RTD("ice.xl",,"*Q","UST10Y","Yield") - RTD("ice.xl",,"*Q","UST2Y","Yield")
-> 10Y-2Y spread (yield curve).

**Historical Prices:**
=RTD("ice.xl",,"*H","BRN 1!-ICE","Last","D",DATE(2024,9,10))
-> Brent on specific date.

=RTD("ice.xl",,"*H","UST10Y","Yield","D",DATE(2024,1,1))
-> 10Y yield on specific date.

=RTD("ice.xl",,"*H","UST10Y","Yield","M",DATE(2024,6,1))
-> 10Y yield monthly (June 2024).

**Corporate Bonds:**
=RTD("ice.xl",,"*Q","912828ZQ6","Last")
-> Treasury bond by CUSIP.

=RTD("ice.xl",,"*Q","US037833100","Yield")
-> Corporate bond yield by ISIN.

=RTD("ice.xl",,"*R","US037833100","Coupon")
-> Bond coupon rate.

=RTD("ice.xl",,"*R","US037833100","Maturity")
-> Bond maturity date.

**Bond Analytics:**
=RTD("ice.xl",,"*A","US037833100","Duration")
-> Bond modified duration.

=RTD("ice.xl",,"*A","US037833100","OAS")
-> Option-adjusted spread.

**FX Rates:**
=RTD("ice.xl",,"*Q","EUR=","Mid")
-> EUR/USD mid rate.

=RTD("ice.xl",,"*Q","DXY","Last")
-> US Dollar Index.

**Metals:**
=RTD("ice.xl",,"*Q","GC 1!-CMX","Last")
-> Gold front month.

=RTD("ice.xl",,"*Q","SI 1!-CMX","Last")
-> Silver front month.

---

**7. Session Limits and Notes**

**Data Limits:**
- Maximum 250 symbols per session
- Real-time data requires active connection
- Historical depth varies by instrument

**Refresh Behavior:**
- Real-time quotes update automatically
- Use F9 or Ctrl+Alt+F5 to force refresh
- Historical data does not auto-refresh

**Time Zones:**
- Prices typically in exchange local time
- Treasury yields in US Eastern time
- Check instrument specifications for details

---

**8. Error Handling**

**Common Errors:**
| Error | Cause | Solution |
|-------|-------|----------|
| #N/A | Invalid symbol | Check symbol format for instrument type |
| #VALUE! | Wrong field name | Verify field name spelling |
| #REF! | Connection issue | Check ICE XL connection status |
| Stale data | Market closed | Normal for non-trading hours |
| 0 or blank | No data | Symbol may not be active |

**Debugging Tips:**
1. Verify symbol format matches instrument type
2. For futures, use correct exchange suffix (-ICE, -CME, -CMX)
3. Check ICE XL connection in Excel add-in ribbon
4. For bonds, try multiple identifier types (CUSIP, ISIN)
5. Historical dates must be valid trading days
6. Some fields only available for certain instrument types

---

**Final Checklist:**
- What instrument type? (Futures, bonds, FX, indices)
- What symbol format? (Check section 4 for conventions)
- Is this real-time (*Q) or historical (*H)?
- What field is needed? (Price, yield, analytics, reference)
- For historical, what granularity and date?
- Is the ICE XL add-in connected?
- Is the symbol within session limits?

---

**Additional Resources:**
- ICE Data Services: https://www.ice.com/market-data
- ICE XL Documentation: https://download.dataservices.theice.com/products/iceexcel/help/
- Symbol Guide: Available within ICE XL add-in
- ICE Connect Portal: https://connect.theice.com/
