> For the complete documentation index, see [llms.txt](https://docs.lsports.eu/u/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.lsports.eu/u/trade/prediction-markets.md).

# Prediction Markets

Prediction Markets are available through TRADE using your existing RabbitMQ connection. No separate feed, queue, or endpoint is required.

Content is sourced from Kalshi and covers a range of non-sports categories. Prediction Market fixtures follow the Outright League message structure — the prediction category acts as the competition container, and each prediction question is represented as a fixture.

***

## Provider

| Field              | Value              |
| ------------------ | ------------------ |
| **Providers**      | Kalshi, Polymarket |
| **Status**         | Live               |
| **Delivery**       | TRADE RabbitMQ     |
| **Message family** | Outright League    |

***

## Categories

The following prediction categories are available for subscription:

* Politics
* Economics
* Crypto
* Companies
* Financials
* Science & Technology
* Climate & Weather
* Health
* Entertainment
* Social
* Mentions

***

## Message Mapping

Prediction Markets use the Outright League message family. The mapping to standard TRADE concepts is as follows:

| TRADE concept            | Prediction Markets mapping    |
| ------------------------ | ----------------------------- |
| **Sport**                | Predictions                   |
| **Competition / League** | Prediction category           |
| **Fixture**              | One prediction question       |
| **FixtureName**          | Full prediction question text |
| **Participants**         | Not used                      |
| **Livescore**            | Not applicable                |

***

## Market Types

Two market types are supported for Prediction Markets.

### Predictions Yes/No (Market ID 3455)

A single Yes/No pair against the fixture question. Used when the fixture resolves to one binary outcome.

| Parameter     | Value    |
| ------------- | -------- |
| **Market ID** | 3455     |
| **Bets**      | Yes / No |
| **Line**      | Not used |

**Example:** FixtureName: "Will the Fed raise interest rates before June 2025?" → Bets: Yes | No

### Multiple Selection Predictions Yes/No (Market ID 3456)

One Yes/No pair per selectable option. Used when the fixture contains multiple possible outcomes.

| Parameter         | Value                                 |
| ----------------- | ------------------------------------- |
| **Market ID**     | 3456                                  |
| **Bets**          | Yes / No per line                     |
| **Line**          | One selectable option per line        |
| **ParticipantId** | Selection identifier where applicable |

**Example:** FixtureName: "Who will be the next Fed Chair?"

| Selection     | Bet 1 | Bet 2 |
| ------------- | ----- | ----- |
| Donald Trump  | Yes   | No    |
| Jerome Powell | Yes   | No    |

***

## Prediction Data Fields

Kalshi prediction markets carry additional metadata across both the fixture and market messages. Use these fields to display resolution context and trading activity alongside your odds.

### Fixture-level — Rules

The `ExtraData` array on the fixture and on each entry in `Participants` includes a `Rules` key. This is the human-readable resolution criteria defined by Kalshi — the exact conditions under which the market settles Yes or No (or a specific bet wins). `Rules` is delivered once at fixture level and is not repeated in market update messages.

| Key       | Type   | Description                                                              |
| --------- | ------ | ------------------------------------------------------------------------ |
| **Rules** | string | Resolution criteria for this market or participant, as defined by Kalshi |

### Market-level — MarketPredictionData

Carried under `PredictionData` on each market in the [Outright League Market](/u/trade/integration/message-structure/outright-league-market.md) message. Use `Volume` to show overall market activity.

| Field      | Data Type | Description                                            |
| ---------- | --------- | ------------------------------------------------------ |
| **Volume** | double    | **OPTIONAL**: Aggregate trading volume for this market |

### Bet-level — BetPredictionData

Carried under `PredictionData` on each bet. Use `Volume` to indicate bet-level trading depth. Use `StartDate` and `EndDate` to control when a bet is available for display.

| Field         | Data Type | Description                                                                             |
| ------------- | --------- | --------------------------------------------------------------------------------------- |
| **Volume**    | double    | **OPTIONAL**: Total contracts traded for this bet                                       |
| **Liquidity** | double    | **OPTIONAL**: Available liquidity for this bet. Provided by Polymarket; null for Kalshi |
| **StartDate** | DateTime  | The date from which this bet is open for trading                                        |
| **EndDate**   | DateTime  | The date after which this bet closes                                                    |

***

## Message Flow

1. Subscribe through the existing TRADE integration flow.
2. TRADE distributes the Outright League Fixture message for each prediction question.
3. TRADE distributes Outright League Market updates as prices change.
4. TRADE distributes the Outright League Settlement message when the market is resolved.

***

## Odds

Prediction Market odds are normalized from provider stake values:

**Odds = 1 / Stake (cents)**

Odds are delivered already normalized — no additional conversion is required.

***

## Settlement

While underlying exchanges utilize different resolution mechanisms, LSports abstracts these into a unified settlement logic. Drive settlement logic from the Outright League Settlement message.

* **Finalization** — Settlement is only triggered when the provider reaches a finalized, undisputed state. Intermediate or contested statuses are delivered as Not Settled.
* **Winning/Losing** — The definitive outcome from the provider dictates the winning side. These are translated into standard LSports settlement values: Winner (ID: 2) or Loser (ID: 1) alongside `Bet Status = 3`.
* **Multi-selection events** — For mutually exclusive markets, exactly one `Yes` line wins. All other lines in the market resolve as `Yes = Loser (1)` and `No = Winner (2)`.
* **Split Resolutions** — In rare scenarios where an exchange settles an outcome at 50/50, LSports delivers the settlement as `HalfWon` / `HalfLost`.

***

## Rendering

**Market ID 3455** — Render a single Yes / No pair against the fixture question.

**Market ID 3456** — Render one Yes / No pair per selection line. Use `Line` as the display label and `ParticipantId` as the logical identifier where provided.

***

## Integration Notes

**No new connection required** — Prediction Markets are delivered through the existing TRADE RabbitMQ infrastructure. No new queue, vhost, or endpoint is needed.

**Livescore does not apply** — Prediction Markets have no live score phase. Do not expect in-play score progression or scoreboard-driven state changes.

**Reconnection** — After reconnecting, request a snapshot before resuming normal consumption.

**Start date fix** — Fixtures now use the real start date as defined by the provider. Previously, start dates defaulted to 2040. This change is not backward compatible — auto settlement will not apply to existing fixtures that were created with the 2040 placeholder date.

***

## Related Pages

* [Outright League Fixture](/u/trade/integration/message-structure/outright-league-fixture.md)
* [Outright League Market](/u/trade/integration/message-structure/outright-league-market.md)
* [Outright League Settlement](/u/trade/integration/message-structure/outright-league-settlement.md)
* [RabbitMQ Connection](/u/trade/integration/rmq-connection.md)
* [Snapshot API](/u/trade/integration/apis/snapshot.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.lsports.eu/u/trade/prediction-markets.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
