{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "history",
 "url": "/authors/jonathan-o-shea/picks/3/",
 "canonical": "/authors/jonathan-o-shea/picks/3/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Jonathan O'Shea — football predictions, page 3 of 5",
 "description": "Predictions 21–40 of 75 by Jonathan O'Shea, with outcomes in words and links to the evidence.",
 "first_paragraph": {
  "body": "Page 3 of 5 of the predictions by Jonathan O'Shea recorded by Forecast Record: predictions 21–40 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": "1c3378b8ac276f66afe9e3b1509a39b1eeb6a66be1da624d5e02d51adf1931db",
 "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/3/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-7f1c488900b3277f23baf7f7",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-7f1c488900b3277f23baf7f7",
   "match": "Villarreal v SSC Napoli",
   "match_url": "/football/matches/villarreal-vs-ssc-napoli-2026-10-13/",
   "kickoff": "2026-10-13T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 55.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Villarreal 1-1 SSC Napoli",
   "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-11T10:58:15.000Z",
   "recorded_at": "2026-10-11T11:09:51.164Z",
   "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.1900",
    "result": "Won",
    "points_hundredths": 11900,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-7f1c488900b3277f23baf7f7",
    "quote_text": "We say: Villarreal 1-1 Napoli",
    "fragment_from": 4583,
    "fragment_to": 4612,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/villarreal/champions-league/preview/villarreal-vs-napoli-prediction-team-news-lineups_606662.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "748adee712541c6c5bc8bcd424de6255b8c306e5d6859ba0e27de495564b89e3",
     "material_removed": false
    },
    "published_at": "2026-10-11T10:58:15.000Z",
    "detected_at": "2026-10-11T11:09:51.164Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-dfd94b3dad49",
     "display_name": "Villarreal — SSC Napoli",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-10-13T19:00:00.000Z",
     "url": "/football/matches/villarreal-vs-ssc-napoli-2026-10-13/",
     "scoreline": "3-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Villarreal 1-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-10-11T10:58:15.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-11T10:58:15.000Z",
     "detected_at": "2026-10-11T11:09:51.164Z",
     "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": "Villarreal 1-1 SSC Napoli",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Villarreal 1-1 SSC Napoli"
    },
    "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 Villarreal 3-1 SSC Napoli."
    },
    "settlements": [
     {
      "operation_id": "9bce46d1618740149354a17f17a2f72964756f97965be7921670cfc69179711f",
      "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.6350",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-11T19:49:31.165Z",
      "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/villarreal/champions-league/preview/villarreal-vs-napoli-prediction-team-news-lineups_606662.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Villarreal 1-1 SSC Napoli"
   }
  },
  {
   "record_id": "n-600c364f6bcbf513f11350aa",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-600c364f6bcbf513f11350aa",
   "match": "AS Roma v Real Madrid",
   "match_url": "/football/matches/as-roma-vs-real-madrid-2026-10-14/",
   "kickoff": "2026-10-14T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 38.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: AS Roma 1-2 Real Madrid",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-4",
   "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-12T15:04:00.000Z",
   "recorded_at": "2026-10-13T04:09:46.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": "2",
    "price": "1.8700",
    "result": "Won",
    "points_hundredths": 8700,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-600c364f6bcbf513f11350aa",
    "quote_text": "We say: Roma 1-2 Real Madrid",
    "fragment_from": 5666,
    "fragment_to": 5694,
    "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": "f9208c5f424eba0e4e51de9b696d5780eb708a9da2e8bc40f8ba61d4917853b5",
     "material_removed": false
    },
    "published_at": "2026-10-12T15:04:00.000Z",
    "detected_at": "2026-10-13T04:09:46.863Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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-13T04:09:46.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": "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": "91e78e2b38c69a4dba89fffa00beec599136123a2f22c80fd5249c353e81d79c",
      "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": "1.8600",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 8600,
      "executed_at": "2026-10-13T04:12:15.940Z",
      "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"
   }
  },
  {
   "record_id": "n-4153bb28c11589ea21164e45",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-4153bb28c11589ea21164e45",
   "match": "Inter v Club Brugge KV",
   "match_url": "/football/matches/inter-vs-club-brugge-kv-2026-10-13/",
   "kickoff": "2026-10-13T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 2.9,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Inter 3-1 Club Brugge KV",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-4",
   "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-11T13:13:00.000Z",
   "recorded_at": "2026-10-13T16:05:39.115Z",
   "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.2222",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": "Sports Mole, RSS feed",
   "correction": null,
   "evidence": {
    "observation_id": "n-4153bb28c11589ea21164e45",
    "quote_text": "We say: Inter Milan 3-1 Club Brugge",
    "fragment_from": 4876,
    "fragment_to": 4911,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/inter-milan/champions-league/preview/inter-milan-vs-brugge-prediction-team-news-lineups_606669.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "380e97e1bad3eea1bb11cf9613587fa0443e83db558bbdde37cbfd82bf01b274",
     "material_removed": false
    },
    "published_at": "2026-10-11T13:13:00.000Z",
    "detected_at": "2026-10-13T16:05:39.115Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-4374858573f2",
     "display_name": "Inter — Club Brugge KV",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-10-13T19:00:00.000Z",
     "url": "/football/matches/inter-vs-club-brugge-kv-2026-10-13/",
     "scoreline": "3-4",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Inter 3-1 Club Brugge KV",
    "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-11T13:13:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-11T13:13:00.000Z",
     "detected_at": "2026-10-13T16:05:39.115Z",
     "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-1 Club Brugge KV",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "3-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Inter 3-1 Club Brugge KV"
    },
    "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 Inter 3-4 Club Brugge KV."
    },
    "settlements": [
     {
      "operation_id": "358caab80343c11b4ac4f572c04c921c71e9e7911e3b0d86dce97298d446d21b",
      "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.2222",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-13T16:23:01.924Z",
      "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-brugge-prediction-team-news-lineups_606669.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Inter 3-1 Club Brugge KV"
   }
  },
  {
   "record_id": "n-0a1df6a48168f1e5f95ed79a",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-0a1df6a48168f1e5f95ed79a",
   "match": "Celta Vigo v Juventus",
   "match_url": "/football/matches/celta-vigo-vs-juventus-2026-10-15/",
   "kickoff": "2026-10-15T19:00:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 50.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Celta Vigo 1-2 Juventus",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "1-2",
   "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-13T15:52:00.000Z",
   "recorded_at": "2026-10-13T16:09:52.766Z",
   "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.1000",
    "result": "Won",
    "points_hundredths": 11000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-0a1df6a48168f1e5f95ed79a",
    "quote_text": "We say: Celta Vigo 1-2 Juventus",
    "fragment_from": 4515,
    "fragment_to": 4546,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/celta-vigo/europa-league/preview/celta-vigo-vs-juventus-prediction-team-news-lineups_606821.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "fcee7e40b13887cdaf0ac89982a71ae2571298fa016ebbdb84dffe8cd7b2d71f",
     "material_removed": false
    },
    "published_at": "2026-10-13T15:52:00.000Z",
    "detected_at": "2026-10-13T16:09:52.766Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-ee7653b4f9b4",
     "display_name": "Celta Vigo — Juventus",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-10-15T19:00:00.000Z",
     "url": "/football/matches/celta-vigo-vs-juventus-2026-10-15/",
     "scoreline": "1-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Celta Vigo 1-2 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": "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-13T15:52:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-13T15:52:00.000Z",
     "detected_at": "2026-10-13T16:09:52.766Z",
     "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": "Celta Vigo 1-2 Juventus",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Celta Vigo 1-2 Juventus"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Celta Vigo 1-2 Juventus."
    },
    "settlements": [
     {
      "operation_id": "6509e515005132d25e6c6f2f42718bd062de5cff5ae77bd5670d166ca966fa0b",
      "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": "2.1000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 11000,
      "executed_at": "2026-10-13T22:41:59.760Z",
      "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/celta-vigo/europa-league/preview/celta-vigo-vs-juventus-prediction-team-news-lineups_606821.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Celta Vigo 1-2 Juventus"
   }
  },
  {
   "record_id": "n-d44724c8b41d90e899e4825d",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-d44724c8b41d90e899e4825d",
   "match": "Red Bull Salzburg v AC Milan",
   "match_url": "/football/matches/red-bull-salzburg-vs-ac-milan-2026-10-15/",
   "kickoff": "2026-10-15T16:45:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 46.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Red Bull Salzburg 1-1 AC Milan",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-4",
   "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-13T14:23:00.000Z",
   "recorded_at": "2026-10-13T18:09:50.311Z",
   "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": "Won",
    "points_hundredths": 8000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-d44724c8b41d90e899e4825d",
    "quote_text": "We say: Red Bull Salzburg 1-1 AC Milan",
    "fragment_from": 4217,
    "fragment_to": 4255,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/red-bull-salzburg/europa-league/preview/salzburg-vs-ac-milan-prediction-team-news-lineups_606816.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "395fb07bc17a0cbfe11c212694b5a979a4df7d0b2ea5412ab7a91d272705d119",
     "material_removed": false
    },
    "published_at": "2026-10-13T14:23:00.000Z",
    "detected_at": "2026-10-13T18:09:50.311Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-f734162919a3",
     "display_name": "Red Bull Salzburg — AC Milan",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-10-15T16:45:00.000Z",
     "url": "/football/matches/red-bull-salzburg-vs-ac-milan-2026-10-15/",
     "scoreline": "0-4",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Red Bull Salzburg 1-1 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-13T14:23:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-13T14:23:00.000Z",
     "detected_at": "2026-10-13T18:09:50.311Z",
     "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": "Red Bull Salzburg 1-1 AC Milan",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Red Bull Salzburg 1-1 AC Milan"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-4",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Red Bull Salzburg 0-4 AC Milan."
    },
    "settlements": [
     {
      "operation_id": "cfc62adbc9518f8bf67fdd3c65e8379d4bd928452d779b3a5494cdd3f94b9fef",
      "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.9000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-13T18:13:27.450Z",
      "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/red-bull-salzburg/europa-league/preview/salzburg-vs-ac-milan-prediction-team-news-lineups_606816.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Red Bull Salzburg 1-1 AC Milan"
   }
  },
  {
   "record_id": "n-eb20ae45d4ecd7c8e845640b",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-eb20ae45d4ecd7c8e845640b",
   "match": "Frosinone v Sassuolo",
   "match_url": "/football/matches/frosinone-vs-sassuolo-2026-10-16/",
   "kickoff": "2026-10-16T18:45:00.000Z",
   "competition": "Serie A",
   "lead_hours": 51.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Frosinone 1-2 Sassuolo",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "4-2",
   "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-14T14:08:28.000Z",
   "recorded_at": "2026-10-14T15:09:49.860Z",
   "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.5000",
    "result": "Won",
    "points_hundredths": 15000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-eb20ae45d4ecd7c8e845640b",
    "quote_text": "We say: Frosinone 1-2 Sassuolo",
    "fragment_from": 3910,
    "fragment_to": 3940,
    "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": "f2d802c2dc0b6c910d43cc16373c034ed830db98d5fd52b430929a780d784afd",
     "material_removed": false
    },
    "published_at": "2026-10-14T14:08:28.000Z",
    "detected_at": "2026-10-14T15:09:49.860Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "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-14T15:09:49.860Z",
     "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": "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": "bdd6f2ec6b96684070d93c99115479208af63811e1b35dc906380d945934a6fe",
      "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": "2.6000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-14T21:11:32.669Z",
      "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"
   }
  },
  {
   "record_id": "n-8dc01854e5f5a7152f47c3e0",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-8dc01854e5f5a7152f47c3e0",
   "match": "Venezia v SSC Napoli",
   "match_url": "/football/matches/venezia-vs-ssc-napoli-2026-10-17/",
   "kickoff": "2026-10-17T13:00:00.000Z",
   "competition": "Serie A",
   "lead_hours": 45.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Venezia 0-2 SSC Napoli",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-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-15T14:28:33.000Z",
   "recorded_at": "2026-10-15T15:09:53.840Z",
   "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.6667",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-8dc01854e5f5a7152f47c3e0",
    "quote_text": "We say: Venezia 0-2 Napoli",
    "fragment_from": 4519,
    "fragment_to": 4545,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/venezia/preview/venezia-vs-napoli-prediction-team-news-lineups_606967.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "ab8240cfb74de291d54f06f1daa62aa06c36d6c6f1a4b3764446c363e054ed22",
     "material_removed": false
    },
    "published_at": "2026-10-15T14:28:33.000Z",
    "detected_at": "2026-10-15T15:09:53.840Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-f82840de1bc9",
     "display_name": "Venezia — SSC Napoli",
     "competition_name": "Serie A",
     "starts_at": "2026-10-17T13:00:00.000Z",
     "url": "/football/matches/venezia-vs-ssc-napoli-2026-10-17/",
     "scoreline": "1-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Venezia 0-2 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-10-15T14:28:33.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T14:28:33.000Z",
     "detected_at": "2026-10-15T15:09:53.840Z",
     "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": "Venezia 0-2 SSC Napoli",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Venezia 0-2 SSC Napoli"
    },
    "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 Venezia 1-0 SSC Napoli."
    },
    "settlements": [
     {
      "operation_id": "fc646cb535d98aecad976a4ef42b2da092c5a38258103a32f2768c1956a0f58a",
      "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.6667",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-15T15:11:50.499Z",
      "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/venezia/preview/venezia-vs-napoli-prediction-team-news-lineups_606967.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Venezia 0-2 SSC Napoli"
   }
  },
  {
   "record_id": "n-197b25da97ada5435e183158",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-197b25da97ada5435e183158",
   "match": "Bologna v Inter",
   "match_url": "/football/matches/bologna-vs-inter-2026-10-17/",
   "kickoff": "2026-10-17T16:00:00.000Z",
   "competition": "Serie A",
   "lead_hours": 47.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Bologna 0-2 Inter",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-3",
   "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-15T15:47:56.000Z",
   "recorded_at": "2026-10-15T16:09:49.263Z",
   "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.5814",
    "result": "Won",
    "points_hundredths": 5814,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-197b25da97ada5435e183158",
    "quote_text": "We say: Bologna 0-2 Inter Milan",
    "fragment_from": 3901,
    "fragment_to": 3932,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/bologna/preview/bologna-vs-inter-milan-prediction-team-news-lineups_606975.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "eae0278f9afc9a5f072df85d0b3f0a33acbe573cc27f67577eccac7b8cdb6690",
     "material_removed": false
    },
    "published_at": "2026-10-15T15:47:56.000Z",
    "detected_at": "2026-10-15T16:09:49.263Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-0269219b78f7",
     "display_name": "Bologna — Inter",
     "competition_name": "Serie A",
     "starts_at": "2026-10-17T16:00:00.000Z",
     "url": "/football/matches/bologna-vs-inter-2026-10-17/",
     "scoreline": "1-3",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Bologna 0-2 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-15T15:47:56.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T15:47:56.000Z",
     "detected_at": "2026-10-15T16:09:49.263Z",
     "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": "Bologna 0-2 Inter",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Bologna 0-2 Inter"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-3",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Bologna 1-3 Inter."
    },
    "settlements": [
     {
      "operation_id": "2254f313d5a4b920984c679a51c48fb4e12c185b6f0d915d466fa5d65ece7164",
      "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.5814",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 5814,
      "executed_at": "2026-10-15T16:40:22.671Z",
      "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/bologna/preview/bologna-vs-inter-milan-prediction-team-news-lineups_606975.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Bologna 0-2 Inter"
   }
  },
  {
   "record_id": "n-5b733d9371d70e5ad4eb6962",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-5b733d9371d70e5ad4eb6962",
   "match": "AS Roma v Genoa",
   "match_url": "/football/matches/as-roma-vs-genoa-2026-10-17/",
   "kickoff": "2026-10-17T18:45:00.000Z",
   "competition": "Serie A",
   "lead_hours": 48.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: AS Roma 2-0 Genoa",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "2-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-15T17:16:00.000Z",
   "recorded_at": "2026-10-15T18:09:48.985Z",
   "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-5b733d9371d70e5ad4eb6962",
    "quote_text": "We say: Roma 2-0 Genoa",
    "fragment_from": 4562,
    "fragment_to": 4584,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/roma/preview/roma-vs-genoa-prediction-team-news-lineups_606982.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "82f7787dd297216f502e31ca35414c31f71b14acb3ff00ffeea99cbbddf86583",
     "material_removed": false
    },
    "published_at": "2026-10-15T17:16:00.000Z",
    "detected_at": "2026-10-15T18:09:48.985Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-7163016c6723",
     "display_name": "AS Roma — Genoa",
     "competition_name": "Serie A",
     "starts_at": "2026-10-17T18:45:00.000Z",
     "url": "/football/matches/as-roma-vs-genoa-2026-10-17/",
     "scoreline": "2-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "AS Roma 2-0 Genoa",
    "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-15T17:16:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T17:16:00.000Z",
     "detected_at": "2026-10-15T18:09:48.985Z",
     "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 Genoa",
     "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 Genoa"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "2-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was AS Roma 2-0 Genoa."
    },
    "settlements": [
     {
      "operation_id": "916e3399dbcf135c5cb31ab682dc1b4c24ea92b4bd88e916026f9ca14ec6e2f7",
      "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": "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-15T20:59:31.022Z",
      "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-genoa-prediction-team-news-lineups_606982.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "AS Roma 2-0 Genoa"
   }
  },
  {
   "record_id": "n-0207815db9dea7e936af1681",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Udinese 1-0 Lecce",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "",
   "reason_code": "ambiguous",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-16T07:45:00.000Z",
   "recorded_at": "2026-10-16T08:09:47.504Z",
   "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-50632a67f1c039dadce301ec",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Fiorentina 1-2 Como",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "",
   "reason_code": "ambiguous",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-16T09:15:31.000Z",
   "recorded_at": "2026-10-16T10:09:50.053Z",
   "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-7adcaf1e3fb6fab016b38631",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-7adcaf1e3fb6fab016b38631",
   "match": "AC Milan v Atalanta",
   "match_url": "/football/matches/ac-milan-vs-atalanta-2026-10-18/",
   "kickoff": "2026-10-18T16:00:00.000Z",
   "competition": "Serie A",
   "lead_hours": 51.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: AC Milan 2-1 Atalanta",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-2",
   "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-16T11:58:00.000Z",
   "recorded_at": "2026-10-16T12:09:48.526Z",
   "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.8000",
    "result": "Won",
    "points_hundredths": 8000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-7adcaf1e3fb6fab016b38631",
    "quote_text": "We say: AC Milan 2-1 Atalanta BC",
    "fragment_from": 4294,
    "fragment_to": 4326,
    "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": "e37035fa1ca88423c01a6d6dc12207a93a4ab22bfce6cb729858ea6d9b4d683c",
     "material_removed": false
    },
    "published_at": "2026-10-16T11:58:00.000Z",
    "detected_at": "2026-10-16T12:09:48.526Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "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-16T12:09:48.526Z",
     "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 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": "6fcd0e432170e99691a4ca3374a3d58713cb7ac6fe76efc95d4c46e6632a1997",
      "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": "1.8000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 8000,
      "executed_at": "2026-10-24T09:43:55.741Z",
      "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"
   }
  },
  {
   "record_id": "n-f8b844b38854ba5d7b79dfea",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-f8b844b38854ba5d7b79dfea",
   "match": "Juventus v Lazio",
   "match_url": "/football/matches/juventus-vs-lazio-2026-10-18/",
   "kickoff": "2026-10-18T18:45:00.000Z",
   "competition": "Serie A",
   "lead_hours": 45.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Juventus 1-1 Lazio",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-3",
   "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-16T13:26:00.000Z",
   "recorded_at": "2026-10-16T21:09:52.735Z",
   "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.6667",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-f8b844b38854ba5d7b79dfea",
    "quote_text": "We say: Juventus 1-1 Lazio",
    "fragment_from": 4175,
    "fragment_to": 4201,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/preview/juventus-vs-lazio-prediction-team-news-lineups_607051.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "4c54a554bd0f1e48c21b0f8009e7ac49c8ebeb4240bc59e8737377185a536dac",
     "material_removed": false
    },
    "published_at": "2026-10-16T13:26:00.000Z",
    "detected_at": "2026-10-16T21:09:52.735Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-5093c67a6064",
     "display_name": "Juventus — Lazio",
     "competition_name": "Serie A",
     "starts_at": "2026-10-18T18:45:00.000Z",
     "url": "/football/matches/juventus-vs-lazio-2026-10-18/",
     "scoreline": "0-3",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Juventus 1-1 Lazio",
    "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-16T13:26:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-16T13:26:00.000Z",
     "detected_at": "2026-10-16T21:09:52.735Z",
     "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": "Juventus 1-1 Lazio",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Juventus 1-1 Lazio"
    },
    "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 Juventus 0-3 Lazio."
    },
    "settlements": [
     {
      "operation_id": "3f87cdc1f179c885561c81c3949b5e41f3aa5a337bbda8789dd26fd54ddfffa0",
      "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.8000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-18T12:38:34.908Z",
      "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/preview/juventus-vs-lazio-prediction-team-news-lineups_607051.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Juventus 1-1 Lazio"
   }
  },
  {
   "record_id": "n-76bde772f13d916ae72daf86",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-76bde772f13d916ae72daf86",
   "match": "Monza v Cagliari",
   "match_url": "/football/matches/monza-vs-cagliari-2026-10-19/",
   "kickoff": "2026-10-19T16:30:00.000Z",
   "competition": "Serie A",
   "lead_hours": 55.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Monza 1-2 Cagliari",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "4-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-17T08:13:00.000Z",
   "recorded_at": "2026-10-17T09:10:02.484Z",
   "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.3800",
    "result": "Won",
    "points_hundredths": 13800,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-76bde772f13d916ae72daf86",
    "quote_text": "We say: Monza 1-2 Cagliari",
    "fragment_from": 3536,
    "fragment_to": 3562,
    "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": "7434bdffc888fa09e810c453c00051e0e32b87ed71aa2148d9ff3a99758e19e0",
     "material_removed": false
    },
    "published_at": "2026-10-17T08:13:00.000Z",
    "detected_at": "2026-10-17T09:10:02.484Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "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-17T09:10:02.484Z",
     "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": "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": "e850425e2dae4d2f3eae57e1febf5da6f15994316b1f4f090cef6d3a3b804a6c",
      "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": "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-18T06:10:43.957Z",
      "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"
   }
  },
  {
   "record_id": "n-8f737620027bd3f723994330",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-8f737620027bd3f723994330",
   "match": "Parma v Torino",
   "match_url": "/football/matches/parma-vs-torino-2026-10-19/",
   "kickoff": "2026-10-19T18:45:00.000Z",
   "competition": "Serie A",
   "lead_hours": 56.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Parma 0-1 Torino",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-3",
   "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-17T09:39:29.000Z",
   "recorded_at": "2026-10-17T10:09:55.850Z",
   "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.3700",
    "result": "Won",
    "points_hundredths": 13700,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-8f737620027bd3f723994330",
    "quote_text": "We say: Parma 0-1 Torino",
    "fragment_from": 3848,
    "fragment_to": 3872,
    "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": "296cbab19bbc5c228fc9b60279ac7a26034b8f80262354a50db3f6754fed9643",
     "material_removed": false
    },
    "published_at": "2026-10-17T09:39:29.000Z",
    "detected_at": "2026-10-17T10:09:55.850Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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:29.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-17T09:39:29.000Z",
     "detected_at": "2026-10-17T10:09:55.850Z",
     "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": "baecbeebe9005e764ad305aa6eabf616a7f985056fa5b809fd9c96c9d61aa4c2",
      "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": "2.3700",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 13700,
      "executed_at": "2026-10-18T06:17:49.255Z",
      "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"
   }
  },
  {
   "record_id": "n-962e500a3d64d84da51f0863",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-962e500a3d64d84da51f0863",
   "match": "SSC Napoli v Bodø/Glimt",
   "match_url": "/football/matches/ssc-napoli-vs-bodo-glimt-2026-10-20/",
   "kickoff": "2026-10-20T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 57.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: SSC Napoli 1-1 Bodø/Glimt",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "4-3",
   "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-18T08:00:00.000Z",
   "recorded_at": "2026-10-18T09:09:56.875Z",
   "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.5917",
    "result": "Won",
    "points_hundredths": 5917,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-962e500a3d64d84da51f0863",
    "quote_text": "We say: Napoli 1-1 Bodo/Glimt",
    "fragment_from": 4844,
    "fragment_to": 4873,
    "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": "65e4da20351cba6039fea9f7d9622d7187e4645aa80d0b4bbb4ce0b80e684a46",
     "material_removed": false
    },
    "published_at": "2026-10-18T08:00:00.000Z",
    "detected_at": "2026-10-18T09:09:56.875Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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-18T09:09:56.875Z",
     "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": "1e3b24dbb7344bed8cf4e03dffdf422b870d69045f14adfceca8af164e06f87c",
      "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": "4.4000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-21T00:40:22.252Z",
      "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"
   }
  },
  {
   "record_id": "n-2f5bca55be1b83a773f74633",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-2f5bca55be1b83a773f74633",
   "match": "AS Roma v Slovan Bratislava",
   "match_url": "/football/matches/as-roma-vs-slovan-bratislava-2026-10-20/",
   "kickoff": "2026-10-20T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 56.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: AS Roma 2-0 Slovan Bratislava",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "4-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-18T09:48:00.000Z",
   "recorded_at": "2026-10-18T10:09:58.441Z",
   "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.1400",
    "result": "Won",
    "points_hundredths": 1400,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-2f5bca55be1b83a773f74633",
    "quote_text": "We say: Roma 2-0 Slovan Bratislava",
    "fragment_from": 5084,
    "fragment_to": 5118,
    "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": "f8a22d63b51fd5fee3018ff7c9d08613881162614a806147e6ffa373c4b4efac",
     "material_removed": false
    },
    "published_at": "2026-10-18T09:48:00.000Z",
    "detected_at": "2026-10-18T10:09:58.441Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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-18T10:09:58.441Z",
     "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": "f51db0c9cb5fd08c5cc2184f5f1e8fbff9d1a15a42dd637367136e175fa81670",
      "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": "1.1500",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 1500,
      "executed_at": "2026-10-21T00:40:22.198Z",
      "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"
   }
  },
  {
   "record_id": "n-c699c20fc00db05b2a7106de",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-c699c20fc00db05b2a7106de",
   "match": "Inter v Shakhtar Donetsk",
   "match_url": "/football/matches/inter-vs-shakhtar-donetsk-2026-10-21/",
   "kickoff": "2026-10-21T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 51.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Inter 2-1 Shakhtar Donetsk",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-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-19T14:45:54.000Z",
   "recorded_at": "2026-10-19T15:10:09.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": "1",
    "price": "1.1887",
    "result": "Won",
    "points_hundredths": 1887,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-c699c20fc00db05b2a7106de",
    "quote_text": "We say: Inter Milan 2-1 Shakhtar Donetsk",
    "fragment_from": 4867,
    "fragment_to": 4907,
    "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": "cbc92bcfef6fef5e7c443f9df4e402a96f5c2350d9742a921e424c3c7a3d5f38",
     "material_removed": false
    },
    "published_at": "2026-10-19T14:45:54.000Z",
    "detected_at": "2026-10-19T15:10:09.051Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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:54.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-19T14:45:54.000Z",
     "detected_at": "2026-10-19T15:10:09.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": "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": "1447ab9a562c9f14ec93d1fde810ae2e486f297f8c87a67c3e3e7925e9746741",
      "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.1887",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 1887,
      "executed_at": "2026-10-21T00:37:57.331Z",
      "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"
   }
  },
  {
   "record_id": "n-01514687abee24d30771a490",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-01514687abee24d30771a490",
   "match": "Juventus v Stade Rennais",
   "match_url": "/football/matches/juventus-vs-stade-rennais-2026-10-22/",
   "kickoff": "2026-10-22T16:45:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 50.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Juventus 2-1 Stade Rennais",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-2",
   "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-20T13:36:00.000Z",
   "recorded_at": "2026-10-20T14:09:54.476Z",
   "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": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-01514687abee24d30771a490",
    "quote_text": "We say: Juventus 2-1 Rennes",
    "fragment_from": 4661,
    "fragment_to": 4688,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/juventus/europa-league/preview/juventus-vs-rennes-prediction-team-news-lineups_607298.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "a45cbf2b42c9a7fb97dab1192c0589d1f750bbb622d0df25ff2e4d806a662000",
     "material_removed": false
    },
    "published_at": "2026-10-20T13:36:00.000Z",
    "detected_at": "2026-10-20T14:09:54.476Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-8f0618bc68e7",
     "display_name": "Juventus — Stade Rennais",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-10-22T16:45:00.000Z",
     "url": "/football/matches/juventus-vs-stade-rennais-2026-10-22/",
     "scoreline": "2-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Juventus 2-1 Stade Rennais",
    "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-20T13:36:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-20T13:36:00.000Z",
     "detected_at": "2026-10-20T14:09:54.476Z",
     "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": "Juventus 2-1 Stade Rennais",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Juventus 2-1 Stade Rennais"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Juventus 2-2 Stade Rennais."
    },
    "settlements": [
     {
      "operation_id": "d4bf11f6d10335b7c807b1ee7d654f39cbc0f0cc05c124708f9b83dde91eb48d",
      "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.5650",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-22T00:46:22.648Z",
      "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/juventus/europa-league/preview/juventus-vs-rennes-prediction-team-news-lineups_607298.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Juventus 2-1 Stade Rennais"
   }
  },
  {
   "record_id": "n-553ae72c97bcb9c06210243c",
   "url": "/authors/jonathan-o-shea/picks/3/#pick-n-553ae72c97bcb9c06210243c",
   "match": "AFC Bournemouth v AC Milan",
   "match_url": "/football/matches/afc-bournemouth-vs-ac-milan-2026-10-22/",
   "kickoff": "2026-10-22T19:00:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 50.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: AFC Bournemouth 2-2 AC Milan",
   "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-20T15:29:00.000Z",
   "recorded_at": "2026-10-20T16:09:56.775Z",
   "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.1250",
    "result": "Won",
    "points_hundredths": 11250,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-553ae72c97bcb9c06210243c",
    "quote_text": "We say: Bournemouth 2-2 AC Milan",
    "fragment_from": 4649,
    "fragment_to": 4681,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/bournemouth/europa-league/preview/bournemouth-vs-ac-milan-prediction-team-news-lineups_607303.html",
     "display_name": null,
     "speaker": "Jonathan O'Shea",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "de072658d0be128297bfa21a47e490795a93c4b619fa746744dfef5d3a7766ba",
     "material_removed": false
    },
    "published_at": "2026-10-20T15:29:00.000Z",
    "detected_at": "2026-10-20T16:09:56.775Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-4aecbe417a21",
     "display_name": "AFC Bournemouth — AC Milan",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-10-22T19:00:00.000Z",
     "url": "/football/matches/afc-bournemouth-vs-ac-milan-2026-10-22/",
     "scoreline": "3-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "AFC Bournemouth 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-20T15:29:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-20T15:29:00.000Z",
     "detected_at": "2026-10-20T16:09:56.775Z",
     "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": "AFC Bournemouth 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: AFC Bournemouth 2-2 AC Milan"
    },
    "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 AFC Bournemouth 3-0 AC Milan."
    },
    "settlements": [
     {
      "operation_id": "3b33a189f6cea21b171714c3080b6bcf523a2767105ea4b96454009dedcb050d",
      "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.6300",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-22T00:45:59.461Z",
      "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/bournemouth/europa-league/preview/bournemouth-vs-ac-milan-prediction-team-news-lineups_607303.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "AFC Bournemouth 2-2 AC Milan"
   }
  }
 ],
 "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": 3,
  "first": 21,
  "last": 40,
  "author_url": "/authors/jonathan-o-shea/",
  "current": false
 },
 "entity_id": "history:/authors/jonathan-o-shea/picks/3/",
 "source_revision": 34
}
