{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "history",
 "url": "/authors/oliver-thomas/picks/2/",
 "canonical": "/authors/oliver-thomas/picks/2/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Oliver Thomas — football predictions, page 2 of 4",
 "description": "Predictions 1–20 of 56 by Oliver Thomas, with outcomes in words and links to the evidence.",
 "first_paragraph": {
  "body": "Page 2 of 4 of the predictions by Oliver Thomas recorded by Forecast Record: predictions 1–20 of 56 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": "56",
  "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-07T18:06:00.334Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-07T19:52:23.438Z",
 "content_hash": null,
 "meaning_hash": "c908a1709d0f52ba04096d3a4a97009c272af6ab3f0342e72cb1338bf83d496a",
 "dependency_group": "author:e-a37055f72f52c0fdfe8df63a",
 "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/oliver-thomas/picks/2/index.json",
   "bytes": null
  }
 ],
 "modules": {
  "affiliate": false,
  "api": true,
  "compare_yourself": false
 },
 "affiliate_block": null,
 "restrictions": {
  "name_withdrawn": false,
  "tracker_number": null,
  "withdrawn_quotes": [],
  "removed_at": null,
  "cause": null,
  "suspended_records": [],
  "withdrawal_log_number": 0
 },
 "page_links": {
  "methodology": "/methodology/",
  "right_of_reply": "/right-of-reply/",
  "source_coverage": "/coverage/",
  "corrections_log": "/corrections/",
  "api": "/api/",
  "claim": "/claim/"
 },
 "entity": {
  "id": "e-a37055f72f52c0fdfe8df63a",
  "public_name": "Oliver Thomas",
  "tracker_number": 2069,
  "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-01ab4e4a0bc3d82193b3fa96",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Albania 2-1 Belarus",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-09-24T16:10:00.000Z",
   "recorded_at": "2026-09-25T20:26:50.310Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sports Mole, RSS feed",
   "correction": null
  },
  {
   "record_id": "n-be7fc59b5a9676a422ca50de",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "Although Albania have lacked a clinical touch in front of goal in recent internationals, we are backing them to navigate their way to a slender victory and secure their first triumph under new…",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-09-24T16:10:00.000Z",
   "recorded_at": "2026-09-25T20:26:50.310Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sports Mole, RSS feed",
   "correction": null
  },
  {
   "record_id": "n-4e883d4c6b76742a267a85fb",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Slovakia 2-0 Moldova",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-09-24T16:08:36.000Z",
   "recorded_at": "2026-09-25T20:26:50.375Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sports Mole, RSS feed",
   "correction": null
  },
  {
   "record_id": "n-1672cc30f7b60a0b3c65f71d",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "we are backing the Three Lions to edge to victory and maintain their place in the top two of League A Group 3.",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-01T16:00:00.000Z",
   "recorded_at": "2026-10-01T18:02:50.043Z",
   "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-7a01135209dcb41d4081349f",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Croatia 1-2 England",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-01T16:00:00.000Z",
   "recorded_at": "2026-10-01T18:02:50.043Z",
   "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-1b9f92be9f4d1646e8ab2960",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-1b9f92be9f4d1646e8ab2960",
   "match": "Burton Albion v Huddersfield Town",
   "match_url": "/football/matches/burton-albion-vs-huddersfield-town-2026-10-03/",
   "kickoff": "2026-10-03T14:00:00.000Z",
   "competition": "EFL League One",
   "lead_hours": 41.9,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "1-3",
   "reason": "graded against the result: right",
   "reason_code": "not_checked",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-01T18:00:00.000Z",
   "recorded_at": "2026-10-01T20:06:34.432Z",
   "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": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-1b9f92be9f4d1646e8ab2960",
    "quote_text": "We can ultimately see goals at both ends in what could turn out to be an entertaining contest that ends all square.",
    "fragment_from": 4239,
    "fragment_to": 4354,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/burton-albion/preview/burton-albion-vs-huddersfield-prediction-team-news-lineups_606052.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "a31326d61ad44babc1c421444dd0538d521a4f51ed6b32a4e5c97a1147113a97",
     "material_removed": false
    },
    "published_at": "2026-10-01T18:00:00.000Z",
    "detected_at": "2026-10-01T20:06:34.432Z",
    "executed_at": null,
    "statement_class": "unpriced",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-c540162e7805",
     "display_name": "Burton Albion — Huddersfield Town",
     "competition_name": "EFL League One",
     "starts_at": "2026-10-03T14:00:00.000Z",
     "url": "/football/matches/burton-albion-vs-huddersfield-town-2026-10-03/",
     "scoreline": "1-3",
     "condition": "finished"
    },
    "market_label": "Both teams to score",
    "outcome_label": "yes",
    "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-01T18:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-01T18:00:00.000Z",
     "detected_at": "2026-10-01T20:06:34.432Z",
     "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": "Both teams to score",
     "choice": "yes",
     "author_odds": null,
     "market_key": "both_teams_score",
     "choice_key": "yes",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Both teams to score: yes"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-3",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Burton Albion 1-3 Huddersfield Town."
    },
    "settlements": [
     {
      "operation_id": "09753fa5f71785e3b3b5dc72c334a2314a51841aff993a60abd6f3eadfc463eb",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Both teams to score",
      "choice": "yes",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.1",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/burton-albion/preview/burton-albion-vs-huddersfield-prediction-team-news-lineups_606052.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "yes (Both teams to score)"
   }
  },
  {
   "record_id": "n-29fb027aa97950cefcdb8db0",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-29fb027aa97950cefcdb8db0",
   "match": "Burton Albion v Huddersfield Town",
   "match_url": "/football/matches/burton-albion-vs-huddersfield-town-2026-10-03/",
   "kickoff": "2026-10-03T14:00:00.000Z",
   "competition": "EFL League One",
   "lead_hours": 41.9,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Burton Albion 2-2 Huddersfield Town",
   "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-01T18:00:00.000Z",
   "recorded_at": "2026-10-01T20:06:34.432Z",
   "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.8550",
    "result": "Won",
    "points_hundredths": 8550,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-29fb027aa97950cefcdb8db0",
    "quote_text": "We say: Burton Albion 2-2 Huddersfield Town",
    "fragment_from": 4014,
    "fragment_to": 4057,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/burton-albion/preview/burton-albion-vs-huddersfield-prediction-team-news-lineups_606052.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "a31326d61ad44babc1c421444dd0538d521a4f51ed6b32a4e5c97a1147113a97",
     "material_removed": false
    },
    "published_at": "2026-10-01T18:00:00.000Z",
    "detected_at": "2026-10-01T20:06:34.432Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-c540162e7805",
     "display_name": "Burton Albion — Huddersfield Town",
     "competition_name": "EFL League One",
     "starts_at": "2026-10-03T14:00:00.000Z",
     "url": "/football/matches/burton-albion-vs-huddersfield-town-2026-10-03/",
     "scoreline": "1-3",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Burton Albion 2-2 Huddersfield Town",
    "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-01T18:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-01T18:00:00.000Z",
     "detected_at": "2026-10-01T20:06:34.432Z",
     "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": "Burton Albion 2-2 Huddersfield Town",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Burton Albion 2-2 Huddersfield Town"
    },
    "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 Burton Albion 1-3 Huddersfield Town."
    },
    "settlements": [
     {
      "operation_id": "18ea64143413ca8f8b90a5704adfed146ceff74465674917e6a2b19e10114ffd",
      "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.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-01T20:38:04.593Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/burton-albion/preview/burton-albion-vs-huddersfield-prediction-team-news-lineups_606052.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Burton Albion 2-2 Huddersfield Town"
   }
  },
  {
   "record_id": "n-d20121a0d814face8df3e4b7",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "we are backing the Three Lions to edge to victory",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "national-team match (Nations League, qualifiers, continental cups)",
   "reason_code": "outside_coverage",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-01T16:00:00.000Z",
   "recorded_at": "2026-10-03T12:34:51.434Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sports Mole, RSS feed",
   "correction": null
  },
  {
   "record_id": "n-191c052acc0a95bced815955",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-191c052acc0a95bced815955",
   "match": "Manchester United v Tottenham Hotspur",
   "match_url": "/football/matches/manchester-united-vs-tottenham-hotspur-2026-10-10/",
   "kickoff": "2026-10-10T16:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": 54.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Manchester United 3-1 Tottenham Hotspur",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-08T09:30:00.000Z",
   "recorded_at": "2026-10-08T10:11:40.175Z",
   "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.6757",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-191c052acc0a95bced815955",
    "quote_text": "We say: Manchester United 3-1 Tottenham Hotspur",
    "fragment_from": 6018,
    "fragment_to": 6065,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/man-utd/preview/man-utd-vs-spurs-prediction-team-news-lineups_606418.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "de56afbb23a63f1d871a6cf3ba9c40da10bd3eaaa9dd84bc06aa637571d1b276",
     "material_removed": false
    },
    "published_at": "2026-10-08T09:30:00.000Z",
    "detected_at": "2026-10-08T10:11:40.175Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-3b581b019b07",
     "display_name": "Manchester United — Tottenham Hotspur",
     "competition_name": "Premier League",
     "starts_at": "2026-10-10T16:30:00.000Z",
     "url": "/football/matches/manchester-united-vs-tottenham-hotspur-2026-10-10/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Manchester United 3-1 Tottenham Hotspur",
    "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-08T09:30:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-08T09:30:00.000Z",
     "detected_at": "2026-10-08T10:11:40.175Z",
     "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": "Manchester United 3-1 Tottenham Hotspur",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "3-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Manchester United 3-1 Tottenham Hotspur"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Manchester United 1-1 Tottenham Hotspur."
    },
    "settlements": [
     {
      "operation_id": "eed152febe0052bebb217610fceaa2a45144b8dae1c0287ebd151ef8b6b4e62b",
      "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": "Manchester United",
      "decimal_odds": "1.6803",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-10T23:35:09.561Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/man-utd/preview/man-utd-vs-spurs-prediction-team-news-lineups_606418.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Manchester United 3-1 Tottenham Hotspur"
   }
  },
  {
   "record_id": "n-54050dc273f13c9f4d6bd00c",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-54050dc273f13c9f4d6bd00c",
   "match": "Sunderland v Brighton & Hove Albion",
   "match_url": "/football/matches/sunderland-vs-brighton-and-hove-albion-2026-10-10/",
   "kickoff": "2026-10-10T14:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 43.7,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Sunderland 1-2 Brighton & Hove Albion",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-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-08T16:00:00.000Z",
   "recorded_at": "2026-10-08T18:18:18.724Z",
   "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.3000",
    "result": "Won",
    "points_hundredths": 13000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-54050dc273f13c9f4d6bd00c",
    "quote_text": "We say: Sunderland 1-2 Brighton & Hove Albion",
    "fragment_from": 5626,
    "fragment_to": 5671,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/sunderland/preview/sunderland-vs-brighton-prediction-team-news-lineups_606426.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "912e006789e39963dd5da480cf2a94fecd67737033642ba3c48174f8dc015b51",
     "material_removed": false
    },
    "published_at": "2026-10-08T16:00:00.000Z",
    "detected_at": "2026-10-08T18:18:18.724Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-8ffaa07fdf31",
     "display_name": "Sunderland — Brighton & Hove Albion",
     "competition_name": "Premier League",
     "starts_at": "2026-10-10T14:00:00.000Z",
     "url": "/football/matches/sunderland-vs-brighton-and-hove-albion-2026-10-10/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Sunderland 1-2 Brighton & Hove Albion",
    "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-08T16:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-08T16:00:00.000Z",
     "detected_at": "2026-10-08T18:18:18.724Z",
     "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": "Sunderland 1-2 Brighton & Hove Albion",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Sunderland 1-2 Brighton & Hove Albion"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Sunderland 0-2 Brighton & Hove Albion."
    },
    "settlements": [
     {
      "operation_id": "1889dbed5145a90713b2778c01bf4f5471d5e2c880ef44f419afe27c893f5693",
      "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": "Brighton & Hove Albion",
      "decimal_odds": "2.3000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 13000,
      "executed_at": "2026-10-10T23:35:08.368Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/sunderland/preview/sunderland-vs-brighton-prediction-team-news-lineups_606426.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Sunderland 1-2 Brighton & Hove Albion"
   }
  },
  {
   "record_id": "n-fbbde6e652617ef2676e21ff",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-fbbde6e652617ef2676e21ff",
   "match": "Sunderland v Brighton & Hove Albion",
   "match_url": "/football/matches/sunderland-vs-brighton-and-hove-albion-2026-10-10/",
   "kickoff": "2026-10-10T14:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 43.7,
   "market_code": "1x2",
   "author_said": "1X2, match result: Brighton & Hove Albion",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "0-2",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 13000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": null,
   "settled_price": "2.3000",
   "published_at": "2026-10-08T16:00:00.000Z",
   "recorded_at": "2026-10-08T18:18:18.724Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "2",
    "price": "2.3000",
    "result": "Won",
    "points_hundredths": 13000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-fbbde6e652617ef2676e21ff",
    "quote_text": "we are backing the free-scoring Seagulls to outscore their opponents and pick up maximum points once again.",
    "fragment_from": 6035,
    "fragment_to": 6142,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/sunderland/preview/sunderland-vs-brighton-prediction-team-news-lineups_606426.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "912e006789e39963dd5da480cf2a94fecd67737033642ba3c48174f8dc015b51",
     "material_removed": false
    },
    "published_at": "2026-10-08T16:00:00.000Z",
    "detected_at": "2026-10-08T18:18:18.724Z",
    "executed_at": "2026-10-10T23:35:08.373Z",
    "statement_class": "unpriced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-8ffaa07fdf31",
     "display_name": "Sunderland — Brighton & Hove Albion",
     "competition_name": "Premier League",
     "starts_at": "2026-10-10T14:00:00.000Z",
     "url": "/football/matches/sunderland-vs-brighton-and-hove-albion-2026-10-10/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "1X2, match result",
    "outcome_label": "Brighton & Hove Albion",
    "odds_set": {
     "by_author": null,
     "our_snapshot": "2.3000",
     "our_snapshot_at": "2026-10-08T18:17:52.003Z",
     "our_snapshot_source": "market snapshot",
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "win",
    "simulation_change_hundredths": 13000,
    "bankroll_after_hundredths": null,
    "executed_by": "ours",
    "series_label": "At an independent odds snapshot",
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-08T16:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-08T16:00:00.000Z",
     "detected_at": "2026-10-08T18:18:18.724Z",
     "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": "1X2, match result",
     "choice": "Brighton & Hove Albion",
     "author_odds": null,
     "market_key": "1x2",
     "choice_key": "2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: Brighton & Hove Albion"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Sunderland 0-2 Brighton & Hove Albion."
    },
    "settlements": [
     {
      "operation_id": "5957b86377652eb532aa032e9dcaa5bdd1674ce49c345b75f1e98c0da085c035",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "1X2, match result",
      "choice": "Brighton & Hove Albion",
      "decimal_odds": "2.3000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 13000,
      "executed_at": "2026-10-10T23:35:08.373Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/sunderland/preview/sunderland-vs-brighton-prediction-team-news-lineups_606426.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Brighton & Hove Albion to win"
   }
  },
  {
   "record_id": "n-d72ed1fae0901ebae04e181c",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-d72ed1fae0901ebae04e181c",
   "match": "Ipswich Town v Fulham",
   "match_url": "/football/matches/ipswich-town-vs-fulham-2026-10-10/",
   "kickoff": "2026-10-10T14:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 32.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Ipswich Town 2-2 Fulham",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-08T17:00:00.000Z",
   "recorded_at": "2026-10-09T05:10:04.053Z",
   "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.4200",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-d72ed1fae0901ebae04e181c",
    "quote_text": "We say: Ipswich Town 2-2 Fulham",
    "fragment_from": 5221,
    "fragment_to": 5252,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/ipswich-town/preview/ipswich-vs-fulham-prediction-team-news-lineups_606430.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "cba9665a33eb16a7c10871fc6a32c12e077e3bc122a927380b636d158074f194",
     "material_removed": false
    },
    "published_at": "2026-10-08T17:00:00.000Z",
    "detected_at": "2026-10-09T05:10:04.053Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-094908148541",
     "display_name": "Ipswich Town — Fulham",
     "competition_name": "Premier League",
     "starts_at": "2026-10-10T14:00:00.000Z",
     "url": "/football/matches/ipswich-town-vs-fulham-2026-10-10/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Ipswich Town 2-2 Fulham",
    "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-08T17:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-08T17:00:00.000Z",
     "detected_at": "2026-10-09T05:10:04.053Z",
     "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": "Ipswich Town 2-2 Fulham",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Ipswich Town 2-2 Fulham"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Ipswich Town 2-1 Fulham."
    },
    "settlements": [
     {
      "operation_id": "4d9711d37612aaea5529d37ff471d9e2746953d5f68e7a4cfe73791a374dab4d",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "3.5000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-10T23:35:07.473Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/ipswich-town/preview/ipswich-vs-fulham-prediction-team-news-lineups_606430.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Ipswich Town 2-2 Fulham"
   }
  },
  {
   "record_id": "n-f8fec0ab2bf8df4eca830d34",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-f8fec0ab2bf8df4eca830d34",
   "match": "Manchester City v Paris Saint-Germain",
   "match_url": "/football/matches/manchester-city-vs-paris-saint-germain-2026-10-14/",
   "kickoff": "2026-10-14T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 51.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Manchester City 2-2 Paris Saint-Germain",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-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-12T14:00:00.000Z",
   "recorded_at": "2026-10-12T15:09:47.428Z",
   "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.1500",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-f8fec0ab2bf8df4eca830d34",
    "quote_text": "We say: Manchester City 2-2 Paris Saint-Germain",
    "fragment_from": 6178,
    "fragment_to": 6225,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/man-city/champions-league/preview/man-city-vs-psg-prediction-team-news-lineups_606670.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "ce17ca6e4f61874dbed1789337c2e96d7f9f4c00e7bf111a147fff82f4ccb9ae",
     "material_removed": false
    },
    "published_at": "2026-10-12T14:00:00.000Z",
    "detected_at": "2026-10-12T15:09:47.428Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-29ba3bb2f092",
     "display_name": "Manchester City — Paris Saint-Germain",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-10-14T19:00:00.000Z",
     "url": "/football/matches/manchester-city-vs-paris-saint-germain-2026-10-14/",
     "scoreline": "2-4",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Manchester City 2-2 Paris Saint-Germain",
    "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-12T14:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-12T14:00:00.000Z",
     "detected_at": "2026-10-12T15:09:47.428Z",
     "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": "Manchester City 2-2 Paris Saint-Germain",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Manchester City 2-2 Paris Saint-Germain"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-4",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Manchester City 2-4 Paris Saint-Germain."
    },
    "settlements": [
     {
      "operation_id": "8c6ad8920acbaf9a68432c8329cece90e9170f7aeed6bf2614d14c6ef8bece7d",
      "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.9500",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-12T20:17:38.304Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/man-city/champions-league/preview/man-city-vs-psg-prediction-team-news-lineups_606670.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Manchester City 2-2 Paris Saint-Germain"
   }
  },
  {
   "record_id": "n-ef5b79d084091a7e0f2ef7e8",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Lyon 1-1 Crystal Palace",
   "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-13T18:30:00.000Z",
   "recorded_at": "2026-10-14T01:09:56.534Z",
   "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-d8db29e7b27d5ac7f2b5c219",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-d8db29e7b27d5ac7f2b5c219",
   "match": "AFC Bournemouth v Sturm Graz",
   "match_url": "/football/matches/afc-bournemouth-vs-sturm-graz-2026-10-15/",
   "kickoff": "2026-10-15T19:00:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 39.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: AFC Bournemouth 2-1 Sturm Graz",
   "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-13T17:30:00.000Z",
   "recorded_at": "2026-10-14T03:09:52.879Z",
   "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.1900",
    "result": "Won",
    "points_hundredths": 1900,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-d8db29e7b27d5ac7f2b5c219",
    "quote_text": "We say: Bournemouth 2-1 Sturm Graz",
    "fragment_from": 5231,
    "fragment_to": 5265,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/bournemouth/europa-league/preview/bournemouth-vs-sturm-graz-prediction-team-news-lineups_606756.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "8c78eb83fdfa918bb40a2c63e0b58ad2529b38f49f2ba256c1b8afd4a004a08e",
     "material_removed": false
    },
    "published_at": "2026-10-13T17:30:00.000Z",
    "detected_at": "2026-10-14T03:09:52.879Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-ef768ff412d3",
     "display_name": "AFC Bournemouth — Sturm Graz",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-10-15T19:00:00.000Z",
     "url": "/football/matches/afc-bournemouth-vs-sturm-graz-2026-10-15/",
     "scoreline": "3-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "AFC Bournemouth 2-1 Sturm Graz",
    "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-13T17:30:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-13T17:30:00.000Z",
     "detected_at": "2026-10-14T03:09:52.879Z",
     "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-1 Sturm Graz",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: AFC Bournemouth 2-1 Sturm Graz"
    },
    "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 Sturm Graz."
    },
    "settlements": [
     {
      "operation_id": "39dcc6c2170d06a3c1fcfa629d7e099789f945a87de661fee853fb008be741b5",
      "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": "AFC Bournemouth",
      "decimal_odds": "1.1900",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 1900,
      "executed_at": "2026-10-14T03:11:30.905Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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-sturm-graz-prediction-team-news-lineups_606756.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "AFC Bournemouth 2-1 Sturm Graz"
   }
  },
  {
   "record_id": "n-88981187ddbd4b44850ef9ee",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Torreense 0-2 Sunderland",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "",
   "reason_code": "not_supported",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-13T17:00:00.000Z",
   "recorded_at": "2026-10-14T03:09:53.535Z",
   "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-37eaabe13241151ef5c857e3",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-37eaabe13241151ef5c857e3",
   "match": "Fulham v Hull City",
   "match_url": "/football/matches/fulham-vs-hull-city-2026-10-17/",
   "kickoff": "2026-10-17T14:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 35.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Fulham 1-2 Hull City",
   "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-15T18:00:00.000Z",
   "recorded_at": "2026-10-16T02:09:51.486Z",
   "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.6993",
    "result": "Won",
    "points_hundredths": 6993,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-37eaabe13241151ef5c857e3",
    "quote_text": "We say: Fulham 1-2 Hull City",
    "fragment_from": 5523,
    "fragment_to": 5551,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/fulham/preview/fulham-vs-hull-city-prediction-team-news-lineups_606929.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "c41473ccfea9e6647cae84dab5f82ee9ac5fbd181822d74ef3954a323a451148",
     "material_removed": false
    },
    "published_at": "2026-10-15T18:00:00.000Z",
    "detected_at": "2026-10-16T02:09:51.486Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-2a9bc903af38",
     "display_name": "Fulham — Hull City",
     "competition_name": "Premier League",
     "starts_at": "2026-10-17T14:00:00.000Z",
     "url": "/football/matches/fulham-vs-hull-city-2026-10-17/",
     "scoreline": "1-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Fulham 1-2 Hull City",
    "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-15T18:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T18:00:00.000Z",
     "detected_at": "2026-10-16T02:09:51.486Z",
     "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": "Fulham 1-2 Hull City",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Fulham 1-2 Hull City"
    },
    "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 Fulham 1-0 Hull City."
    },
    "settlements": [
     {
      "operation_id": "07f2b69e9ccd3d1f4c902aeae064ae512b6082aa245ce6462296fb94e32c3e1f",
      "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": "Hull City",
      "decimal_odds": "4.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-16T03:16:22.711Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/fulham/preview/fulham-vs-hull-city-prediction-team-news-lineups_606929.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Fulham 1-2 Hull City"
   }
  },
  {
   "record_id": "n-323aa358910f783ec0652ae2",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-323aa358910f783ec0652ae2",
   "match": "Newcastle United v Aston Villa",
   "match_url": "/football/matches/newcastle-united-vs-aston-villa-2026-10-17/",
   "kickoff": "2026-10-17T16:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": 38.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Newcastle United 1-1 Aston Villa",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-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-15T16:00:00.000Z",
   "recorded_at": "2026-10-16T02:09:52.342Z",
   "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.2500",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-323aa358910f783ec0652ae2",
    "quote_text": "We say: Newcastle United 1-1 Aston Villa",
    "fragment_from": 5398,
    "fragment_to": 5438,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/newcastle-united/preview/newcastle-vs-aston-villa-prediction-team-news-lineups_606925.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "4a3c90bd39e0eb8db7d262ec952214602944bfa83f0dbdb82248ed50581a5f00",
     "material_removed": false
    },
    "published_at": "2026-10-15T16:00:00.000Z",
    "detected_at": "2026-10-16T02:09:52.342Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-b276cafca276",
     "display_name": "Newcastle United — Aston Villa",
     "competition_name": "Premier League",
     "starts_at": "2026-10-17T16:30:00.000Z",
     "url": "/football/matches/newcastle-united-vs-aston-villa-2026-10-17/",
     "scoreline": "0-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Newcastle United 1-1 Aston Villa",
    "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-15T16:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T16:00:00.000Z",
     "detected_at": "2026-10-16T02:09:52.342Z",
     "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": "Newcastle United 1-1 Aston Villa",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Newcastle United 1-1 Aston Villa"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Newcastle United 0-1 Aston Villa."
    },
    "settlements": [
     {
      "operation_id": "3e277113f3c40a17388546ccd40370477d5bf5d2f9683786370d08a764af4fa9",
      "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.6200",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-16T03:16:23.894Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/newcastle-united/preview/newcastle-vs-aston-villa-prediction-team-news-lineups_606925.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Newcastle United 1-1 Aston Villa"
   }
  },
  {
   "record_id": "n-a560d282ccb6dd25bd70f8b3",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-a560d282ccb6dd25bd70f8b3",
   "match": "Brentford v Liverpool",
   "match_url": "/football/matches/brentford-vs-liverpool-2026-10-17/",
   "kickoff": "2026-10-17T14:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 35.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Brentford 2-2 Liverpool",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "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-15T14:00:00.000Z",
   "recorded_at": "2026-10-16T02:09:53.746Z",
   "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.3500",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-a560d282ccb6dd25bd70f8b3",
    "quote_text": "We say: Brentford 2-2 Liverpool",
    "fragment_from": 5546,
    "fragment_to": 5577,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/brentford/preview/brentford-vs-liverpool-prediction-team-news-lineups_606921.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "c9aefe459db46819905532770583e30a0ba4997c9df1cfd6b1ad47b054d954e4",
     "material_removed": false
    },
    "published_at": "2026-10-15T14:00:00.000Z",
    "detected_at": "2026-10-16T02:09:53.746Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-072d544af56a",
     "display_name": "Brentford — Liverpool",
     "competition_name": "Premier League",
     "starts_at": "2026-10-17T14:00:00.000Z",
     "url": "/football/matches/brentford-vs-liverpool-2026-10-17/",
     "scoreline": "1-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Brentford 2-2 Liverpool",
    "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:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T14:00:00.000Z",
     "detected_at": "2026-10-16T02:09:53.746Z",
     "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": "Brentford 2-2 Liverpool",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Brentford 2-2 Liverpool"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Brentford 1-2 Liverpool."
    },
    "settlements": [
     {
      "operation_id": "76800f6b20bfeb216a105ca78dded3cf13a9eb07d72599fdca517e4b8a08b605",
      "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.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-16T03:16:21.330Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/brentford/preview/brentford-vs-liverpool-prediction-team-news-lineups_606921.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Brentford 2-2 Liverpool"
   }
  },
  {
   "record_id": "n-dfe7b4418fc691c9aef3c030",
   "url": "/authors/oliver-thomas/picks/2/#pick-n-dfe7b4418fc691c9aef3c030",
   "match": "Brentford v Liverpool",
   "match_url": "/football/matches/brentford-vs-liverpool-2026-10-17/",
   "kickoff": "2026-10-17T14:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 35.8,
   "market_code": "1x2",
   "author_said": "1X2, match result: draw",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-2",
   "reason": "",
   "reason_code": "disputed_reading",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-15T14:00:00.000Z",
   "recorded_at": "2026-10-16T02:09:53.746Z",
   "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": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-dfe7b4418fc691c9aef3c030",
    "quote_text": "the Reds may have to settle for another share of the spoils on this occasion",
    "fragment_from": 5976,
    "fragment_to": 6052,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/brentford/preview/brentford-vs-liverpool-prediction-team-news-lineups_606921.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "c9aefe459db46819905532770583e30a0ba4997c9df1cfd6b1ad47b054d954e4",
     "material_removed": false
    },
    "published_at": "2026-10-15T14:00:00.000Z",
    "detected_at": "2026-10-16T02:09:53.746Z",
    "executed_at": null,
    "statement_class": "unpriced",
    "status": "recognised",
    "cause": "",
    "cause_code": "disputed_reading",
    "event": {
     "event_id": "s-072d544af56a",
     "display_name": "Brentford — Liverpool",
     "competition_name": "Premier League",
     "starts_at": "2026-10-17T14:00:00.000Z",
     "url": "/football/matches/brentford-vs-liverpool-2026-10-17/",
     "scoreline": "1-2",
     "condition": "finished"
    },
    "market_label": "1X2, match result",
    "outcome_label": "draw",
    "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:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T14:00:00.000Z",
     "detected_at": "2026-10-16T02:09:53.746Z",
     "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": "1X2, match result",
     "choice": "draw",
     "author_odds": null,
     "market_key": "1x2",
     "choice_key": "X",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: draw"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was Brentford 1-2 Liverpool."
    },
    "settlements": [
     {
      "operation_id": "b4ebf8aecf996bd2785b3c96370219e69a1c459ee964b7cc34df8d633b78bae6",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "3.6000",
      "odds_role": "market_price",
      "stake_hundredths": null,
      "status": "cancelled",
      "status_text": "Cancelled: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": "2026-10-16T03:16:21.472Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Oliver Thomas",
     "publisher": "Sports Mole",
     "forecaster": "Oliver Thomas",
     "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/brentford/preview/brentford-vs-liverpool-prediction-team-news-lineups_606921.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "a draw"
   }
  }
 ],
 "pagination": {
  "per_page": 20,
  "total": 56,
  "pages": 4,
  "page_urls": [
   "/authors/oliver-thomas/",
   "/authors/oliver-thomas/picks/2/",
   "/authors/oliver-thomas/picks/3/",
   "/authors/oliver-thomas/picks/4/"
  ],
  "groups": {
   "settled": 6,
   "pending": 0,
   "excluded": 50
  },
  "continuation": "by_time",
  "page": 2,
  "first": 1,
  "last": 20,
  "author_url": "/authors/oliver-thomas/",
  "current": false
 },
 "entity_id": "history:/authors/oliver-thomas/picks/2/",
 "source_revision": 36,
 "evidence_extra": [
  {
   "observation_id": "n-df299b06eb245e249c7f47b7",
   "quote_text": "We say: Wrexham 1-2 Wolverhampton Wanderers",
   "fragment_from": 5666,
   "fragment_to": 5709,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/wrexham/preview/wrexham-vs-wolves-prediction-team-news-lineups_608433.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "ce5207fa8cdec42d8c50b654e51e477942481895b9acc2d32e0b37e1a31e038b",
    "material_removed": false
   },
   "published_at": "2026-11-05T21:00:00.000Z",
   "detected_at": "2026-11-07T11:20:47.007Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-3d0f5e655fd1",
    "display_name": "Wrexham — Wolverhampton Wanderers",
    "competition_name": "EFL Championship",
    "starts_at": "2026-11-07T12:30:00.000Z",
    "url": "/football/matches/wrexham-vs-wolverhampton-wanderers-2026-11-07/",
    "scoreline": "1-1",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Wrexham 1-2 Wolverhampton Wanderers",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-11-05T21:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T21:00:00.000Z",
    "detected_at": "2026-11-07T11:20:47.007Z",
    "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": "Wrexham 1-2 Wolverhampton Wanderers",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Wrexham 1-2 Wolverhampton Wanderers"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was Wrexham 1-1 Wolverhampton Wanderers."
   },
   "settlements": [
    {
     "operation_id": "5a37f75e0ab8688e0a1db96c8e0f4a35ebfb4982373619a3c6b5ddcaa2a02821",
     "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": "Wolverhampton Wanderers",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/wrexham/preview/wrexham-vs-wolves-prediction-team-news-lineups_608433.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Wrexham 1-2 Wolverhampton Wanderers"
  },
  {
   "observation_id": "n-a2df517916aa6c1f9b69e9b1",
   "quote_text": "we expect the net to ripple at both ends of the pitch this weekend",
   "fragment_from": 5864,
   "fragment_to": 5930,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/wrexham/preview/wrexham-vs-wolves-prediction-team-news-lineups_608433.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "ce5207fa8cdec42d8c50b654e51e477942481895b9acc2d32e0b37e1a31e038b",
    "material_removed": false
   },
   "published_at": "2026-11-05T21:00:00.000Z",
   "detected_at": "2026-11-07T11:20:47.007Z",
   "executed_at": null,
   "statement_class": "unpriced",
   "status": "ambiguous",
   "cause": "repeats another statement",
   "cause_code": "duplicate",
   "event": {
    "event_id": "s-3d0f5e655fd1",
    "display_name": "Wrexham — Wolverhampton Wanderers",
    "competition_name": "EFL Championship",
    "starts_at": "2026-11-07T12:30:00.000Z",
    "url": "/football/matches/wrexham-vs-wolverhampton-wanderers-2026-11-07/",
    "scoreline": "1-1",
    "condition": "finished"
   },
   "market_label": "Both teams to score",
   "outcome_label": "yes",
   "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-11-05T21:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T21:00:00.000Z",
    "detected_at": "2026-11-07T11:20:47.007Z",
    "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": "Both teams to score",
    "choice": "yes",
    "author_odds": null,
    "market_key": "both_teams_score",
    "choice_key": "yes",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Both teams to score: yes"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "1-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Won: the final score was Wrexham 1-1 Wolverhampton Wanderers."
   },
   "settlements": [
    {
     "operation_id": "1536bd2f636e3e874ca58579fa7493ff476ebd9c38a5247af36b150eadf629d1",
     "series_key": "market_price",
     "series_label": "At an independent odds snapshot",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Both teams to score",
     "choice": "yes",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/wrexham/preview/wrexham-vs-wolves-prediction-team-news-lineups_608433.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "yes (Both teams to score)"
  },
  {
   "observation_id": "n-6888b0d7ae08704d7798e9b0",
   "quote_text": "We say: Fulham 1-1 Newcastle United",
   "fragment_from": 5966,
   "fragment_to": 6001,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/fulham/preview/fulham-vs-newcastle-prediction-team-news-lineups_608429.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "32b567dde9b804f236661f80629cdf831f214038b91ab4eb402edc4dbef1948b",
    "material_removed": false
   },
   "published_at": "2026-11-05T20:00:00.000Z",
   "detected_at": "2026-11-07T11:20:35.415Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-5400ee392a3b",
    "display_name": "Fulham — Newcastle United",
    "competition_name": "Premier League",
    "starts_at": "2026-11-07T15:00:00.000Z",
    "url": "/football/matches/fulham-vs-newcastle-united-2026-11-07/",
    "scoreline": "1-1",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Fulham 1-1 Newcastle United",
   "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-11-05T20:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T20:00:00.000Z",
    "detected_at": "2026-11-07T11:20:35.415Z",
    "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": "Fulham 1-1 Newcastle United",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Fulham 1-1 Newcastle United"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "1-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Matched: the final score was Fulham 1-1 Newcastle United."
   },
   "settlements": [
    {
     "operation_id": "39ae011cd7aefd1ef8e53ddfb9205d2c1bc1cb34e1adb734d31ce5dea6a3db0b",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "draw",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/fulham/preview/fulham-vs-newcastle-prediction-team-news-lineups_608429.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Fulham 1-1 Newcastle United"
  },
  {
   "observation_id": "n-5d6c025c52d30a0b037fde42",
   "quote_text": "We say: Leeds United 1-1 Tottenham Hotspur",
   "fragment_from": 6145,
   "fragment_to": 6187,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/leeds-united/preview/leeds-vs-spurs-prediction-team-news-lineups_608425.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "304e9a8372b1ce3da569ed57d91aabef5893e5d344e8d1e8b42e704681974a4a",
    "material_removed": false
   },
   "published_at": "2026-11-05T16:00:00.000Z",
   "detected_at": "2026-11-07T11:20:22.548Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-f45f3e972ed1",
    "display_name": "Leeds United — Tottenham Hotspur",
    "competition_name": "Premier League",
    "starts_at": "2026-11-07T12:30:00.000Z",
    "url": "/football/matches/leeds-united-vs-tottenham-hotspur-2026-11-07/",
    "scoreline": "1-0",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Leeds United 1-1 Tottenham Hotspur",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-11-05T16:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T16:00:00.000Z",
    "detected_at": "2026-11-07T11:20:22.548Z",
    "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": "Leeds United 1-1 Tottenham Hotspur",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Leeds United 1-1 Tottenham Hotspur"
   },
   "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 Leeds United 1-0 Tottenham Hotspur."
   },
   "settlements": [
    {
     "operation_id": "acff56c5f791b8fe6b06b3a392ed29ac3c5316b5f47838cabf39e954e15e2d97",
     "series_key": "derived_series",
     "series_label": "Forecast Record reconstruction from the predicted score",
     "derived": true,
     "site_simulation": true,
     "author_words": false,
     "market_label": "1X2, match result",
     "choice": "draw",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/leeds-united/preview/leeds-vs-spurs-prediction-team-news-lineups_608425.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Leeds United 1-1 Tottenham Hotspur"
  },
  {
   "observation_id": "n-92f5130e89d4cac12dfc8d85",
   "quote_text": "We say: RB Leipzig 2-4 Manchester City",
   "fragment_from": 6560,
   "fragment_to": 6598,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/rb-leipzig/champions-league/preview/rb-leipzig-vs-man-city-prediction-team-news-lineups_608240.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c8d049f0de88691806e9d84e318e513f116c12b25b4368bad75dca3bdfad0652",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:00:00.000Z",
   "detected_at": "2026-11-04T12:55:45.903Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-fe8ca41c5ed3",
    "display_name": "RB Leipzig — Manchester City",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-11-04T20:00:00.000Z",
    "url": "/football/matches/rb-leipzig-vs-manchester-city-2026-11-04/",
    "scoreline": "2-3",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "RB Leipzig 2-4 Manchester City",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-11-02T18:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:00:00.000Z",
    "detected_at": "2026-11-04T12:55:45.903Z",
    "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": "RB Leipzig 2-4 Manchester City",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "2-4",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: RB Leipzig 2-4 Manchester City"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "2-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was RB Leipzig 2-3 Manchester City."
   },
   "settlements": [
    {
     "operation_id": "a9f4b35d9b22c43906b3faecb67dbadd8e9dc052ad8121c4a1d4b57c3edbd57e",
     "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": "Manchester City",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/rb-leipzig/champions-league/preview/rb-leipzig-vs-man-city-prediction-team-news-lineups_608240.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "RB Leipzig 2-4 Manchester City"
  },
  {
   "observation_id": "n-2ea95b29c38b45b22fc0c2c0",
   "quote_text": "We say: Aston Villa 3-0 Fulham",
   "fragment_from": 6156,
   "fragment_to": 6186,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/aston-villa/preview/aston-villa-vs-fulham-prediction-team-news-lineups_607920.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "45e789a633694caa8b5a649b8ca7ce9dea3cbbaf531773f88e468bdba24f7202",
    "material_removed": false
   },
   "published_at": "2026-10-29T21:00:00.000Z",
   "detected_at": "2026-10-31T15:26:03.257Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-cc0571163d80",
    "display_name": "Aston Villa — Fulham",
    "competition_name": "Premier League",
    "starts_at": "2026-10-31T20:00:00.000Z",
    "url": "/football/matches/aston-villa-vs-fulham-2026-10-31/",
    "scoreline": "1-1",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Aston Villa 3-0 Fulham",
   "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-29T21:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-29T21:00:00.000Z",
    "detected_at": "2026-10-31T15:26:03.257Z",
    "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": "Aston Villa 3-0 Fulham",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "3-0",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Aston Villa 3-0 Fulham"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was Aston Villa 1-1 Fulham."
   },
   "settlements": [
    {
     "operation_id": "474015bfe8ccf1e070873d040a45bc2f7e4a3db7da14ccfdfc70cba42086a731",
     "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": "Aston Villa",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/aston-villa/preview/aston-villa-vs-fulham-prediction-team-news-lineups_607920.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Aston Villa 3-0 Fulham"
  },
  {
   "observation_id": "n-ccdd52a71ffb4961a5724640",
   "quote_text": "We say: Everton 1-2 Newcastle United",
   "fragment_from": 6142,
   "fragment_to": 6178,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/everton/league-cup/preview/everton-vs-newcastle-prediction-team-news-lineups_607782.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "a3efa5b74a17afdddd6000524de4d09dd375bbf4e2a2d13204a68ade45dff512",
    "material_removed": false
   },
   "published_at": "2026-10-27T18:00:00.000Z",
   "detected_at": "2026-10-29T12:39:36.005Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": {
    "event_id": "s-39da42fdd6be",
    "display_name": "Everton — Newcastle United",
    "competition_name": "EFL Cup (Carabao)",
    "starts_at": "2026-10-29T19:45:00.000Z",
    "url": "/football/matches/everton-vs-newcastle-united-2026-10-29/",
    "scoreline": "3-1",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Everton 1-2 Newcastle United",
   "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-27T18:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-27T18:00:00.000Z",
    "detected_at": "2026-10-29T12:39:36.005Z",
    "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": "Everton 1-2 Newcastle United",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Everton 1-2 Newcastle United"
   },
   "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 Everton 3-1 Newcastle United."
   },
   "settlements": [
    {
     "operation_id": "eb9e2143e723efbe9fc582430959ae9f39e12af7243c070c98ee9c0b4207d61e",
     "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": "Newcastle United",
     "decimal_odds": "3.0400",
     "odds_role": "market_price",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-29T14:09:27.490Z",
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/everton/league-cup/preview/everton-vs-newcastle-prediction-team-news-lineups_607782.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Everton 1-2 Newcastle United"
  },
  {
   "observation_id": "n-e0ed26aa88706505a314cab8",
   "quote_text": "we are backing the Magpies to narrowly edge through to the quarter-finals this week.",
   "fragment_from": 6518,
   "fragment_to": 6602,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/everton/league-cup/preview/everton-vs-newcastle-prediction-team-news-lineups_607782.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "a3efa5b74a17afdddd6000524de4d09dd375bbf4e2a2d13204a68ade45dff512",
    "material_removed": false
   },
   "published_at": "2026-10-27T18:00:00.000Z",
   "detected_at": "2026-10-29T12:39:36.005Z",
   "executed_at": "2026-10-29T14:10:04.734Z",
   "statement_class": "unpriced",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": {
    "event_id": "s-39da42fdd6be",
    "display_name": "Everton — Newcastle United",
    "competition_name": "EFL Cup (Carabao)",
    "starts_at": "2026-10-29T19:45:00.000Z",
    "url": "/football/matches/everton-vs-newcastle-united-2026-10-29/",
    "scoreline": "3-1",
    "condition": "finished"
   },
   "market_label": "1X2, match result",
   "outcome_label": "Newcastle United",
   "odds_set": {
    "by_author": null,
    "our_snapshot": "3.0400",
    "our_snapshot_at": "2026-10-29T12:37:08.790Z",
    "our_snapshot_source": "market snapshot",
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "At an independent odds snapshot",
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-10-27T18:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-27T18:00:00.000Z",
    "detected_at": "2026-10-29T12:39:36.005Z",
    "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": "1X2, match result",
    "choice": "Newcastle United",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: Newcastle United"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "3-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Lost: the final score was Everton 3-1 Newcastle United."
   },
   "settlements": [
    {
     "operation_id": "fe047ffb00921e758b938f6fb312c04ffff6dc1423a09f4e3d706e62dc6749a7",
     "series_key": "market_price",
     "series_label": "At an independent odds snapshot",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "Newcastle United",
     "decimal_odds": "3.0400",
     "odds_role": "market_price",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-29T14:10:04.734Z",
     "methodology_version": "2.2",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/everton/league-cup/preview/everton-vs-newcastle-prediction-team-news-lineups_607782.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Newcastle United to win"
  },
  {
   "observation_id": "n-22dac1cfc5e121e27b1f6361",
   "quote_text": "We say: Fulham 1-1 Crystal Palace (Fulham to win on penalties)",
   "fragment_from": 6535,
   "fragment_to": 6597,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/fulham/league-cup/preview/fulham-vs-crystal-palace-prediction-team-news-lineups_607720.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "8e865d9e16444ac0686ce6ef36d2a949b109f3d581fa90c3bb9c7414dfcd2cd9",
    "material_removed": false
   },
   "published_at": "2026-10-26T15:45:00.000Z",
   "detected_at": "2026-10-28T12:45:44.183Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": {
    "event_id": "s-f8048a802699",
    "display_name": "Fulham — Crystal Palace",
    "competition_name": "EFL Cup (Carabao)",
    "starts_at": "2026-10-28T19:45:00.000Z",
    "url": "/football/matches/fulham-vs-crystal-palace-2026-10-28/",
    "scoreline": "0-1",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Fulham 1-1 Crystal Palace",
   "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-26T15:45:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-26T15:45:00.000Z",
    "detected_at": "2026-10-28T12:45:44.183Z",
    "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": "Fulham 1-1 Crystal Palace",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "1-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Fulham 1-1 Crystal Palace"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "0-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was Fulham 0-1 Crystal Palace."
   },
   "settlements": [
    {
     "operation_id": "afde7efca90281b1247d68f6dd322d4e3a7166a53eb07eba247bb5205ffd43d2",
     "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.9300",
     "odds_role": "market_price",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-28T13:07:12.632Z",
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/fulham/league-cup/preview/fulham-vs-crystal-palace-prediction-team-news-lineups_607720.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Fulham 1-1 Crystal Palace"
  },
  {
   "observation_id": "n-3ff4f6e84e9c69b508e01b68",
   "quote_text": "We say: Manchester City 3-2 Brighton & Hove Albion",
   "fragment_from": 5988,
   "fragment_to": 6038,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/man-city/league-cup/preview/man-city-vs-brighton-prediction-team-news-lineups_607717.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "8b68334180cb5579f5fbbee6a067f36d4f6d47c5fb7498440af71574f581505a",
    "material_removed": false
   },
   "published_at": "2026-10-26T13:05:00.000Z",
   "detected_at": "2026-10-27T19:55:43.953Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": {
    "event_id": "s-6198c1907ac8",
    "display_name": "Manchester City — Brighton & Hove Albion",
    "competition_name": "EFL Cup (Carabao)",
    "starts_at": "2026-10-28T19:30:00.000Z",
    "url": "/football/matches/manchester-city-vs-brighton-and-hove-albion-2026-10-28/",
    "scoreline": "2-2",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Manchester City 3-2 Brighton & Hove Albion",
   "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-26T13:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-26T13:05:00.000Z",
    "detected_at": "2026-10-27T19:55:43.953Z",
    "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": "Manchester City 3-2 Brighton & Hove Albion",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "3-2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Manchester City 3-2 Brighton & Hove Albion"
   },
   "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 Manchester City 2-2 Brighton & Hove Albion."
   },
   "settlements": [
    {
     "operation_id": "264d164ba63afde14adde0bb4207642c8c33e7678cd74ac580fcefe1bed9f179",
     "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": "Manchester City",
     "decimal_odds": "1.6711",
     "odds_role": "market_price",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-28T10:25:17.050Z",
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/man-city/league-cup/preview/man-city-vs-brighton-prediction-team-news-lineups_607717.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Manchester City 3-2 Brighton & Hove Albion"
  },
  {
   "observation_id": "n-5e5aa04c04b5a513df724e29",
   "quote_text": "we are backing the hosts to outgun the Seagulls",
   "fragment_from": 6358,
   "fragment_to": 6405,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/man-city/league-cup/preview/man-city-vs-brighton-prediction-team-news-lineups_607717.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "8b68334180cb5579f5fbbee6a067f36d4f6d47c5fb7498440af71574f581505a",
    "material_removed": false
   },
   "published_at": "2026-10-26T13:05:00.000Z",
   "detected_at": "2026-10-27T19:55:43.953Z",
   "executed_at": null,
   "statement_class": "unpriced",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "not_checked",
   "event": {
    "event_id": "s-6198c1907ac8",
    "display_name": "Manchester City — Brighton & Hove Albion",
    "competition_name": "EFL Cup (Carabao)",
    "starts_at": "2026-10-28T19:30:00.000Z",
    "url": "/football/matches/manchester-city-vs-brighton-and-hove-albion-2026-10-28/",
    "scoreline": "2-2",
    "condition": "finished"
   },
   "market_label": "1X2, match result",
   "outcome_label": "Manchester City",
   "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-26T13:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-26T13:05:00.000Z",
    "detected_at": "2026-10-27T19:55:43.953Z",
    "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": "1X2, match result",
    "choice": "Manchester City",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: Manchester City"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "2-2",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Lost: the final score was Manchester City 2-2 Brighton & Hove Albion."
   },
   "settlements": [
    {
     "operation_id": "6ea84da081a5cc7b10f4bce28bd2989e206050d83d7d11c2814fbb1ef610855e",
     "series_key": "market_price",
     "series_label": "At an independent odds snapshot",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "Manchester City",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: ",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/man-city/league-cup/preview/man-city-vs-brighton-prediction-team-news-lineups_607717.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Manchester City to win"
  },
  {
   "observation_id": "n-eb90d6ae4935291466a1d72c",
   "quote_text": "We say: Chelsea 3-1 Tottenham Hotspur",
   "fragment_from": 5548,
   "fragment_to": 5585,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/chelsea/preview/chelsea-vs-spurs-prediction-team-news-lineups_607411.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "74121a60cadcdc66179cc076b8eaa3ba2b3f251f3b8c7c0f26eb23a57e235257",
    "material_removed": false
   },
   "published_at": "2026-10-22T17:00:00.000Z",
   "detected_at": "2026-10-23T23:35:43.948Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": {
    "event_id": "s-75e81bac336b",
    "display_name": "Chelsea — Tottenham Hotspur",
    "competition_name": "Premier League",
    "starts_at": "2026-10-24T16:30:00.000Z",
    "url": "/football/matches/chelsea-vs-tottenham-hotspur-2026-10-24/",
    "scoreline": "0-2",
    "condition": "finished"
   },
   "market_label": "Correct score",
   "outcome_label": "Chelsea 3-1 Tottenham Hotspur",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": "loss",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "recorded_pre_match",
   "provenance_words": "Recorded by us before kick-off",
   "dates": {
    "fragment_at": "2026-10-22T17:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-10-22T17:00:00.000Z",
    "detected_at": "2026-10-23T23:35:43.948Z",
    "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": "Chelsea 3-1 Tottenham Hotspur",
    "author_odds": null,
    "market_key": "correct_score_market",
    "choice_key": "3-1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Correct score: Chelsea 3-1 Tottenham Hotspur"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "0-2",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Did not match: the final score was Chelsea 0-2 Tottenham Hotspur."
   },
   "settlements": [
    {
     "operation_id": "2d5752f934b4b7fb4519326a34c967dd632654f96b0f2e19b5e4b2362c661e07",
     "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": "Chelsea",
     "decimal_odds": null,
     "odds_role": null,
     "stake_hundredths": null,
     "status": "skipped",
     "status_text": "Not executed: repeats another statement",
     "result": null,
     "result_words": null,
     "change_hundredths": null,
     "executed_at": null,
     "methodology_version": "2.2",
     "on_claim_market": false,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Oliver Thomas",
    "publisher": "Sports Mole",
    "forecaster": "Oliver Thomas",
    "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/chelsea/preview/chelsea-vs-spurs-prediction-team-news-lineups_607411.html",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null,
   "choice_words": "Chelsea 3-1 Tottenham Hotspur"
  }
 ]
}
