{
  "generated_utc": "2026-07-25T05:31:47.020174+00:00",
  "upcoming_board": [
    {
      "tourney": "Generali Open",
      "round": "Final",
      "surface": "clay",
      "start": "2026-07-25T11:00:00+00:00",
      "p1": "Quentin Halys",
      "p2": "Alexander Bublik",
      "p1_win_prob": 0.4638099119965409,
      "favorite": "Alexander Bublik",
      "favorite_prob": 0.5361900880034591,
      "confidence": 0.5362,
      "confidence_band": "medium",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Mubadala Citi DC Open",
      "round": "Qualifying 1st Round",
      "surface": "clay",
      "start": "2026-07-25T14:00:00+00:00",
      "p1": "Aziz Dougaz",
      "p2": "Aleksandar Vukic",
      "p1_win_prob": 0.4582823233562753,
      "favorite": "Aleksandar Vukic",
      "favorite_prob": 0.5417176766437247,
      "confidence": 0.3975,
      "confidence_band": "low",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Mubadala Citi DC Open",
      "round": "Qualifying 1st Round",
      "surface": "clay",
      "start": "2026-07-25T14:00:00+00:00",
      "p1": "Kimmer Coppejans",
      "p2": "Martin Damm",
      "p1_win_prob": 0.37145044316714393,
      "favorite": "Martin Damm",
      "favorite_prob": 0.6285495568328561,
      "confidence": 0.4682,
      "confidence_band": "low",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Mubadala Citi DC Open",
      "round": "Qualifying 1st Round",
      "surface": "clay",
      "start": "2026-07-25T14:00:00+00:00",
      "p1": "Alex Bolt",
      "p2": "James McCabe",
      "p1_win_prob": 0.4926594975836739,
      "favorite": "James McCabe",
      "favorite_prob": 0.5073405024163261,
      "confidence": 0.3601,
      "confidence_band": "low",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Mubadala Citi DC Open",
      "round": "Qualifying 1st Round",
      "surface": "clay",
      "start": "2026-07-25T15:30:00+00:00",
      "p1": "Stefan Kozlov",
      "p2": "Zachary Svajda",
      "p1_win_prob": 0.35850214199933017,
      "favorite": "Zachary Svajda",
      "favorite_prob": 0.6414978580006698,
      "confidence": 0.496,
      "confidence_band": "low",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Mubadala Citi DC Open",
      "round": "Qualifying 1st Round",
      "surface": "clay",
      "start": "2026-07-25T15:30:00+00:00",
      "p1": "Remy Bertola",
      "p2": "Andre Ilagan",
      "p1_win_prob": 0.5110098218819896,
      "favorite": "Remy Bertola",
      "favorite_prob": 0.5110098218819896,
      "confidence": 0.3564,
      "confidence_band": "low",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Mubadala Citi DC Open",
      "round": "Qualifying 1st Round",
      "surface": "clay",
      "start": "2026-07-25T15:30:00+00:00",
      "p1": "Billy Harris",
      "p2": "Abdullah Shelbayh",
      "p1_win_prob": 0.5143692222629426,
      "favorite": "Billy Harris",
      "favorite_prob": 0.5143692222629426,
      "confidence": 0.3351,
      "confidence_band": "low",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Millennium Estoril Open",
      "round": "Semifinal",
      "surface": "clay",
      "start": "2026-07-25T16:30:00+00:00",
      "p1": "Hugo Gaston",
      "p2": "Luca Van Assche",
      "p1_win_prob": 0.4225841482513999,
      "favorite": "Luca Van Assche",
      "favorite_prob": 0.5774158517486001,
      "confidence": 0.55,
      "confidence_band": "medium",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Mubadala Citi DC Open",
      "round": "Qualifying 1st Round",
      "surface": "clay",
      "start": "2026-07-25T17:00:00+00:00",
      "p1": "Aryan Shah",
      "p2": "Marcos Giron",
      "p1_win_prob": 0.19154111307786237,
      "favorite": "Marcos Giron",
      "favorite_prob": 0.8084588869221376,
      "confidence": 0.5754,
      "confidence_band": "medium",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Mubadala Citi DC Open",
      "round": "Qualifying 1st Round",
      "surface": "clay",
      "start": "2026-07-25T17:00:00+00:00",
      "p1": "Dusan Lajovic",
      "p2": "Cruz Hewitt",
      "p1_win_prob": 0.7354558561228067,
      "favorite": "Dusan Lajovic",
      "favorite_prob": 0.7354558561228067,
      "confidence": 0.5707,
      "confidence_band": "medium",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Mubadala Citi DC Open",
      "round": "Qualifying 1st Round",
      "surface": "clay",
      "start": "2026-07-25T17:00:00+00:00",
      "p1": "Moez Echargui",
      "p2": "Jordan Lee",
      "p1_win_prob": 0.6741433879276217,
      "favorite": "Moez Echargui",
      "favorite_prob": 0.6741433879276217,
      "confidence": 0.424,
      "confidence_band": "low",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    },
    {
      "tourney": "Millennium Estoril Open",
      "round": "Semifinal",
      "surface": "clay",
      "start": "2026-07-25T18:00:00+00:00",
      "p1": "Luciano Darderi",
      "p2": "Alexander Blockx",
      "p1_win_prob": 0.5259767916254104,
      "favorite": "Luciano Darderi",
      "favorite_prob": 0.5259767916254104,
      "confidence": 0.526,
      "confidence_band": "medium",
      "error": null,
      "note": "No Kalshi price on upcoming board row \u2014 not a sized bet"
    }
  ],
  "kalshi_evaluations": [
    {
      "match": "Thiago Seyboth Wild vs Dylan Dietrich",
      "match_start": "2026-07-25T16:00:00Z",
      "our_p1": 0.6742,
      "kalshi_p1": 0.39,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Thiago Seyboth Wild vs Dylan Dietrich",
      "match_start": "2026-07-25T16:00:00Z",
      "our_p1": 0.7085,
      "kalshi_p1": 0.39,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Gauthier Onclin vs Diego Dedura-Palomero",
      "match_start": "2026-07-25T13:00:00Z",
      "our_p1": 0.5759,
      "kalshi_p1": 0.38,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Gauthier Onclin vs Diego Dedura-Palomero",
      "match_start": "2026-07-25T13:00:00Z",
      "our_p1": 0.5772,
      "kalshi_p1": 0.38,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Matteo Martineau vs Oliver Crawford",
      "match_start": "2026-07-25T20:00:00Z",
      "our_p1": 0.4824,
      "kalshi_p1": 0.3,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Matteo Martineau vs Oliver Crawford",
      "match_start": "2026-07-25T20:00:00Z",
      "our_p1": 0.5087,
      "kalshi_p1": 0.3,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Aleksandar Vukic vs Aziz Dougaz",
      "match_start": "2026-07-25T14:00:00+00:00",
      "our_p1": 0.5186,
      "kalshi_p1": 0.73,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Aleksandar Vukic vs Aziz Dougaz",
      "match_start": "2026-07-25T14:00:00+00:00",
      "our_p1": 0.5721,
      "kalshi_p1": 0.73,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Christopher O'Connell vs Andres Martin",
      "match_start": "2026-07-25T17:00:00Z",
      "our_p1": 0.6143,
      "kalshi_p1": 0.73,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Christopher O'Connell vs Andres Martin",
      "match_start": "2026-07-25T17:00:00Z",
      "our_p1": 0.645,
      "kalshi_p1": 0.73,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Trevor Svajda vs Elias Ymer",
      "match_start": "2026-07-25T17:00:00Z",
      "our_p1": 0.5318,
      "kalshi_p1": 0.34,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Trevor Svajda vs Elias Ymer",
      "match_start": "2026-07-25T17:00:00Z",
      "our_p1": 0.5298,
      "kalshi_p1": 0.34,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Marcos Giron vs Aryan Shah",
      "match_start": "2026-07-25T17:00:00+00:00",
      "our_p1": 0.7403,
      "kalshi_p1": 0.88,
      "confidence_band": "medium",
      "product": "open_to_pre"
    },
    {
      "match": "Marcos Giron vs Aryan Shah",
      "match_start": "2026-07-25T17:00:00+00:00",
      "our_p1": 0.7516,
      "kalshi_p1": 0.88,
      "confidence_band": "medium",
      "product": "hold_settle"
    },
    {
      "match": "Zachary Svajda vs Stefan Kozlov",
      "match_start": "2026-07-25T15:30:00+00:00",
      "our_p1": 0.7173,
      "kalshi_p1": 0.8,
      "confidence_band": "medium",
      "product": "open_to_pre"
    },
    {
      "match": "Zachary Svajda vs Stefan Kozlov",
      "match_start": "2026-07-25T15:30:00+00:00",
      "our_p1": 0.6661,
      "kalshi_p1": 0.8,
      "confidence_band": "medium",
      "product": "hold_settle"
    },
    {
      "match": "Remy Bertola vs Andre Ilagan",
      "match_start": "2026-07-25T15:30:00+00:00",
      "our_p1": 0.5415,
      "kalshi_p1": 0.61,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Remy Bertola vs Andre Ilagan",
      "match_start": "2026-07-25T15:30:00+00:00",
      "our_p1": 0.5097,
      "kalshi_p1": 0.61,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Luciano Darderi vs Alexander Blockx",
      "match_start": "2026-07-25T18:00:00+00:00",
      "our_p1": 0.5472,
      "kalshi_p1": 0.64,
      "confidence_band": "medium",
      "product": "open_to_pre"
    },
    {
      "match": "Luciano Darderi vs Alexander Blockx",
      "match_start": "2026-07-25T18:00:00+00:00",
      "our_p1": 0.5358,
      "kalshi_p1": 0.64,
      "confidence_band": "medium",
      "product": "hold_settle"
    },
    {
      "match": "Keegan Smith vs Luka Pavlovic",
      "match_start": "2026-07-25T18:00:00Z",
      "our_p1": 0.4193,
      "kalshi_p1": 0.53,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Keegan Smith vs Luka Pavlovic",
      "match_start": "2026-07-25T18:00:00Z",
      "our_p1": 0.4668,
      "kalshi_p1": 0.53,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Kimmer Coppejans vs Martin Damm",
      "match_start": "2026-07-25T17:00:00Z",
      "our_p1": 0.3307,
      "kalshi_p1": 0.23,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Kimmer Coppejans vs Martin Damm",
      "match_start": "2026-07-25T17:00:00Z",
      "our_p1": 0.3314,
      "kalshi_p1": 0.23,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Moez Echargui vs Jordan Lee",
      "match_start": "2026-07-25T17:00:00+00:00",
      "our_p1": 0.6528,
      "kalshi_p1": 0.86,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Moez Echargui vs Jordan Lee",
      "match_start": "2026-07-25T17:00:00+00:00",
      "our_p1": 0.6761,
      "kalshi_p1": 0.86,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Alexander Bublik vs Quentin Halys",
      "match_start": "2026-07-25T11:00:00+00:00",
      "our_p1": 0.592,
      "kalshi_p1": 0.69,
      "confidence_band": "medium",
      "product": "open_to_pre"
    },
    {
      "match": "Alexander Bublik vs Quentin Halys",
      "match_start": "2026-07-25T11:00:00+00:00",
      "our_p1": 0.6277,
      "kalshi_p1": 0.69,
      "confidence_band": "medium",
      "product": "hold_settle"
    },
    {
      "match": "Michael Zheng vs Jacob Fearnley",
      "match_start": "2026-07-25T20:00:00Z",
      "our_p1": 0.6309,
      "kalshi_p1": 0.57,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Michael Zheng vs Jacob Fearnley",
      "match_start": "2026-07-25T20:00:00Z",
      "our_p1": 0.5776,
      "kalshi_p1": 0.57,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Alex Bolt vs James McCabe",
      "match_start": "2026-07-25T14:00:00+00:00",
      "our_p1": 0.48,
      "kalshi_p1": 0.56,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Alex Bolt vs James McCabe",
      "match_start": "2026-07-25T14:00:00+00:00",
      "our_p1": 0.4959,
      "kalshi_p1": 0.56,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Dusan Lajovic vs Cruz Hewitt",
      "match_start": "2026-07-25T17:00:00+00:00",
      "our_p1": 0.6995,
      "kalshi_p1": 0.78,
      "confidence_band": "medium",
      "product": "open_to_pre"
    },
    {
      "match": "Dusan Lajovic vs Cruz Hewitt",
      "match_start": "2026-07-25T17:00:00+00:00",
      "our_p1": 0.7474,
      "kalshi_p1": 0.78,
      "confidence_band": "medium",
      "product": "hold_settle"
    },
    {
      "match": "Otto Virtanen vs Maks Kasnikowski",
      "match_start": "2026-07-25T14:10:00Z",
      "our_p1": 0.6489,
      "kalshi_p1": 0.63,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Otto Virtanen vs Maks Kasnikowski",
      "match_start": "2026-07-25T14:10:00Z",
      "our_p1": 0.6291,
      "kalshi_p1": 0.63,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Edas Butvilas vs Mackenzie McDonald",
      "match_start": "2026-07-25T17:00:00Z",
      "our_p1": 0.4472,
      "kalshi_p1": 0.37,
      "confidence_band": "medium",
      "product": "open_to_pre"
    },
    {
      "match": "Edas Butvilas vs Mackenzie McDonald",
      "match_start": "2026-07-25T17:00:00Z",
      "our_p1": 0.446,
      "kalshi_p1": 0.37,
      "confidence_band": "medium",
      "product": "hold_settle"
    },
    {
      "match": "Marc-Andrea Huesler vs Max Hans Rehberg",
      "match_start": "2026-07-25T18:00:00Z",
      "our_p1": 0.5609,
      "kalshi_p1": 0.54,
      "confidence_band": "low",
      "product": "open_to_pre"
    },
    {
      "match": "Marc-Andrea Huesler vs Max Hans Rehberg",
      "match_start": "2026-07-25T18:00:00Z",
      "our_p1": 0.5823,
      "kalshi_p1": 0.54,
      "confidence_band": "low",
      "product": "hold_settle"
    },
    {
      "match": "Hugo Gaston vs Luca Van Assche",
      "match_start": "2026-07-25T14:00:00Z",
      "our_p1": 0.4162,
      "kalshi_p1": 0.39,
      "confidence_band": "medium",
      "product": "open_to_pre"
    },
    {
      "match": "Hugo Gaston vs Luca Van Assche",
      "match_start": "2026-07-25T14:00:00Z",
      "our_p1": 0.4189,
      "kalshi_p1": 0.39,
      "confidence_band": "medium",
      "product": "hold_settle"
    }
  ],
  "player_notes": [
    {
      "player": "Marcos Giron",
      "status": "clear",
      "summary": "No known injury or illness; active on tour.",
      "news": "",
      "severity": 0.0
    }
  ],
  "disclaimer": "Not financial advice. Model estimates from public data."
}