---
title: "ICE RemotePlus"
slug: "ice-remoteplus"
updated: 2026-05-29T09:36:24Z
published: 2026-05-29T09:36:24Z
canonical: "support.lusid.com/ice-remoteplus"
stale: true
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.lusid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ICE RemotePlus

FINBOURNE’s ICE RemotePlus integration gives you a reliable, configurable feed of instrument prices and FX spot rates from ICE Data Services into the LUSID [Quote Store](/v1/docs/retrieving-data-from-the-quote-store). Rather than uploading prices manually or maintaining your own scripts, you set it up once and let it run on a schedule you define.

> [!NOTE]
> Prerequisites
> 
> Before getting started, ensure you have:
> 
> - [x] An active contract with ICE Data Services and an account username and password with access to RemotePlus (the one you use for RemotePlus for Excel will work here) - [x] If you intend to use WM FX spot fields, a separate WM rate entitlement from ICE
> - [x] An ICE Data Services
> - [x] Contacted your FINBOURNE representative to enable the integration in your LUSID domain

## Supported data types

### Instrument prices

Bid, mid, ask, best price, high, low, open, primary exchange, and composite trade values.

### FX spot rates

WM and OTCD bid, mid, and ask rates, fixed to your chosen snapshot time.

## Setting up the integration

> [!NOTE]
> Note
> 
> Before getting started, ensure the instruments you intend to import quotes for are set up in LUSID with at least one of the following [instrument identifiers](/v1/docs/understanding-instrument-identifiers):
> 
> - `Cusip`
> - `Sedol`
> - `Isin`

An integration instance configures the snapshot timing, price types, and instruments for your quote import:

1. Navigate to **Integrations > Dashboard**.
2. Select **Create instance** and choose **ICE RemotePlus**. ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-PLIOQ73H.png)
3. Specify a friendly **Name** and **Description** for the integration instance.
4. Specify the following in the **Integration settings** tab:

### Prices

The **Prices** tab controls which instruments to import prices for, which price fields to fetch, and where to save the results.

#### **Instrument selection**

Choose which instruments to import prices for using one of the following instrument selection types:

- **Filter**: Select instruments by their scope and, optionally, a custom filter expression
  - **Instrument Scope**: A LUSID [instrument scope](/v1/docs/understanding-instrument-scopes)
  - **Instrument Filter**: Uses [LUSID filtering syntax](/v1/docs/filtering-information-retrieved-from-lusid), for example `properties[Instrument/Ibor/Industry] eq 'Energy'`
- **Portfolio**: Select instruments from a particular [portfolio](/v1/docs/portfolios) and, optionally, a custom filter expression
  - **Portfolio Scope** and **Portfolio Code**: A LUSID portfolio scope and code
  - **Instrument Filter**: As above
- **Portfolio Group**: Select instruments from a particular [portfolio group](/v1/docs/what-is-a-portfolio-group) and, optionally, a custom filter expression
  - **Portfolio Scope** and **Portfolio Code**: A LUSID portfolio group scope and code
  - **Instrument Filter**: As above

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-JWJDUXGG.png)

#### Price type

Choose which category of prices to request.

| Price type | Supports requests across date ranges? | Typical use |
| --- | --- | --- |
| Unadjusted historical | ✅ | Bonds |
| Adjusted historical | ✅ | Equities adjusted for corporate actions |
| Latest | ❌ | Intraday or most-recent prices |
| Latest per-share | ❌ | Equities only |

#### Price fields to request

Select the quote data points you want to import into LUSID. The integration creates a separate quote for each price field.

#### Historical date

If you specified a price type of **Unadjusted historical** or **Adjusted historical**, you can optionally specify a date range and time period to retrieve quotes for.

#### Price source

Specify how the integration should [label the data source](/v1/docs/how-do-i-upload-a-market-price-or-fx-spot-rate-to-the-quote-store#data-fields-and-properties) on each quote loaded into LUSID:

- **Use Family**: Attaches price type name as the quote label
- **User Defined**: Attaches a string you define as the quote label
- **Not Specified**: No label

You can also specify a **Time Zone** and **Cut Time** to append to the quote effectiveAt date.

#### Quote store output

Optionally, customise the **Quote scope** to save quotes to, as well as the quote **Provider**. [Learn more about quotes in LUSID.](/v1/docs/market-data)

### FX Spot

The **FX Spot** tab controls which FX fields and currency pairs to fetch and where to save the results.

#### Spot rate fields

Select which FX fields you want to include in integration runs. The integration stores each FX field you select as a separate entry in the Quote Store.

> [!NOTE]
> Note
> 
> WM fields are fixed to London Close by default and require a separate licence from ICE.

#### Currency pairs

Specify the pairs you want to retrieve as a comma-separated list; each pair must have six letters with no separator, for example `GBPUSD, EURUSD, USDJPY`.

#### Snapshot time

Specify the effectiveAt time the integration should record for each quote.

#### Historical date

As with the **Prices** tab, you can optionally specify a date range and time period to retrieve quotes for.

#### Quote store output

Optionally, customise the **Quote scope** to save quotes to, as well as the quote **Provider**. The settings are completely independent of the Prices tab, so you can choose to save FX data to a different location. [Learn more about quotes in LUSID.](/v1/docs/market-data)

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-IFLCOT7B.png)

### Connection

Use the **Connection** tab to enter your ICE credentials and, if your network requires it, proxy settings.

### Diagnostics

The **Diagnostics** tab allows you to configure useful troubleshooting tools.

You can enable **Save raw payloads to Drive** to save the exact data the integration sent to ICE, and the response received, to your specified folder in LUSID [Drive](/v1/docs/drive). Note the folder path must begin with `LUSID-Horizon`. See [Monitoring and troubleshooting integration runs](/v1/docs/setting-up-an-integration#viewing-and-troubleshooting-all-runs) for details on the payload contents.

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image-MHYIBG4W.png)

## Running the integration

[See how to run the integration.](/v1/docs/setting-up-an-integration#running-an-integration)

When the integration runs, it requests prices and FX rates from ICE for the instruments [included in your configuration](/v1/docs/ice-remoteplus#instrument-selection). The integration then checks the results it receives from ICE and saves them to the Quote Store under the scope and provider you configured; [see how the integration maps ICE fields to your LUSID quotes.](/v1/docs/ice-remoteplus#appendix-a-quote-store-field-mappings)

If you run the integration more than once for the same date and fields, the integration overwrites the existing quotes rather than creating duplicates.

## Monitoring and troubleshooting integration runs

[See how to monitor integrations and troubleshoot general issues.](/v1/docs/setting-up-an-integration#monitoring-integration-runs)

---

### Troubleshooting

#### Missing prices

ICE RemotePlus sometimes returns a code rather than a numeric price, for example `!NA` (not available) or `!NE` (not entitled). When this happens, the integration skips that instrument and field for the current run and logs it as skipped, but continues processing other quotes.

If you notice prices missing for certain instruments, check the [run log](/v1/docs/setting-up-an-integration#monitoring-the-latest-run) to see:

1. Whether they were skipped
2. Which code ICE returned

The full list of codes ICE may return is as follows:

- `!NA`: Not available
- `!NE`: Not expected (for example, a future date)
- `!NR`: Not reported
- `!NH`: Holiday (US/Canadian)
- `!N5`: ICE error code 5000
- `!N6`: ICE error code 6000
- `!N7`: ICE error code 7000
- `!N8`: ICE error code 8000

#### Incorrect data

If prices are coming through incorrectly - for example, a field is mapping to the wrong value, or an instrument is not being recognised - [enable **Save Raw Payloads to Drive** on the **Diagnostics** tab](/v1/docs/ice-remoteplus#diagnostics) (if you haven’t already done so).

You can then examine the exact data the integration sent to ICE, and the exact response received, in Drive.

## Appendix A: Quote Store field mappings

### Instrument prices

The integration imports two quotes for each ICE RemotePlus price field, allowing you to retrieve the quote by both the [LUID](/v1/docs/what-is-a-lusid-instrument-id-or-luid) and `Cusip`/`Sedol`/`Isin`.

| LUSID quote field | Source |
| --- | --- |
| `QuoteId.QuoteSeriesId.Provider` | [Quote Store Output](/v1/docs/ice-remoteplus#quote-store) > **Provider** |
| `Scope` | [Quote Store Output](/v1/docs/ice-remoteplus#quote-store) > **Quote Scope** |
| `QuoteId.QuoteSeriesId.InstrumentIdType` | `LusidInstrumentId` or one of `Cusip`/`Sedol`/`Isin` |
| `QuoteId.QuoteSeriesId.InstrumentIdValue` | The instrument’s [LUID](/v1/docs/what-is-a-lusid-instrument-id-or-luid) or `Cusip`/`Sedol`/`Isin` value |
| `QuoteId.QuoteSeriesId.PriceSource` | [Quote Store Output](/v1/docs/ice-remoteplus#quote-store) > **Provider** |
| `QuoteId.QuoteSeriesId.Field` | [Price fields to create](/v1/docs/ice-remoteplus#price); the integration maps ICE mnemonics to LUSID field names, [see price fields mapping table](/v1/docs/ice-remoteplus#price-fields) |
| `QuoteId.QuoteSeriesId.QuoteType` | `Price` |
| `QuoteId.EffectiveAt` | Combines [Price Source](/v1/docs/ice-remoteplus#price-source) > **Cut Time** and **Time Zone** and converts to UTC |
| `MetricValue.Value` | Numeric price from ICE |
| `MetricValue.Unit` | Currency from ICE |
| `Lineage` | If **Save Raw Payloads to Drive** is enabled, the response filename. If not enabled, a run and timestamp reference. |

#### Price fields

| ICE mnemonic | LUSID price field mapping |
| --- | --- |
| `BID` | `bid` |
| `ASK` | `ask` |
| `MID` | `mid` |
| `HIGH` | `high` |
| `LOW` | `low` |
| `OPEN` | `open` |
| `PRC` | `bestPrice` |
| `EPRC` | `primaryExchangeTradePrice` |
| `TPRC` | `compositeTradePrice` |
| `VWAP` | `vwap` |

### FX spot rates

The integration imports a quote for each ICE RemotePlus price field, identified by the [currency pair](/v1/docs/how-do-i-load-fx-spot-rates-into-the-quote-store).

| LUSID quote field | Source |
| --- | --- |
| `QuoteId.QuoteSeriesId.Provider` | [Quote Store Output](/v1/docs/ice-remoteplus#quote-store-output) > **Provider** |
| `Scope` | [Quote Store Output](/v1/docs/ice-remoteplus#quote-store-output) > **Quote Scope** |
| `QuoteId.QuoteSeriesId.InstrumentIdType` | `CurrencyPair` |
| `QuoteId.QuoteSeriesId.InstrumentIdValue` | The currency pair formatted as `&lt;CCY&gt;/&lt;CCY&gt;`, for example `GBP/USD` |
| `QuoteId.QuoteSeriesId.PriceSource` | [Price Source](/v1/docs/ice-remoteplus#price-source) |
| `QuoteId.QuoteSeriesId.Field` | [Spot rate fields](/v1/docs/ice-remoteplus#spot-rate-fields) |
| `QuoteId.QuoteSeriesId.QuoteType` | `Rate` |
| `QuoteId.EffectiveAt` | [Snapshot Time](/v1/docs/ice-remoteplus#snapshot-time) converted to UTC |
| `MetricValue.Value` | Numeric rate from ICE |
| `MetricValue.Unit` | Quote currency from ICE (the second currency in the pair - for example `USD` for `GBP/USD`) |
| `Lineage` | If **Save Raw Payloads to Drive** is enabled, the response filename. If not enabled, a run and timestamp reference. |

For bitemporal data, the **effectiveAt** timestamp reflects the point in time at which a data item becomes valid in LUSID from a business perspective. You can specify the field when you make a read or update request to LUSID, indicating that you want to retrieve or update data that is effective at the specified date.
