{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "history",
 "url": "/authors/jonathan-o-shea/picks/2/",
 "canonical": "/authors/jonathan-o-shea/picks/2/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Jonathan O'Shea — football predictions, page 2 of 5",
 "description": "Predictions 1–20 of 75 by Jonathan O'Shea, with outcomes in words and links to the evidence.",
 "first_paragraph": {
  "body": "Page 2 of 5 of the predictions by Jonathan O'Shea recorded by Forecast Record: predictions 1–20 of 75 in the order we recorded them, earliest first; as of 7 November 2026. Each row links to its evidence, and the summary of the record is on the profile page.",
  "key_number": "75",
  "data": "2026-11-07",
  "source_info": "our own evidence archive",
  "brand": "Forecast Record"
 },
 "indexable": false,
 "noindex_reason": "technical",
 "indexing_threshold": {
  "settled_count": 0,
  "date_count": 0,
  "required_settled": 0,
  "required_dates": 0
 },
 "data_date": "2026-11-07T17:54:46.357Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-07T19:52:23.438Z",
 "content_hash": null,
 "meaning_hash": "a9df73975abd080d75b22ad5aaa06728ba06a656dcd1256df882558ee987f20a",
 "dependency_group": "author:e-4a4c3d0d1d8abc763e97c466",
 "release_id": "20261107-195223",
 "markup": [
  {
   "type_code": "WebPage",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "Organization",
   "allowed": true,
   "cause": null
  }
 ],
 "exports": [
  {
   "type_code": "json",
   "url": "/authors/jonathan-o-shea/picks/2/index.json",
   "bytes": null
  }
 ],
 "modules": {
  "affiliate": false,
  "api": true,
  "compare_yourself": false
 },
 "affiliate_block": null,
 "restrictions": {
  "name_withdrawn": false,
  "tracker_number": null,
  "withdrawn_quotes": [],
  "removed_at": null,
  "cause": null,
  "suspended_records": [],
  "withdrawal_log_number": 0
 },
 "page_links": {
  "methodology": "/methodology/",
  "right_of_reply": "/right-of-reply/",
  "source_coverage": "/coverage/",
  "corrections_log": "/corrections/",
  "api": "/api/",
  "claim": "/claim/"
 },
 "entity": {
  "id": "e-4a4c3d0d1d8abc763e97c466",
  "public_name": "Jonathan O'Shea",
  "tracker_number": 1844,
  "status": "active",
  "inactive_since": null,
  "verified_creator": false,
  "observation_period": {
   "since": "2026-09-25",
   "until": "2026-11-07"
  },
  "platform_list": [
   {
    "medium": "website",
    "handle": null,
    "url": null,
    "link_confirmed": false,
    "show": true
   }
  ],
  "comment": null
 },
 "recorded_picks": [
  {
   "record_id": "n-95b4f7596ac5114eb31cf940",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Austria 2-1 Kosovo",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-09-25T07:51:49.000Z",
   "recorded_at": "2026-09-25T21:09:57.124Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sports Mole, RSS feed",
   "correction": null
  },
  {
   "record_id": "n-7f7aa01abe8befa7bc3cbe53",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "their first contest is set to end in a draw",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-09-25T12:50:00.000Z",
   "recorded_at": "2026-09-27T01:13:41.315Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sports Mole, RSS feed",
   "correction": null
  },
  {
   "record_id": "n-87c79a6bd094051295da90dd",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Israel 1-1 Republic of Ireland",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-09-25T12:50:00.000Z",
   "recorded_at": "2026-09-27T01:13:41.315Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sports Mole, RSS feed",
   "correction": null
  },
  {
   "record_id": "n-f2f642268c90ba6629aafae4",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Israel 1-2 Kosovo",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-09-29T13:57:02.000Z",
   "recorded_at": "2026-09-29T14:05:49.185Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null
  },
  {
   "record_id": "n-db335588cfd83f79da767766",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Republic of Ireland 2-2 Austria",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-09-29T14:38:00.000Z",
   "recorded_at": "2026-09-29T15:08:08.291Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null
  },
  {
   "record_id": "n-96712e727c4f8d423eef19ab",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: France 2-1 Italy",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-09-30T14:29:00.000Z",
   "recorded_at": "2026-09-30T15:07:53.357Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null
  },
  {
   "record_id": "n-177ded6795f2b0c014609bef",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Switzerland 3-1 Slovenia",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-01T16:21:23.000Z",
   "recorded_at": "2026-10-01T17:02:43.115Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null
  },
  {
   "record_id": "n-d0adbafe10da2d754d8dcce7",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: North Macedonia 0-1 Scotland",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-01T17:45:44.000Z",
   "recorded_at": "2026-10-01T18:02:49.419Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null
  },
  {
   "record_id": "n-efc13afac84451f6ac6368d4",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Kosovo 1-2 Austria",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-02T07:30:00.000Z",
   "recorded_at": "2026-10-02T08:02:56.500Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null
  },
  {
   "record_id": "n-1a032e338cb0452935e05e46",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Republic of Ireland 2-1 Israel",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-02T08:51:57.000Z",
   "recorded_at": "2026-10-02T09:09:02.197Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null
  },
  {
   "record_id": "n-dda356932d8556160ee395c8",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Italy 2-0 Turkey",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-03T06:40:42.000Z",
   "recorded_at": "2026-10-03T07:07:43.554Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null
  },
  {
   "record_id": "n-96a14cf1420aa072524c4b1f",
   "url": "/authors/jonathan-o-shea/picks/2/#pick-n-96a14cf1420aa072524c4b1f",
   "match": "Genoa v Fiorentina",
   "match_url": "/football/matches/genoa-vs-fiorentina-2026-10-10/",
   "kickoff": "2026-10-10T13:00:00.000Z",
   "competition": "Serie A",
   "lead_hours": 47.9,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Genoa 1-2 Fiorentina",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-08T12:45:20.000Z",
   "recorded_at": "2026-10-08T13:07:03.556Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "2",
    "price": "2.2800",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-96a14cf1420aa072524c4b1f",
    "quote_text": "We say: Genoa 1-2 Fiorentina",
    "fragment_from": 4069,
    "fragment_to": 4097,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/genoa/preview/genoa-vs-fiorentina-prediction-team-news-lineups_606383.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "9b1934ad41a81b95203edb9ed0b5d881c52db64767db4149604a901a246f0d30",
     "material_removed": false
    },
    "published_at": "2026-10-08T12:45:20.000Z",
    "detected_at": "2026-10-08T13:07:03.556Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-57988c8ebab7",
     "display_name": "Genoa — Fiorentina",
     "competition_name": "Serie A",
     "starts_at": "2026-10-10T13:00:00.000Z",
     "url": "/football/matches/genoa-vs-fiorentina-2026-10-10/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Genoa 1-2 Fiorentina",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-08T12:45:20.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-08T12:45:20.000Z",
     "detected_at": "2026-10-08T13:07:03.556Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Genoa 1-2 Fiorentina",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Genoa 1-2 Fiorentina"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Genoa 2-1 Fiorentina."
    },
    "settlements": [
     {
      "operation_id": "b74a238e8aed572e786c3dbc1b68c3c1533a47849fd39b7b857baefef168b311",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Fiorentina",
      "decimal_odds": "2.2800",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-10T23:35:09.093Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Jonathan O'Shea",
     "publisher": "Sports Mole",
     "forecaster": "Jonathan O'Shea",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/genoa/preview/genoa-vs-fiorentina-prediction-team-news-lineups_606383.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Genoa 1-2 Fiorentina"
   }
  },
  {
   "record_id": "n-ba275dc980d7c2c925b200d6",
   "url": "/authors/jonathan-o-shea/picks/2/#pick-n-ba275dc980d7c2c925b200d6",
   "match": "SSC Napoli v Frosinone",
   "match_url": "/football/matches/ssc-napoli-vs-frosinone-2026-10-10/",
   "kickoff": "2026-10-10T18:45:00.000Z",
   "competition": "Serie A",
   "lead_hours": 51.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: SSC Napoli 2-1 Frosinone",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-0",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-08T14:16:00.000Z",
   "recorded_at": "2026-10-08T15:09:31.267Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "1.4405",
    "result": "Won",
    "points_hundredths": 4405,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-ba275dc980d7c2c925b200d6",
    "quote_text": "We say: Napoli 2-1 Frosinone",
    "fragment_from": 4394,
    "fragment_to": 4422,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/napoli/preview/napoli-vs-frosinone-prediction-team-news-lineups_606474.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "eb87e208e875ceb4c2a55d609d13261324e8a7c59f6f5ef34ad3261f3b9837b6",
     "material_removed": false
    },
    "published_at": "2026-10-08T14:16:00.000Z",
    "detected_at": "2026-10-08T15:09:31.267Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-f48d1ed42fc3",
     "display_name": "SSC Napoli — Frosinone",
     "competition_name": "Serie A",
     "starts_at": "2026-10-10T18:45:00.000Z",
     "url": "/football/matches/ssc-napoli-vs-frosinone-2026-10-10/",
     "scoreline": "3-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "SSC Napoli 2-1 Frosinone",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-08T14:16:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-08T14:16:00.000Z",
     "detected_at": "2026-10-08T15:09:31.267Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "SSC Napoli 2-1 Frosinone",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: SSC Napoli 2-1 Frosinone"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "3-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was SSC Napoli 3-0 Frosinone."
    },
    "settlements": [
     {
      "operation_id": "d12a967a69afab89dbba293b3489157b62a4675e85eb7fd1f470e490bac979ab",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "SSC Napoli",
      "decimal_odds": "1.4405",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 4405,
      "executed_at": "2026-10-10T23:35:08.931Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Jonathan O'Shea",
     "publisher": "Sports Mole",
     "forecaster": "Jonathan O'Shea",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/napoli/preview/napoli-vs-frosinone-prediction-team-news-lineups_606474.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "SSC Napoli 2-1 Frosinone"
   }
  },
  {
   "record_id": "n-b0b5f64aaf25c3e1323d0161",
   "url": "/authors/jonathan-o-shea/picks/2/#pick-n-b0b5f64aaf25c3e1323d0161",
   "match": "Inter v Parma",
   "match_url": "/football/matches/inter-vs-parma-2026-10-10/",
   "kickoff": "2026-10-10T16:00:00.000Z",
   "competition": "Serie A",
   "lead_hours": 47.9,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Inter 3-0 Parma",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "3-0",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-08T15:44:00.000Z",
   "recorded_at": "2026-10-08T16:07:13.165Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "1.1300",
    "result": "Won",
    "points_hundredths": 1300,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-b0b5f64aaf25c3e1323d0161",
    "quote_text": "We say: Inter Milan 3-0 Parma",
    "fragment_from": 4386,
    "fragment_to": 4415,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/inter-milan/preview/inter-milan-vs-parma-prediction-team-news-lineups_606482.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "6827e63b93f0e476609c4900f68a38d492d1ffe0a0efdefe623c947467d87443",
     "material_removed": false
    },
    "published_at": "2026-10-08T15:44:00.000Z",
    "detected_at": "2026-10-08T16:07:13.165Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-e2d306934e5f",
     "display_name": "Inter — Parma",
     "competition_name": "Serie A",
     "starts_at": "2026-10-10T16:00:00.000Z",
     "url": "/football/matches/inter-vs-parma-2026-10-10/",
     "scoreline": "3-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Inter 3-0 Parma",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "win",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-08T15:44:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-08T15:44:00.000Z",
     "detected_at": "2026-10-08T16:07:13.165Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Inter 3-0 Parma",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "3-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Inter 3-0 Parma"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "3-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Inter 3-0 Parma."
    },
    "settlements": [
     {
      "operation_id": "5a40a964400addd4a624126b479d200b5500b0315e6fa8a08b72ea38835bc29d",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Inter",
      "decimal_odds": "1.1315",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 1315,
      "executed_at": "2026-10-10T23:35:08.836Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Jonathan O'Shea",
     "publisher": "Sports Mole",
     "forecaster": "Jonathan O'Shea",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/inter-milan/preview/inter-milan-vs-parma-prediction-team-news-lineups_606482.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Inter 3-0 Parma"
   }
  },
  {
   "record_id": "n-ac2486e1ab0cb9bc2136b044",
   "url": "/authors/jonathan-o-shea/picks/2/#pick-n-ac2486e1ab0cb9bc2136b044",
   "match": "Lazio v Monza",
   "match_url": "/football/matches/lazio-vs-monza-2026-10-11/",
   "kickoff": "2026-10-11T13:00:00.000Z",
   "competition": "Serie A",
   "lead_hours": 52.9,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Lazio 2-0 Monza",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-09T07:56:00.000Z",
   "recorded_at": "2026-10-09T08:05:22.863Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "1.5882",
    "result": "Won",
    "points_hundredths": 5882,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-ac2486e1ab0cb9bc2136b044",
    "quote_text": "We say: Lazio 2-0 Monza",
    "fragment_from": 3796,
    "fragment_to": 3819,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/lazio/preview/lazio-vs-monza-prediction-team-news-lineups_606532.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "6395e3010f014c45021b3c1ef38625321806b793c0356fb3a236eb500fdcf274",
     "material_removed": false
    },
    "published_at": "2026-10-09T07:56:00.000Z",
    "detected_at": "2026-10-09T08:05:22.863Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-4dc10c72315f",
     "display_name": "Lazio — Monza",
     "competition_name": "Serie A",
     "starts_at": "2026-10-11T13:00:00.000Z",
     "url": "/football/matches/lazio-vs-monza-2026-10-11/",
     "scoreline": "3-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Lazio 2-0 Monza",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-09T07:56:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-09T07:56:00.000Z",
     "detected_at": "2026-10-09T08:05:22.863Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Lazio 2-0 Monza",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Lazio 2-0 Monza"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "3-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Lazio 3-1 Monza."
    },
    "settlements": [
     {
      "operation_id": "66254f6ca84028a6e1f637faba51e14bc808d23cf6321481c0de83e388826016",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Lazio",
      "decimal_odds": "1.5882",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 5882,
      "executed_at": "2026-10-10T23:35:07.160Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Jonathan O'Shea",
     "publisher": "Sports Mole",
     "forecaster": "Jonathan O'Shea",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/lazio/preview/lazio-vs-monza-prediction-team-news-lineups_606532.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Lazio 2-0 Monza"
   }
  },
  {
   "record_id": "n-6f11b7cacd9f7ad2c4b23179",
   "url": "/authors/jonathan-o-shea/picks/2/#pick-n-6f11b7cacd9f7ad2c4b23179",
   "match": "Sassuolo v AC Milan",
   "match_url": "/football/matches/sassuolo-vs-ac-milan-2026-10-11/",
   "kickoff": "2026-10-11T16:00:00.000Z",
   "competition": "Serie A",
   "lead_hours": 51.0,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Sassuolo 2-2 AC Milan",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-09T12:35:51.000Z",
   "recorded_at": "2026-10-09T13:02:09.050Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "2",
    "price": "1.8000",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-6f11b7cacd9f7ad2c4b23179",
    "quote_text": "We say: Sassuolo 2-2 AC Milan",
    "fragment_from": 4088,
    "fragment_to": 4117,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/sassuolo/preview/sassuolo-vs-ac-milan-prediction-team-news-lineups_606552.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "08400e2aa7c25d637ca05ee6714d9ae0989e1c46367b68eb79424e29d7b032d8",
     "material_removed": false
    },
    "published_at": "2026-10-09T12:35:51.000Z",
    "detected_at": "2026-10-09T13:02:09.050Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-6daf1549fb1e",
     "display_name": "Sassuolo — AC Milan",
     "competition_name": "Serie A",
     "starts_at": "2026-10-11T16:00:00.000Z",
     "url": "/football/matches/sassuolo-vs-ac-milan-2026-10-11/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Sassuolo 2-2 AC Milan",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-09T12:35:51.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-09T12:35:51.000Z",
     "detected_at": "2026-10-09T13:02:09.050Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Sassuolo 2-2 AC Milan",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Sassuolo 2-2 AC Milan"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Sassuolo 1-1 AC Milan."
    },
    "settlements": [
     {
      "operation_id": "78dbdad16898eb22dd5bb7f6a1556160f7b0a7c2becd94ec5115084827874123",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "3.7000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 27000,
      "executed_at": "2026-10-10T23:35:06.904Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Jonathan O'Shea",
     "publisher": "Sports Mole",
     "forecaster": "Jonathan O'Shea",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/sassuolo/preview/sassuolo-vs-ac-milan-prediction-team-news-lineups_606552.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Sassuolo 2-2 AC Milan"
   }
  },
  {
   "record_id": "n-ae21d497baeaa175566b7bfa",
   "url": "/authors/jonathan-o-shea/picks/2/#pick-n-ae21d497baeaa175566b7bfa",
   "match": "Cagliari v Juventus",
   "match_url": "/football/matches/cagliari-vs-juventus-2026-10-11/",
   "kickoff": "2026-10-11T18:45:00.000Z",
   "competition": "Serie A",
   "lead_hours": 52.7,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Cagliari 0-1 Juventus",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-09T13:57:11.000Z",
   "recorded_at": "2026-10-09T14:03:20.051Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "2",
    "price": "1.5556",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-ae21d497baeaa175566b7bfa",
    "quote_text": "We say: Cagliari 0-1 Juventus",
    "fragment_from": 4079,
    "fragment_to": 4108,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/cagliari/preview/cagliari-vs-juventus-prediction-team-news-lineups_606558.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "55aa0886f59476651aa6f92ee82fea2ededf7a1f6ba04778bbcfb6e010f28bab",
     "material_removed": false
    },
    "published_at": "2026-10-09T13:57:11.000Z",
    "detected_at": "2026-10-09T14:03:20.051Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-c6ff28609cbc",
     "display_name": "Cagliari — Juventus",
     "competition_name": "Serie A",
     "starts_at": "2026-10-11T18:45:00.000Z",
     "url": "/football/matches/cagliari-vs-juventus-2026-10-11/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Cagliari 0-1 Juventus",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-09T13:57:11.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-09T13:57:11.000Z",
     "detected_at": "2026-10-09T14:03:20.051Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Cagliari 0-1 Juventus",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Cagliari 0-1 Juventus"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Cagliari 1-1 Juventus."
    },
    "settlements": [
     {
      "operation_id": "d9224c449e1909b65b9c38abd031518649e3252549a30f8a82f7d84ba1348651",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Juventus",
      "decimal_odds": "1.5556",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-10T23:35:05.860Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Jonathan O'Shea",
     "publisher": "Sports Mole",
     "forecaster": "Jonathan O'Shea",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/cagliari/preview/cagliari-vs-juventus-prediction-team-news-lineups_606558.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Cagliari 0-1 Juventus"
   }
  },
  {
   "record_id": "n-4801e66ffd2b8b1d1e1f6368",
   "url": "/authors/jonathan-o-shea/picks/2/#pick-n-4801e66ffd2b8b1d1e1f6368",
   "match": "Como v AS Roma",
   "match_url": "/football/matches/como-vs-as-roma-2026-10-11/",
   "kickoff": "2026-10-11T10:30:00.000Z",
   "competition": "Serie A",
   "lead_hours": 42.5,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Como 1-1 AS Roma",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-0",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-09T15:38:00.000Z",
   "recorded_at": "2026-10-09T16:01:36.924Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "2.5500",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-4801e66ffd2b8b1d1e1f6368",
    "quote_text": "We say: Como 1-1 Roma",
    "fragment_from": 4249,
    "fragment_to": 4270,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/como/preview/como-vs-roma-prediction-team-news-lineups_606566.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "58870823652c178a8468762c609d3fc79c9755906cdc2ac4b6b49bac3fe8cbbe",
     "material_removed": false
    },
    "published_at": "2026-10-09T15:38:00.000Z",
    "detected_at": "2026-10-09T16:01:36.924Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-7674778c71d5",
     "display_name": "Como — AS Roma",
     "competition_name": "Serie A",
     "starts_at": "2026-10-11T10:30:00.000Z",
     "url": "/football/matches/como-vs-as-roma-2026-10-11/",
     "scoreline": "0-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Como 1-1 AS Roma",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-09T15:38:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-09T15:38:00.000Z",
     "detected_at": "2026-10-09T16:01:36.924Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Como 1-1 AS Roma",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Como 1-1 AS Roma"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Como 0-0 AS Roma."
    },
    "settlements": [
     {
      "operation_id": "5c7f8a1da155b38f49a1b016238f610333a21a2e236fee55479adaa2be773cd1",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "3.5000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 25000,
      "executed_at": "2026-10-10T23:35:05.076Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Jonathan O'Shea",
     "publisher": "Sports Mole",
     "forecaster": "Jonathan O'Shea",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/como/preview/como-vs-roma-prediction-team-news-lineups_606566.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Como 1-1 AS Roma"
   }
  },
  {
   "record_id": "n-6a92bc3cbdd59d4b19669ffe",
   "url": "/authors/jonathan-o-shea/picks/2/#pick-n-6a92bc3cbdd59d4b19669ffe",
   "match": "Atalanta v Venezia",
   "match_url": "/football/matches/atalanta-vs-venezia-2026-10-12/",
   "kickoff": "2026-10-12T16:30:00.000Z",
   "competition": "Serie A",
   "lead_hours": 56.2,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Atalanta 1-0 Venezia",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-10T07:20:58.000Z",
   "recorded_at": "2026-10-10T08:19:34.141Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "1.5650",
    "result": "Won",
    "points_hundredths": 5650,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-6a92bc3cbdd59d4b19669ffe",
    "quote_text": "We say: Atalanta BC 1-0 Venezia",
    "fragment_from": 4306,
    "fragment_to": 4337,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/atalanta-bc/preview/atalanta-vs-venezia-prediction-team-news-lineups_606609.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "cd3bf9b281984d62fb34a98b47841629d58dfca9782329182da6511c2d85603f",
     "material_removed": false
    },
    "published_at": "2026-10-10T07:20:58.000Z",
    "detected_at": "2026-10-10T08:19:34.141Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-8702b9f6aca5",
     "display_name": "Atalanta — Venezia",
     "competition_name": "Serie A",
     "starts_at": "2026-10-12T16:30:00.000Z",
     "url": "/football/matches/atalanta-vs-venezia-2026-10-12/",
     "scoreline": "3-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Atalanta 1-0 Venezia",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-10T07:20:58.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-10T07:20:58.000Z",
     "detected_at": "2026-10-10T08:19:34.141Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Atalanta 1-0 Venezia",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Atalanta 1-0 Venezia"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "3-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Atalanta 3-1 Venezia."
    },
    "settlements": [
     {
      "operation_id": "cc0fa715cdb76d3fc3ed2a33b2ed3695960830f4f02bcbd204e0838edef80686",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Atalanta",
      "decimal_odds": "1.5650",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 5650,
      "executed_at": "2026-10-24T09:48:07.576Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Jonathan O'Shea",
     "publisher": "Sports Mole",
     "forecaster": "Jonathan O'Shea",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/atalanta-bc/preview/atalanta-vs-venezia-prediction-team-news-lineups_606609.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Atalanta 1-0 Venezia"
   }
  },
  {
   "record_id": "n-395075185ab4b694dfec0276",
   "url": "/authors/jonathan-o-shea/picks/2/#pick-n-395075185ab4b694dfec0276",
   "match": "Torino v Udinese",
   "match_url": "/football/matches/torino-vs-udinese-2026-10-12/",
   "kickoff": "2026-10-12T18:45:00.000Z",
   "competition": "Serie A",
   "lead_hours": 57.4,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Torino 1-2 Udinese",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-10T08:57:02.000Z",
   "recorded_at": "2026-10-10T09:20:24.034Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "2.3300",
    "result": "Won",
    "points_hundredths": 13300,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-395075185ab4b694dfec0276",
    "quote_text": "We say: Torino 1-2 Udinese",
    "fragment_from": 4241,
    "fragment_to": 4267,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/torino/preview/torino-vs-udinese-prediction-team-news-lineups_606614.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "589f71ed806dc7456addb4e0fbdccb5f536989728129e01cfa4ddd064e447672",
     "material_removed": false
    },
    "published_at": "2026-10-10T08:57:02.000Z",
    "detected_at": "2026-10-10T09:20:24.034Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-63a23007668d",
     "display_name": "Torino — Udinese",
     "competition_name": "Serie A",
     "starts_at": "2026-10-12T18:45:00.000Z",
     "url": "/football/matches/torino-vs-udinese-2026-10-12/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Torino 1-2 Udinese",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-10T08:57:02.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-10T08:57:02.000Z",
     "detected_at": "2026-10-10T09:20:24.034Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Torino 1-2 Udinese",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Torino 1-2 Udinese"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Torino 2-1 Udinese."
    },
    "settlements": [
     {
      "operation_id": "b24ebe6e6e8c0517dec599183d759f954d81881c22bc3189f2ddb0e58e88b35e",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Udinese",
      "decimal_odds": "3.1000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-10T23:10:45.251Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Jonathan O'Shea",
     "publisher": "Sports Mole",
     "forecaster": "Jonathan O'Shea",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/torino/preview/torino-vs-udinese-prediction-team-news-lineups_606614.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Torino 1-2 Udinese"
   }
  }
 ],
 "pagination": {
  "per_page": 20,
  "total": 75,
  "pages": 5,
  "page_urls": [
   "/authors/jonathan-o-shea/",
   "/authors/jonathan-o-shea/picks/2/",
   "/authors/jonathan-o-shea/picks/3/",
   "/authors/jonathan-o-shea/picks/4/",
   "/authors/jonathan-o-shea/picks/5/"
  ],
  "groups": {
   "settled": 1,
   "pending": 0,
   "excluded": 74
  },
  "continuation": "by_time",
  "page": 2,
  "first": 1,
  "last": 20,
  "author_url": "/authors/jonathan-o-shea/",
  "current": false
 },
 "entity_id": "history:/authors/jonathan-o-shea/picks/2/",
 "source_revision": 62,
 "evidence_extra": [
  {
   "observation_id": "n-08856fcbaeaf553c52e3b7fd",
   "quote_text": "We say: Roma 3-1 Sassuolo",
   "fragment_from": 4575,
   "fragment_to": 4600,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/roma/preview/roma-vs-sassuolo-prediction-team-news-lineups_608516.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c862a758c18ed141ea9f11a3a972add48b366746c08364cdb5c64a2c9df18473",
    "material_removed": false
   },
   "published_at": "2026-11-05T18:38:00.000Z",
   "detected_at": "2026-11-07T17:55:44.088Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-3299a002210a",
    "display_name": "AS Roma — Sassuolo",
    "competition_name": "Serie A",
    "starts_at": "2026-11-07T19:45:00.000Z",
    "url": "/football/matches/as-roma-vs-sassuolo-2026-11-07/",
    "scoreline": null,
    "condition": "no_result"
   },
   "market_label": "Correct score",
   "outcome_label": "AS Roma 3-1 Sassuolo",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "unknown",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-11-05T18:38:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T18:38:00.000Z",
    "detected_at": "2026-11-07T17:55:44.088Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "AS Roma 3-1 Sassuolo",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "3-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: AS Roma 3-1 Sassuolo"
   },
   "author_claim_outcome": {
    "result": "unknown",
    "scoreline": null,
    "data_status": "unknown",
    "cause": "awaiting the final score",
    "methodology_version": "2.2",
    "in_words": "Pending: awaiting the final score."
   },
   "settlements": [
    {
     "operation_id": "9f693a29bdfdecdde767dc4127f945d70adb3c50b38bf46f5916b52732b75eba",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "AS Roma",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/roma/preview/roma-vs-sassuolo-prediction-team-news-lineups_608516.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "AS Roma 3-1 Sassuolo"
  },
  {
   "observation_id": "n-6aa0714c89ad515273493b35",
   "quote_text": "We say: AZ Alkmaar 1-1 Juventus",
   "fragment_from": 4435,
   "fragment_to": 4466,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/az/europa-league/preview/az-vs-juventus-prediction-team-news-lineups_608333.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "28655005b1c7a01e2fb6ef29d2a6d5b1e1f3c5ca0023c5b0a496b53d73c96273",
    "material_removed": false
   },
   "published_at": "2026-11-03T16:54:00.000Z",
   "detected_at": "2026-11-05T17:55:45.130Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-a705d07502db",
    "display_name": "AZ Alkmaar — Juventus",
    "competition_name": "UEFA Europa League",
    "starts_at": "2026-11-05T20:00:00.000Z",
    "url": "/football/matches/az-alkmaar-vs-juventus-2026-11-05/",
    "scoreline": "1-2",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "AZ Alkmaar 1-1 Juventus",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-11-03T16:54:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-03T16:54:00.000Z",
    "detected_at": "2026-11-05T17:55:45.130Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "AZ Alkmaar 1-1 Juventus",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: AZ Alkmaar 1-1 Juventus"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-2",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was AZ Alkmaar 1-2 Juventus."
   },
   "settlements": [
    {
     "operation_id": "97242e1664cf52da9ad4ee688ea80a5e0d87436260b5185b297a199da8bcd14e",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "draw",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/az/europa-league/preview/az-vs-juventus-prediction-team-news-lineups_608333.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "AZ Alkmaar 1-1 Juventus"
  },
  {
   "observation_id": "n-1f907dd3831387a8b7a3d0cd",
   "quote_text": "We say: Lens 1-2 Como",
   "fragment_from": 4668,
   "fragment_to": 4689,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/lens/champions-league/preview/lens-vs-como-prediction-team-news-lineups_608269.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "d82ab700c2c8a64fded8ae65dc4494357ff030aa6f08e46d680a8c8643c91b4e",
    "material_removed": false
   },
   "published_at": "2026-11-02T15:38:00.000Z",
   "detected_at": "2026-11-04T17:55:46.210Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-c6123553f451",
    "display_name": "RC Lens — Como",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-11-04T20:00:00.000Z",
    "url": "/football/matches/rc-lens-vs-como-2026-11-04/",
    "scoreline": "1-9",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "RC Lens 1-2 Como",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-11-02T15:38:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T15:38:00.000Z",
    "detected_at": "2026-11-04T17:55:46.210Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "RC Lens 1-2 Como",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: RC Lens 1-2 Como"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-9",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was RC Lens 1-9 Como."
   },
   "settlements": [
    {
     "operation_id": "ca0150bb37ded3ad80d6615a628fd3fb33a9ce64c26ab5ac37bdaf88b7a0185a",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "Como",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/lens/champions-league/preview/lens-vs-como-prediction-team-news-lineups_608269.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "RC Lens 1-2 Como"
  },
  {
   "observation_id": "n-a735ea72c7f684154d3305f9",
   "quote_text": "We say: Porto 2-1 Napoli",
   "fragment_from": 4963,
   "fragment_to": 4987,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/porto/champions-league/preview/porto-vs-napoli-prediction-team-news-lineups_608280.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "dcf91dbc240e4472831efde94a631597e94bf0576ec37120b17c285ca5401565",
    "material_removed": false
   },
   "published_at": "2026-11-02T17:13:00.000Z",
   "detected_at": "2026-11-04T17:55:44.360Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-9588ca212aad",
    "display_name": "FC Porto — SSC Napoli",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-11-04T20:00:00.000Z",
    "url": "/football/matches/fc-porto-vs-ssc-napoli-2026-11-04/",
    "scoreline": "4-1",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "FC Porto 2-1 SSC Napoli",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-11-02T17:13:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T17:13:00.000Z",
    "detected_at": "2026-11-04T17:55:44.360Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "FC Porto 2-1 SSC Napoli",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "2-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: FC Porto 2-1 SSC Napoli"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "4-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was FC Porto 4-1 SSC Napoli."
   },
   "settlements": [
    {
     "operation_id": "17756f473d61eb2b2d3e688e8981e2fad819f366cefc6d8279f9dca97aa57fc9",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "FC Porto",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/porto/champions-league/preview/porto-vs-napoli-prediction-team-news-lineups_608280.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "FC Porto 2-1 SSC Napoli"
  },
  {
   "observation_id": "n-69bb40a640e099b9ca8e7cc6",
   "quote_text": "We say: AC Milan 1-1 Inter Milan",
   "fragment_from": 5802,
   "fragment_to": 5834,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/ac-milan/milan-derby/preview/ac-milan-vs-inter-milan-prediction-team-news-lineups_608015.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "aab4910addc9b5f781b88b5c902163551076ea454fa9aac8c52768f9b4da12de",
    "material_removed": false
   },
   "published_at": "2026-10-29T22:00:00.000Z",
   "detected_at": "2026-10-31T17:05:47.487Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": {
    "event_id": "s-baa51e710664",
    "display_name": "AC Milan — Inter",
    "competition_name": "Serie A",
    "starts_at": "2026-10-31T19:45:00.000Z",
    "url": "/football/matches/ac-milan-vs-inter-2026-10-31/",
    "scoreline": "3-1",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "AC Milan 1-1 Inter",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-10-29T22:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-29T22:00:00.000Z",
    "detected_at": "2026-10-31T17:05:47.487Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "AC Milan 1-1 Inter",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: AC Milan 1-1 Inter"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "3-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was AC Milan 3-1 Inter."
   },
   "settlements": [
    {
     "operation_id": "a709eb36fd1a50eae30adb41256db46b4deaa1da026ab5b559150bf430de8535",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "draw",
     "decimal_odds": "3.5000",
     "odds_role": "market_price",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-31T18:53:06.519Z",
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/ac-milan/milan-derby/preview/ac-milan-vs-inter-milan-prediction-team-news-lineups_608015.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "AC Milan 1-1 Inter"
  },
  {
   "observation_id": "n-f252e171088d5a94810b4884",
   "quote_text": "We say: Napoli 1-2 Roma",
   "fragment_from": 4517,
   "fragment_to": 4540,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/napoli/preview/napoli-vs-roma-prediction-team-news-lineups_607480.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "416bf026cccbbb1e3324969e1d1ff6ce49f41b49c828e172384394ba5d20e9a7",
    "material_removed": false
   },
   "published_at": "2026-10-22T17:52:00.000Z",
   "detected_at": "2026-10-24T14:15:44.239Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-eb0fa85672d7",
    "display_name": "SSC Napoli — AS Roma",
    "competition_name": "Serie A",
    "starts_at": "2026-10-24T16:00:00.000Z",
    "url": "/football/matches/ssc-napoli-vs-as-roma-2026-10-24/",
    "scoreline": "3-3",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "SSC Napoli 1-2 AS Roma",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-10-22T17:52:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-22T17:52:00.000Z",
    "detected_at": "2026-10-24T14:15:44.239Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "SSC Napoli 1-2 AS Roma",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: SSC Napoli 1-2 AS Roma"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "3-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was SSC Napoli 3-3 AS Roma."
   },
   "settlements": [
    {
     "operation_id": "8ffe9f933f4215f28c23f54942a95a92f2fff31dfbaa584918e8e74c3b8ea6b6",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "AS Roma",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/napoli/preview/napoli-vs-roma-prediction-team-news-lineups_607480.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "SSC Napoli 1-2 AS Roma"
  },
  {
   "observation_id": "n-a0164d30a5ef0367a74780f7",
   "quote_text": "We say: Inter Milan 2-1 Shakhtar Donetsk",
   "fragment_from": 4897,
   "fragment_to": 4937,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/inter-milan/champions-league/preview/inter-milan-vs-shakhtar-prediction-team-news-lineups_607239.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "61335883f10dd83f4df94164eb4617d8450ea91e5ae1f921ce9c1233f8b9933d",
    "material_removed": false
   },
   "published_at": "2026-10-19T14:45:00.000Z",
   "detected_at": "2026-10-21T17:35:44.157Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-d3d27a7c8131",
    "display_name": "Inter — Shakhtar Donetsk",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-10-21T19:00:00.000Z",
    "url": "/football/matches/inter-vs-shakhtar-donetsk-2026-10-21/",
    "scoreline": "1-0",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Inter 2-1 Shakhtar Donetsk",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-10-19T14:45:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-19T14:45:00.000Z",
    "detected_at": "2026-10-21T17:35:44.157Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "Inter 2-1 Shakhtar Donetsk",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "2-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Inter 2-1 Shakhtar Donetsk"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was Inter 1-0 Shakhtar Donetsk."
   },
   "settlements": [
    {
     "operation_id": "08fde3b3ad1a552bcf717638e839a67739a676317b8c02f641947a0278e9f451",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "Inter",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/inter-milan/champions-league/preview/inter-milan-vs-shakhtar-prediction-team-news-lineups_607239.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Inter 2-1 Shakhtar Donetsk"
  },
  {
   "observation_id": "n-acc04e3678f2dc78912ad4f4",
   "quote_text": "We say: Roma 2-0 Slovan Bratislava",
   "fragment_from": 5283,
   "fragment_to": 5317,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/roma/champions-league/preview/roma-vs-slovan-bratislava-prediction-team-news-lineups_607148.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "5a20fca3148069800946e23e64c0c3f44afba2e1afc60b444e5cde943ffd1eb6",
    "material_removed": false
   },
   "published_at": "2026-10-18T09:48:00.000Z",
   "detected_at": "2026-10-20T16:55:44.572Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-da54e0145072",
    "display_name": "AS Roma — Slovan Bratislava",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-10-20T19:00:00.000Z",
    "url": "/football/matches/as-roma-vs-slovan-bratislava-2026-10-20/",
    "scoreline": "4-0",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "AS Roma 2-0 Slovan Bratislava",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-10-18T09:48:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-18T09:48:00.000Z",
    "detected_at": "2026-10-20T16:55:44.572Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "AS Roma 2-0 Slovan Bratislava",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "2-0",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: AS Roma 2-0 Slovan Bratislava"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "4-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was AS Roma 4-0 Slovan Bratislava."
   },
   "settlements": [
    {
     "operation_id": "0dcff211cef29aae9ec6ece1b6af687f0cbd2128fd42013b4e8a77bee210a3c6",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "AS Roma",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/roma/champions-league/preview/roma-vs-slovan-bratislava-prediction-team-news-lineups_607148.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "AS Roma 2-0 Slovan Bratislava"
  },
  {
   "observation_id": "n-234f5bd7d808c33b64c1d0d6",
   "quote_text": "We say: Napoli 1-1 Bodo/Glimt",
   "fragment_from": 4973,
   "fragment_to": 5002,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/napoli/champions-league/preview/napoli-vs-bodoglimt-prediction-team-news-lineups_607142.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "fec206138597d2bfb0b2af7e872ae068d77b726366b7648556c22a071c1231dd",
    "material_removed": false
   },
   "published_at": "2026-10-18T08:00:00.000Z",
   "detected_at": "2026-10-20T15:55:44.058Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-3c46fad2c79f",
    "display_name": "SSC Napoli — Bodø/Glimt",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-10-20T19:00:00.000Z",
    "url": "/football/matches/ssc-napoli-vs-bodo-glimt-2026-10-20/",
    "scoreline": "4-3",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "SSC Napoli 1-1 Bodø/Glimt",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-10-18T08:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-18T08:00:00.000Z",
    "detected_at": "2026-10-20T15:55:44.058Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "SSC Napoli 1-1 Bodø/Glimt",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: SSC Napoli 1-1 Bodø/Glimt"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "4-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was SSC Napoli 4-3 Bodø/Glimt."
   },
   "settlements": [
    {
     "operation_id": "851153bbf8487bb645d4a3a94b6b1902bc2e39ac562defe3056f8c342004a4c6",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "draw",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/napoli/champions-league/preview/napoli-vs-bodoglimt-prediction-team-news-lineups_607142.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "SSC Napoli 1-1 Bodø/Glimt"
  },
  {
   "observation_id": "n-902999664c9dc35b95bbb831",
   "quote_text": "We say: Monza 1-2 Cagliari",
   "fragment_from": 3548,
   "fragment_to": 3574,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/monza/preview/monza-vs-cagliari-prediction-team-news-lineups_607101.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "5f4cc0ce23c4ba75ccaf1f8bb6072dc47cd19925799f0a7ca7966f04e4ee27ea",
    "material_removed": false
   },
   "published_at": "2026-10-17T08:13:00.000Z",
   "detected_at": "2026-10-19T16:45:43.939Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-6ecbe80b1f6a",
    "display_name": "Monza — Cagliari",
    "competition_name": "Serie A",
    "starts_at": "2026-10-19T16:30:00.000Z",
    "url": "/football/matches/monza-vs-cagliari-2026-10-19/",
    "scoreline": "4-0",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Monza 1-2 Cagliari",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-10-17T08:13:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-17T08:13:00.000Z",
    "detected_at": "2026-10-19T16:45:43.939Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "recorded_after_kickoff",
   "origin_words": "Recorded by us after kick-off; date as stated by the source",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "Monza 1-2 Cagliari",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Monza 1-2 Cagliari"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "4-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was Monza 4-0 Cagliari."
   },
   "settlements": [
    {
     "operation_id": "334a9bb580e1031b273c5bb43578f12d01c0d4e92535ab3a46eeb41420cae7cb",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "Cagliari",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/monza/preview/monza-vs-cagliari-prediction-team-news-lineups_607101.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Monza 1-2 Cagliari"
  },
  {
   "observation_id": "n-11c94e84f262e0a1cc9fe1ec",
   "quote_text": "We say: Parma 0-1 Torino",
   "fragment_from": 3882,
   "fragment_to": 3906,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/parma/preview/parma-vs-torino-prediction-team-news-lineups_607108.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "440452c30a7a0471a0843858b9553b2a547d24b3010281d165a41c079e2adbd9",
    "material_removed": false
   },
   "published_at": "2026-10-17T09:39:00.000Z",
   "detected_at": "2026-10-18T18:55:41.810Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-550a1d932859",
    "display_name": "Parma — Torino",
    "competition_name": "Serie A",
    "starts_at": "2026-10-19T18:45:00.000Z",
    "url": "/football/matches/parma-vs-torino-2026-10-19/",
    "scoreline": "0-3",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Parma 0-1 Torino",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-10-17T09:39:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-17T09:39:00.000Z",
    "detected_at": "2026-10-18T18:55:41.810Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "Parma 0-1 Torino",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "0-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Parma 0-1 Torino"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "0-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was Parma 0-3 Torino."
   },
   "settlements": [
    {
     "operation_id": "4a86edf0cfbc0a3759bc67c1ebaaba4cbb57ca31b33cfb42227584d5d9f26f51",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "Torino",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/parma/preview/parma-vs-torino-prediction-team-news-lineups_607108.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Parma 0-1 Torino"
  },
  {
   "observation_id": "n-979300f8c9e2b1bec266846d",
   "quote_text": "We say: AC Milan 2-1 Atalanta BC",
   "fragment_from": 4304,
   "fragment_to": 4336,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/ac-milan/preview/ac-milan-vs-atalanta-prediction-team-news-lineups_607046.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "33d32bdf7e3b3b3030e9eaa839bb0b7f28f7191791c9eba0f7672d8fc46eda05",
    "material_removed": false
   },
   "published_at": "2026-10-16T11:58:00.000Z",
   "detected_at": "2026-10-18T16:15:38.268Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-e6b8273ecffa",
    "display_name": "AC Milan — Atalanta",
    "competition_name": "Serie A",
    "starts_at": "2026-10-18T16:00:00.000Z",
    "url": "/football/matches/ac-milan-vs-atalanta-2026-10-18/",
    "scoreline": "3-2",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "AC Milan 2-1 Atalanta",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-10-16T11:58:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-16T11:58:00.000Z",
    "detected_at": "2026-10-18T16:15:38.268Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "recorded_after_kickoff",
   "origin_words": "Recorded by us after kick-off; date as stated by the source",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "AC Milan 2-1 Atalanta",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "2-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: AC Milan 2-1 Atalanta"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "3-2",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was AC Milan 3-2 Atalanta."
   },
   "settlements": [
    {
     "operation_id": "e485f0f4b2bbd8d820b43275a464e20faf6cd1651cfdb15f35c1c61ec18310d0",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "AC Milan",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/ac-milan/preview/ac-milan-vs-atalanta-prediction-team-news-lineups_607046.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "AC Milan 2-1 Atalanta"
  },
  {
   "observation_id": "n-f23024d1e54fe54c447eeb64",
   "quote_text": "We say: Frosinone 1-2 Sassuolo",
   "fragment_from": 3922,
   "fragment_to": 3952,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/frosinone/preview/frosinone-vs-sassuolo-prediction-team-news-lineups_606881.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c7702c7d77ea276a5f15d2ceabb58b4c9e773197b1321079104a5e82e5a5268c",
    "material_removed": false
   },
   "published_at": "2026-10-14T14:08:28.000Z",
   "detected_at": "2026-10-16T18:55:39.267Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-d362eb8e26a8",
    "display_name": "Frosinone — Sassuolo",
    "competition_name": "Serie A",
    "starts_at": "2026-10-16T18:45:00.000Z",
    "url": "/football/matches/frosinone-vs-sassuolo-2026-10-16/",
    "scoreline": "4-2",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Frosinone 1-2 Sassuolo",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-10-14T14:08:28.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-14T14:08:28.000Z",
    "detected_at": "2026-10-16T18:55:39.267Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "recorded_after_kickoff",
   "origin_words": "Recorded by us after kick-off; date as stated by the source",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "Frosinone 1-2 Sassuolo",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Frosinone 1-2 Sassuolo"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "4-2",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was Frosinone 4-2 Sassuolo."
   },
   "settlements": [
    {
     "operation_id": "ccaf7efc556b5f26e0de8433063e9aaee47ed6c7a6071639b6b467e5c8bc1a5f",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "Sassuolo",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/frosinone/preview/frosinone-vs-sassuolo-prediction-team-news-lineups_606881.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Frosinone 1-2 Sassuolo"
  },
  {
   "observation_id": "n-c65a0fa43eb66090d0ea113d",
   "quote_text": "We say: Roma 1-2 Real Madrid",
   "fragment_from": 5816,
   "fragment_to": 5844,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/roma/champions-league/preview/roma-vs-real-madrid-prediction-team-news-lineups_606745.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c0abb5642685c4fec45d1cc1df02c5574cee00c1082ce2da54cdc118acc4061e",
    "material_removed": false
   },
   "published_at": "2026-10-12T15:04:00.000Z",
   "detected_at": "2026-10-14T14:05:38.650Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-5ee031909a68",
    "display_name": "AS Roma — Real Madrid",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-10-14T19:00:00.000Z",
    "url": "/football/matches/as-roma-vs-real-madrid-2026-10-14/",
    "scoreline": "3-4",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "AS Roma 1-2 Real Madrid",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-10-12T15:04:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-12T15:04:00.000Z",
    "detected_at": "2026-10-14T14:05:38.650Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "AS Roma 1-2 Real Madrid",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: AS Roma 1-2 Real Madrid"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "3-4",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was AS Roma 3-4 Real Madrid."
   },
   "settlements": [
    {
     "operation_id": "12ae2c790da9c5782fd5c8272eaae8b39a2faf388fbb79734e4d0d6e2171c608",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "Real Madrid",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/roma/champions-league/preview/roma-vs-real-madrid-prediction-team-news-lineups_606745.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "AS Roma 1-2 Real Madrid"
  },
  {
   "observation_id": "n-950f807939c757551c8554e0",
   "quote_text": "We say: Italy 2-0 Turkey",
   "fragment_from": 4598,
   "fragment_to": 4622,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/italy/uefa-nations-league/preview/italy-vs-turkey-prediction-team-news-lineups_606152.html",
    "display_name": null,
    "speaker": "Jonathan O'Shea",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "804ba8a84e1a7d079d745d18360889dceb07cce1b81920d7b7271df9e27d638c",
    "material_removed": false
   },
   "published_at": "2026-10-03T06:40:00.000Z",
   "detected_at": "2026-10-05T13:09:31.304Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-93823749efa3",
    "display_name": "Italy — Turkey",
    "competition_name": "UEFA Nations League",
    "starts_at": "2026-10-05T18:45:00.000Z",
    "url": null,
    "scoreline": "3-1",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Italy 2-0 Turkey",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-10-03T06:40:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-03T06:40:00.000Z",
    "detected_at": "2026-10-05T13:09:31.304Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "Correct score",
    "choice": "Italy 2-0 Turkey",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "2-0",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Italy 2-0 Turkey"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "3-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was Italy 3-1 Turkey."
   },
   "settlements": [
    {
     "operation_id": "a54f7cd46ceab9a30eba523fa73d02455a27e8fe5cb34f93b3f7423d8919230d",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "Italy",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jonathan O'Shea",
    "publisher": "Sports Mole",
    "forecaster": "Jonathan O'Shea",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.sportsmole.co.uk/football/italy/uefa-nations-league/preview/italy-vs-turkey-prediction-team-news-lineups_606152.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Italy 2-0 Turkey"
  }
 ]
}
