{
  "schemaVersion": "vultax-feature-mirror-v1",
  "slug": "prediction-market-arbitrage",
  "title": "Polymarket vs Kalshi: the Gap After Fees",
  "description": "The matched Fed contracts Vultax already compares, with the raw price difference and what survives each venue’s own published fee.",
  "mirrorSummary": "The matched Fed contracts Vultax already compares, with the raw price difference and what survives each venue’s own published fee.",
  "canonicalUrl": "https://vultax.com/features/prediction-market-arbitrage",
  "availability": {
    "status": "live",
    "message": "The matched-contract comparison on this page is published by Vultax and free to read. Inside the app, cross-venue deviance is a watch-only signal, not an execution tool."
  },
  "workspace": {
    "label": "Open the prediction desk",
    "url": "https://app.vultax.com/predictions"
  },
  "downloads": {
    "json": "https://vultax.com/features/prediction-market-arbitrage/data.json",
    "markdown": "https://vultax.com/features/prediction-market-arbitrage/page.md",
    "schema": "https://vultax.com/features/schema.json"
  },
  "tables": [
    {
      "id": "cross-venue-fee-adjusted",
      "title": "The Polymarket–Kalshi gap, before and after fees",
      "description": "The same matched contract on both venues, with the raw difference and what is left once each venue’s own fee is applied.",
      "coverage": "Only the reviewed Fed meeting and contract combinations shown. Prices are percentages of a $1 payout; a gap is not an executable return.",
      "columns": [
        {
          "key": "meeting",
          "label": "Meeting",
          "format": "text",
          "unit": null
        },
        {
          "key": "contract",
          "label": "Contract",
          "format": "text",
          "unit": null
        },
        {
          "key": "gap",
          "label": "PM − Kalshi",
          "format": "number",
          "unit": "percentage points"
        },
        {
          "key": "afterFees",
          "label": "After venue fees",
          "format": "number",
          "unit": "percentage points"
        },
        {
          "key": "pmVolume",
          "label": "Polymarket 24h volume",
          "format": "usd",
          "unit": "USD"
        },
        {
          "key": "kVolume",
          "label": "Kalshi 24h volume",
          "format": "usd",
          "unit": "USD"
        },
        {
          "key": "kOpenInterest",
          "label": "Kalshi open interest",
          "format": "usd",
          "unit": "USD"
        }
      ],
      "rows": [
        {
          "id": "pair-0",
          "values": {
            "meeting": "September",
            "contract": "25 bp increase",
            "gap": 1,
            "afterFees": 0,
            "pmVolume": 1975485,
            "kVolume": 2477018.03,
            "kOpenInterest": 33335369.44
          }
        },
        {
          "id": "pair-1",
          "values": {
            "meeting": "September",
            "contract": "No change",
            "gap": -1,
            "afterFees": 0,
            "pmVolume": 2386555,
            "kVolume": 2477018.03,
            "kOpenInterest": 33335369.44
          }
        },
        {
          "id": "pair-2",
          "values": {
            "meeting": "September",
            "contract": "25 bp decrease",
            "gap": -0.2,
            "afterFees": 0,
            "pmVolume": 1917143,
            "kVolume": 2477018.03,
            "kOpenInterest": 33335369.44
          }
        },
        {
          "id": "pair-3",
          "values": {
            "meeting": "October",
            "contract": "25 bp increase",
            "gap": -1,
            "afterFees": 0,
            "pmVolume": 25345,
            "kVolume": 16316.58,
            "kOpenInterest": 415439.30000000005
          }
        },
        {
          "id": "pair-4",
          "values": {
            "meeting": "October",
            "contract": "No change",
            "gap": 1,
            "afterFees": 0,
            "pmVolume": 10297,
            "kVolume": 16316.58,
            "kOpenInterest": 415439.30000000005
          }
        },
        {
          "id": "pair-5",
          "values": {
            "meeting": "October",
            "contract": "25 bp decrease",
            "gap": -0.8,
            "afterFees": 0,
            "pmVolume": 28624,
            "kVolume": 16316.58,
            "kOpenInterest": 415439.30000000005
          }
        },
        {
          "id": "pair-6",
          "values": {
            "meeting": "December",
            "contract": "25 bp increase",
            "gap": -1,
            "afterFees": 0,
            "pmVolume": 10862,
            "kVolume": 3794.58,
            "kOpenInterest": 104040.85
          }
        },
        {
          "id": "pair-7",
          "values": {
            "meeting": "December",
            "contract": "No change",
            "gap": -3,
            "afterFees": 1,
            "pmVolume": 10006,
            "kVolume": 3794.58,
            "kOpenInterest": 104040.85
          }
        },
        {
          "id": "pair-8",
          "values": {
            "meeting": "December",
            "contract": "25 bp decrease",
            "gap": 0.8,
            "afterFees": 0,
            "pmVolume": 8516,
            "kVolume": 3794.58,
            "kOpenInterest": 104040.85
          }
        }
      ],
      "notes": [
        "The after-fee column applies the source pack’s assumed fee of 2 percentage points across the pair. Real fees depend on your account, order type and the venue’s current schedule.",
        "Volume and open interest are reported per meeting by each venue, not per contract row.",
        "Depth, transfer time, settlement wording and account access are not in this calculation. A remaining gap is a reason to look, not an executable trade."
      ],
      "kind": "market-snapshot",
      "status": "fresh",
      "statusReason": "Within this table’s source-time freshness window; prices can change between observations.",
      "observedAt": "2026-09-14T09:20:02.000Z",
      "modifiedAt": null,
      "rowCount": 9,
      "sources": [
        {
          "label": "Vultax prediction pack · Polymarket Gamma and Kalshi",
          "url": "https://vultax.com/live/prediction.json"
        }
      ],
      "downloads": {
        "json": "https://vultax.com/features/prediction-market-arbitrage/data.json?dataset=cross-venue-fee-adjusted",
        "csv": "https://vultax.com/features/prediction-market-arbitrage/data.csv?dataset=cross-venue-fee-adjusted"
      }
    },
    {
      "id": "fed-contract-comparison",
      "title": "Fed contract prices: Polymarket and Kalshi",
      "description": "The matching contract rows already assembled by Vultax’s prediction pack.",
      "coverage": "Only the Fed meeting/contract combinations shown. Prices are percentages of a $1 payout; they are not forecasts of guaranteed outcomes.",
      "columns": [
        {
          "key": "meeting",
          "label": "Meeting",
          "format": "text",
          "unit": null
        },
        {
          "key": "date",
          "label": "Decision date",
          "format": "text",
          "unit": null
        },
        {
          "key": "contract",
          "label": "Contract",
          "format": "text",
          "unit": null
        },
        {
          "key": "pm",
          "label": "Polymarket",
          "format": "percent",
          "unit": "%"
        },
        {
          "key": "kalshi",
          "label": "Kalshi",
          "format": "percent",
          "unit": "%"
        },
        {
          "key": "gap",
          "label": "PM − Kalshi",
          "format": "number",
          "unit": "percentage points"
        }
      ],
      "rows": [
        {
          "id": "contract-0",
          "values": {
            "meeting": "September",
            "date": "2026-09-16",
            "contract": "25 bp increase",
            "pm": 79.5,
            "kalshi": 78.5,
            "gap": 1
          }
        },
        {
          "id": "contract-1",
          "values": {
            "meeting": "September",
            "date": "2026-09-16",
            "contract": "No change",
            "pm": 20.5,
            "kalshi": 21.5,
            "gap": -1
          }
        },
        {
          "id": "contract-2",
          "values": {
            "meeting": "September",
            "date": "2026-09-16",
            "contract": "25 bp decrease",
            "pm": 0.35,
            "kalshi": 0.5,
            "gap": -0.2
          }
        },
        {
          "id": "contract-3",
          "values": {
            "meeting": "October",
            "date": "2026-10-28",
            "contract": "25 bp increase",
            "pm": 36.5,
            "kalshi": 37.5,
            "gap": -1
          }
        },
        {
          "id": "contract-4",
          "values": {
            "meeting": "October",
            "date": "2026-10-28",
            "contract": "No change",
            "pm": 61.5,
            "kalshi": 60.5,
            "gap": 1
          }
        },
        {
          "id": "contract-5",
          "values": {
            "meeting": "October",
            "date": "2026-10-28",
            "contract": "25 bp decrease",
            "pm": 2.7,
            "kalshi": 3.5,
            "gap": -0.8
          }
        },
        {
          "id": "contract-6",
          "values": {
            "meeting": "December",
            "date": "2026-12-09",
            "contract": "25 bp increase",
            "pm": 57.5,
            "kalshi": 58.5,
            "gap": -1
          }
        },
        {
          "id": "contract-7",
          "values": {
            "meeting": "December",
            "date": "2026-12-09",
            "contract": "No change",
            "pm": 39.5,
            "kalshi": 42.5,
            "gap": -3
          }
        },
        {
          "id": "contract-8",
          "values": {
            "meeting": "December",
            "date": "2026-12-09",
            "contract": "25 bp decrease",
            "pm": 3.25,
            "kalshi": 2.5,
            "gap": 0.8
          }
        }
      ],
      "notes": [
        "Polymarket Gamma prices and Kalshi bid/ask midpoint or last-price fallback come from the source pack. They are collected sequentially.",
        "Contract wording, settlement terms, fees and available depth must be checked at each venue. A displayed gap is not an executable arbitrage return.",
        "The pack’s asOf records the parent Fed-pack refresh, not an exchange tick timestamp. Failed parent components can retain older observations."
      ],
      "kind": "market-snapshot",
      "status": "fresh",
      "statusReason": "Within this table’s source-time freshness window; prices can change between observations.",
      "observedAt": "2026-09-14T09:20:02.000Z",
      "modifiedAt": null,
      "rowCount": 9,
      "sources": [
        {
          "label": "Vultax prediction pack · Polymarket Gamma and Kalshi",
          "url": "https://vultax.com/live/prediction.json"
        }
      ],
      "downloads": {
        "json": "https://vultax.com/features/prediction-desk/data.json?dataset=fed-contract-comparison",
        "csv": "https://vultax.com/features/prediction-desk/data.csv?dataset=fed-contract-comparison"
      }
    }
  ],
  "research": [
    {
      "title": "Why Most Crypto Arbitrage Spreads Are Not Executable",
      "url": "https://vultax.com/research/why-crypto-arbitrage-spreads-are-not-executable",
      "publishedAt": "2026-09-02",
      "description": "A visible price gap between two exchanges is a gross number. Fees, depth, transfer time and your own feed latency decide what is left of it."
    },
    {
      "title": "We Tested Polymarket Prices Against 6,776 Resolved Markets. Here's Where They Bend.",
      "url": "https://vultax.com/research/prediction-market-fair-value-calibration",
      "publishedAt": "2026-09-08",
      "description": "Original Vultax research: in an experimental test, a calibrated fair-value model beat raw Polymarket prices by ~9.6% on held-out Brier score. Where the favorite-longshot effect lives, what the model can honestly flag, and why it still isn't a trading edge."
    }
  ],
  "related": [
    {
      "slug": "kalshi-analytics",
      "title": "Kalshi Prices, Volume and Open Interest",
      "url": "https://vultax.com/features/kalshi-analytics"
    },
    {
      "slug": "prediction-desk",
      "title": "Polymarket vs Kalshi: Prediction Market Prices",
      "url": "https://vultax.com/features/prediction-desk"
    },
    {
      "slug": "arbitrage-scanner",
      "title": "Bitcoin Exchange Spreads and Arbitrage Costs",
      "url": "https://vultax.com/features/arbitrage-scanner"
    }
  ],
  "limitations": [
    "Public tables mirror existing Vultax source packs. They do not include account data, private watchlists or the complete app dataset.",
    "Source time, coverage and limitations apply to each table. Missing values are unavailable, not zero."
  ]
}
