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

# Idea pipeline

> How daily trade ideas get generated, filtered, scored, and surfaced through CLI, API, MCP, and web.

Trade ideas are the daily output of an agent loop running over every active market. They appear in `sf ideas`, the `/ideas` page, and the `get_trade_ideas` MCP tool.

## Pipeline

```text theme={null}
market universe  →  filter unsuitable  →  attach quantSignals  →  generate ideas  →  surfaces
```

The idea pipeline runs an LLM-backed market analysis loop that:

<Steps>
  <Step title="Pull world snapshot">
    Latest world state including regimes, indicators, and salient items.
  </Step>

  <Step title="Filter unsuitable">
    Skip sports, esports, low liquidity, settled markets.
  </Step>

  <Step title="Generate structured ideas">
    One idea per surviving market, with thesis summary and edge direction.
  </Step>

  <Step title="Compute quantSignals">
    IY, CRI, regime tags, theme tag.
  </Step>

  <Step title="Persist with provenance">
    Model name, prompt version, generated-at timestamp.
  </Step>
</Steps>

## Idea schema

```json theme={null}
{
  "id": "i_...",
  "ticker": "KXRATECUT-26DEC31",
  "title": "...",
  "thesisSummary": "...",
  "edge": {
    "direction": "buy_yes",
    "edgeCents": 4,
    "confidence": 0.7
  },
  "quantSignals": {
    "iyYes": 18.4,
    "cri": 22,
    "regimeLabel": "observable_macro_balanced",
    "lasCents": 2
  },
  "theme": "fed-monetary",
  "provenance": {
    "model": "anthropic/claude-sonnet-4.6",
    "promptVersion": "v3.1",
    "generatedAt": "2026-04-30T23:00:00Z"
  }
}
```

## Filters

* **Unsuitable categories** — sports, esports, weather, gimmicks (configurable).
* **Settled markets** — price ≤ 2¢ or ≥ 98¢, or `|edge| ≥ 90¢`.
* **Stale markets** — `tauDays ≤ 0`.

## Surfaces

* **CLI**: `sf ideas --json`
* **API**: `GET /api/public/ideas`
* **MCP**: `get_trade_ideas`
* **Web**: `simplefunctions.dev/ideas`

## Next steps

<CardGroup cols={2}>
  <Card title="Regime" href="/concepts/regime">
    Labels that drive idea filtering.
  </Card>

  <Card title="Indicators" href="/concepts/indicators">
    What's in `quantSignals`.
  </Card>

  <Card title="Trade intents" href="/build/trade-intents">
    How to act on an idea.
  </Card>
</CardGroup>
