{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "history",
 "url": "/authors/oliver-thomas/picks/4/",
 "canonical": "/authors/oliver-thomas/picks/4/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Oliver Thomas — football predictions, page 4 of 4",
 "description": "Predictions 41–56 of 56 by Oliver Thomas, with outcomes in words and links to the evidence.",
 "first_paragraph": {
  "body": "Page 4 of 4 of the predictions by Oliver Thomas recorded by Forecast Record: predictions 41–56 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": "e2b7a85360b798a25eeaefd31e30861fed5b6fc8723b8ffb91b600241b5afe76",
 "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/4/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-e3dfbcb09d99a2e23b82ddf5",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-e3dfbcb09d99a2e23b82ddf5",
   "match": "Everton v Newcastle United",
   "match_url": "/football/matches/everton-vs-newcastle-united-2026-10-29/",
   "kickoff": "2026-10-29T19:45:00.000Z",
   "competition": "EFL Cup (Carabao)",
   "lead_hours": 48.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Everton 1-2 Newcastle United",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-27T18:00:00.000Z",
   "recorded_at": "2026-10-27T19:10:12.071Z",
   "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-e3dfbcb09d99a2e23b82ddf5",
    "quote_text": "We say: Everton 1-2 Newcastle United",
    "fragment_from": 5518,
    "fragment_to": 5554,
    "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": "9276e8ce992ea83f4eab9e77a27fda990c8f4454c0d99d465895a4025d7405ba",
     "material_removed": false
    },
    "published_at": "2026-10-27T18:00:00.000Z",
    "detected_at": "2026-10-27T19:10:12.071Z",
    "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-27T19:10:12.071Z",
     "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": "72abf26a8f66b73808d538b92be8eea52b4ca4575306993dbcf12cd5d7074353",
      "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.1700",
      "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:47:54.496Z",
      "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"
   }
  },
  {
   "record_id": "n-4d0e35a7576a2371c66dbf49",
   "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 Cottagers to hold their nerve on penalties and progress to the quarter-finals.",
   "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-26T15:45:00.000Z",
   "recorded_at": "2026-10-28T12:45:44.183Z",
   "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-e062b9ede279d484c6271db9",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-e062b9ede279d484c6271db9",
   "match": "Aston Villa v Fulham",
   "match_url": "/football/matches/aston-villa-vs-fulham-2026-10-31/",
   "kickoff": "2026-10-31T20:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 38.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Aston Villa 3-0 Fulham",
   "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-29T21:00:00.000Z",
   "recorded_at": "2026-10-30T05:10:07.945Z",
   "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.9434",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-e062b9ede279d484c6271db9",
    "quote_text": "We say: Aston Villa 3-0 Fulham",
    "fragment_from": 5390,
    "fragment_to": 5420,
    "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": "52f32d547d62298bb6d6dec02a2d6f10388e42f327a441cf8824f89e2fdde19b",
     "material_removed": false
    },
    "published_at": "2026-10-29T21:00:00.000Z",
    "detected_at": "2026-10-30T05:10:07.945Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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-30T05:10:07.945Z",
     "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": "7d74856df974cdd2595ec5088fabf10dc87aca83ca5ae4fd482acdca843d6c73",
      "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": "1.9434",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T07:34:16.255Z",
      "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"
   }
  },
  {
   "record_id": "n-2c0a3ecc6830cef2cf4102de",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-2c0a3ecc6830cef2cf4102de",
   "match": "AFC Bournemouth v Leeds United",
   "match_url": "/football/matches/afc-bournemouth-vs-leeds-united-2026-10-31/",
   "kickoff": "2026-10-31T15:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 3.4,
   "market_code": "correct_score_market",
   "author_said": "Correct score: AFC Bournemouth 2-1 Leeds United",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "2-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": null,
   "settled_price": "8.0000",
   "published_at": "2026-10-29T17:00:00.000Z",
   "recorded_at": "2026-10-31T11:35:45.746Z",
   "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": null,
   "platform": "Sports Mole, RSS feed",
   "correction": null,
   "evidence": {
    "observation_id": "n-2c0a3ecc6830cef2cf4102de",
    "quote_text": "We say: Bournemouth 2-1 Leeds United",
    "fragment_from": 5988,
    "fragment_to": 6024,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/bournemouth/preview/bournemouth-vs-leeds-prediction-team-news-lineups_607929.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "a024dbc3da395e8fd09a2fba9a373ff59ff9e91295a88374b4fbe7ee7c151d54",
     "material_removed": false
    },
    "published_at": "2026-10-29T17:00:00.000Z",
    "detected_at": "2026-10-31T11:35:45.746Z",
    "executed_at": "2026-10-31T14:54:28.877Z",
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-39d8fcfaf4a9",
     "display_name": "AFC Bournemouth — Leeds United",
     "competition_name": "Premier League",
     "starts_at": "2026-10-31T15:00:00.000Z",
     "url": "/football/matches/afc-bournemouth-vs-leeds-united-2026-10-31/",
     "scoreline": "2-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "AFC Bournemouth 2-1 Leeds United",
    "odds_set": {
     "by_author": null,
     "our_snapshot": "8.0000",
     "our_snapshot_at": "2026-10-31T11:34:55.560Z",
     "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-29T17:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-29T17:00:00.000Z",
     "detected_at": "2026-10-31T11:35:45.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": "AFC Bournemouth 2-1 Leeds United",
     "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 Leeds United"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was AFC Bournemouth 2-0 Leeds United."
    },
    "settlements": [
     {
      "operation_id": "f3e7df1bf11e2396f1884a8cd003a4a365ed33ec5b3d35ebb6bbd38c049c2d7a",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Correct score",
      "choice": "AFC Bournemouth 2-1 Leeds United",
      "decimal_odds": "8.0000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T14:54:28.877Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "92947c6b5d9174982566fea3bd6a4ac1ba6db07767838f225d628180ed646f71",
      "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": "2.1000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 11000,
      "executed_at": "2026-10-31T14:54:36.199Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "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/bournemouth/preview/bournemouth-vs-leeds-prediction-team-news-lineups_607929.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "AFC Bournemouth 2-1 Leeds United"
   }
  },
  {
   "record_id": "n-487d1001b744d60a74a8f942",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-487d1001b744d60a74a8f942",
   "match": "Manchester City v Brighton & Hove Albion",
   "match_url": "/football/matches/manchester-city-vs-brighton-and-hove-albion-2026-10-31/",
   "kickoff": "2026-10-31T15:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 3.4,
   "market_code": "1x2",
   "author_said": "1X2, match result: Manchester City",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "reason": "",
   "reason_code": "disputed_reading",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-29T15:30:00.000Z",
   "recorded_at": "2026-10-31T11:35:47.500Z",
   "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": "Sports Mole, RSS feed",
   "correction": null,
   "evidence": {
    "observation_id": "n-487d1001b744d60a74a8f942",
    "quote_text": "but we are backing a Haaland-inspired Sky Blue side to edge a five-goal thriller.",
    "fragment_from": 6362,
    "fragment_to": 6443,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/man-city/preview/man-city-vs-brighton-prediction-team-news-lineups_607915.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "8aedcbca387e285851e910b93afea1958b3fc0339ec310ab3328880ba7ad90ab",
     "material_removed": false
    },
    "published_at": "2026-10-29T15:30:00.000Z",
    "detected_at": "2026-10-31T11:35:47.500Z",
    "executed_at": null,
    "statement_class": "unpriced",
    "status": "recognised",
    "cause": "",
    "cause_code": "disputed_reading",
    "event": {
     "event_id": "s-3a3fd595d5c8",
     "display_name": "Manchester City — Brighton & Hove Albion",
     "competition_name": "Premier League",
     "starts_at": "2026-10-31T15:00:00.000Z",
     "url": "/football/matches/manchester-city-vs-brighton-and-hove-albion-2026-10-31/",
     "scoreline": "0-1",
     "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-29T15:30:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-29T15:30:00.000Z",
     "detected_at": "2026-10-31T11:35:47.500Z",
     "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": "0-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was Manchester City 0-1 Brighton & Hove Albion."
    },
    "settlements": [
     {
      "operation_id": "20ee7370f43fd9c79f57e9a9abbeb100785e7fcfa6b0d494e93290f4378e34e5",
      "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/preview/man-city-vs-brighton-prediction-team-news-lineups_607915.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Manchester City to win"
   }
  },
  {
   "record_id": "n-96e9797855d58f6e68d763fd",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-96e9797855d58f6e68d763fd",
   "match": "Manchester City v Brighton & Hove Albion",
   "match_url": "/football/matches/manchester-city-vs-brighton-and-hove-albion-2026-10-31/",
   "kickoff": "2026-10-31T15:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 3.4,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Manchester City 3-2 Brighton & Hove Albion",
   "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-29T15:30:00.000Z",
   "recorded_at": "2026-10-31T11:35:47.500Z",
   "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": "Sports Mole, RSS feed",
   "correction": null,
   "evidence": {
    "observation_id": "n-96e9797855d58f6e68d763fd",
    "quote_text": "We say: Manchester City 3-2 Brighton & Hove Albion",
    "fragment_from": 5971,
    "fragment_to": 6021,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/man-city/preview/man-city-vs-brighton-prediction-team-news-lineups_607915.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "8aedcbca387e285851e910b93afea1958b3fc0339ec310ab3328880ba7ad90ab",
     "material_removed": false
    },
    "published_at": "2026-10-29T15:30:00.000Z",
    "detected_at": "2026-10-31T11:35:47.500Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-3a3fd595d5c8",
     "display_name": "Manchester City — Brighton & Hove Albion",
     "competition_name": "Premier League",
     "starts_at": "2026-10-31T15:00:00.000Z",
     "url": "/football/matches/manchester-city-vs-brighton-and-hove-albion-2026-10-31/",
     "scoreline": "0-1",
     "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-29T15:30:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-29T15:30:00.000Z",
     "detected_at": "2026-10-31T11:35:47.500Z",
     "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": "0-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Manchester City 0-1 Brighton & Hove Albion."
    },
    "settlements": [
     {
      "operation_id": "32f4193689e02eaa47c14eeda6e1f378ba4bb4e6455f3678f7890a4788d3aa7c",
      "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.6897",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T14:54:19.056Z",
      "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/preview/man-city-vs-brighton-prediction-team-news-lineups_607915.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Manchester City 3-2 Brighton & Hove Albion"
   }
  },
  {
   "record_id": "n-804d99689e4ba90c74c50f29",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-804d99689e4ba90c74c50f29",
   "match": "RB Leipzig v Manchester City",
   "match_url": "/football/matches/rb-leipzig-vs-manchester-city-2026-11-04/",
   "kickoff": "2026-11-04T20:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 46.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: RB Leipzig 2-4 Manchester City",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-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-11-02T18:00:00.000Z",
   "recorded_at": "2026-11-02T21:10:50.282Z",
   "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.5464",
    "result": "Won",
    "points_hundredths": 5464,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-804d99689e4ba90c74c50f29",
    "quote_text": "We say: RB Leipzig 2-4 Manchester City",
    "fragment_from": 5691,
    "fragment_to": 5729,
    "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": "3fba4baa3b6edd65db5c76ee447987ad7d822f68a054c80b3761e52ecfd397f7",
     "material_removed": false
    },
    "published_at": "2026-11-02T18:00:00.000Z",
    "detected_at": "2026-11-02T21:10:50.282Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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-02T21:10:50.282Z",
     "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": "e8fc42fba10544d2eff58aeca7496a04f5fc7f838e2e04296e500938b78e3845",
      "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.5464",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 5464,
      "executed_at": "2026-11-03T03:53:37.619Z",
      "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"
   }
  },
  {
   "record_id": "n-704d4024a844a7068582f4c3",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-704d4024a844a7068582f4c3",
   "match": "Crystal Palace v TSG Hoffenheim",
   "match_url": "/football/matches/crystal-palace-vs-tsg-hoffenheim-2026-11-05/",
   "kickoff": "2026-11-05T17:45:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 47.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Crystal Palace 2-2 TSG Hoffenheim",
   "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-11-03T17:30:00.000Z",
   "recorded_at": "2026-11-03T18:10:43.414Z",
   "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.9500",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-704d4024a844a7068582f4c3",
    "quote_text": "We say: Crystal Palace 2-2 Hoffenheim",
    "fragment_from": 5223,
    "fragment_to": 5260,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/crystal-palace/europa-league/preview/crystal-palace-vs-hoffenheim-prediction-team-news-lineups_608304.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "416e4244f66d02537ef815b533dc04194d5891872ab411e34d7fc6be0d82f093",
     "material_removed": false
    },
    "published_at": "2026-11-03T17:30:00.000Z",
    "detected_at": "2026-11-03T18:10:43.414Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-de2734d4b4c1",
     "display_name": "Crystal Palace — TSG Hoffenheim",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-11-05T17:45:00.000Z",
     "url": "/football/matches/crystal-palace-vs-tsg-hoffenheim-2026-11-05/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Crystal Palace 2-2 TSG Hoffenheim",
    "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-03T17:30:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-11-03T17:30:00.000Z",
     "detected_at": "2026-11-03T18:10:43.414Z",
     "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": "Crystal Palace 2-2 TSG Hoffenheim",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Crystal Palace 2-2 TSG Hoffenheim"
    },
    "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 Crystal Palace 1-1 TSG Hoffenheim."
    },
    "settlements": [
     {
      "operation_id": "c504d2aefadac1288f25ce7c75bf56139eaa74d8bc411631b9c28c4cabe62243",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "3.8000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 28000,
      "executed_at": "2026-11-03T19:39:53.169Z",
      "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/crystal-palace/europa-league/preview/crystal-palace-vs-hoffenheim-prediction-team-news-lineups_608304.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Crystal Palace 2-2 TSG Hoffenheim"
   }
  },
  {
   "record_id": "n-149185db96bc246b34768990",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-149185db96bc246b34768990",
   "match": "Sunderland v Dinamo Zagreb",
   "match_url": "/football/matches/sunderland-vs-dinamo-zagreb-2026-11-05/",
   "kickoff": "2026-11-05T20:00:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 48.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Sunderland 2-1 Dinamo Zagreb",
   "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-11-03T18:00:00.000Z",
   "recorded_at": "2026-11-03T19:10:14.070Z",
   "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.4550",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-149185db96bc246b34768990",
    "quote_text": "We say: Sunderland 2-1 Dinamo Zagreb",
    "fragment_from": 5105,
    "fragment_to": 5141,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/sunderland/europa-league/preview/sunderland-vs-dinamo-zagreb-prediction-team-news-lineups_608306.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "32c08211c6ab707636aea08cdbb243dece7ad93aba05b406067fac2318272208",
     "material_removed": false
    },
    "published_at": "2026-11-03T18:00:00.000Z",
    "detected_at": "2026-11-03T19:10:14.070Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-60866a476ac4",
     "display_name": "Sunderland — Dinamo Zagreb",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-11-05T20:00:00.000Z",
     "url": "/football/matches/sunderland-vs-dinamo-zagreb-2026-11-05/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Sunderland 2-1 Dinamo Zagreb",
    "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-03T18:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-11-03T18:00:00.000Z",
     "detected_at": "2026-11-03T19:10:14.070Z",
     "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 2-1 Dinamo Zagreb",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Sunderland 2-1 Dinamo Zagreb"
    },
    "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 Dinamo Zagreb."
    },
    "settlements": [
     {
      "operation_id": "c2ea77908b7acd400a69373f512c966f1952b3d89db5a34fed9e5f504b069132",
      "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": "Sunderland",
      "decimal_odds": "1.4550",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-11-03T20:06:34.521Z",
      "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/europa-league/preview/sunderland-vs-dinamo-zagreb-prediction-team-news-lineups_608306.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Sunderland 2-1 Dinamo Zagreb"
   }
  },
  {
   "record_id": "n-fe92438539d89fbbb6b825be",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Sparta Prague 0-2 Bournemouth",
   "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-11-03T17:45:00.000Z",
   "recorded_at": "2026-11-03T19:10:15.216Z",
   "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-f6b002cb4cde00bccb740c16",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-f6b002cb4cde00bccb740c16",
   "match": "RB Leipzig v Manchester City",
   "match_url": "/football/matches/rb-leipzig-vs-manchester-city-2026-11-04/",
   "kickoff": "2026-11-04T20:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 7.1,
   "market_code": "1x2",
   "author_said": "1X2, match result: Manchester City",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "2-3",
   "reason": "",
   "reason_code": "disputed_reading",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-11-02T18:00:00.000Z",
   "recorded_at": "2026-11-04T12:55:45.903Z",
   "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": "Sports Mole, RSS feed",
   "correction": null,
   "evidence": {
    "observation_id": "n-f6b002cb4cde00bccb740c16",
    "quote_text": "However, we are backing Maresca’s men to rediscover their clinical touch and outscore their German counterparts in a six-goals thriller.",
    "fragment_from": 6936,
    "fragment_to": 7072,
    "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": "unpriced",
    "status": "recognised",
    "cause": "",
    "cause_code": "disputed_reading",
    "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": "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": "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-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": "1X2, match result",
     "choice": "Manchester City",
     "author_odds": null,
     "market_key": "1x2",
     "choice_key": "2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: Manchester City"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "2-3",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was RB Leipzig 2-3 Manchester City."
    },
    "settlements": [
     {
      "operation_id": "c63b2bcc8cb61271d497ab0c9b894b6568961ddbbffdd324f73ac469cb3210d5",
      "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/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": "Manchester City to win"
   }
  },
  {
   "record_id": "n-1e0cc7c698d881de1df99781",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-1e0cc7c698d881de1df99781",
   "match": "Leeds United v Tottenham Hotspur",
   "match_url": "/football/matches/leeds-united-vs-tottenham-hotspur-2026-11-07/",
   "kickoff": "2026-11-07T12:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": 39.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Leeds United 1-1 Tottenham Hotspur",
   "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-11-05T16:00:00.000Z",
   "recorded_at": "2026-11-05T21:10:12.345Z",
   "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.5500",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-1e0cc7c698d881de1df99781",
    "quote_text": "We say: Leeds United 1-1 Tottenham Hotspur",
    "fragment_from": 5514,
    "fragment_to": 5556,
    "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": "1a0d6551b1457e5f29691b6e52fdb349b57e21392fbffbb82a806bd3441415f3",
     "material_removed": false
    },
    "published_at": "2026-11-05T16:00:00.000Z",
    "detected_at": "2026-11-05T21:10:12.345Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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-05T21:10:12.345Z",
     "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": "cfadebc9289b9d3b959095e9054e6b14bdd6be0417fd8ea1a6fe7a8dd3af144c",
      "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.3150",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-11-05T21:12:17.040Z",
      "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"
   }
  },
  {
   "record_id": "n-3d8d45bdbf6b9587a6aab0c8",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-3d8d45bdbf6b9587a6aab0c8",
   "match": "Wrexham v Wolverhampton Wanderers",
   "match_url": "/football/matches/wrexham-vs-wolverhampton-wanderers-2026-11-07/",
   "kickoff": "2026-11-07T12:30:00.000Z",
   "competition": "EFL Championship",
   "lead_hours": 31.3,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "1-1",
   "reason": "",
   "reason_code": "disputed_reading",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-11-05T21:00:00.000Z",
   "recorded_at": "2026-11-06T05:10:11.025Z",
   "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-3d8d45bdbf6b9587a6aab0c8",
    "quote_text": "we expect the net to ripple at both ends of the pitch this weekend",
    "fragment_from": 5282,
    "fragment_to": 5348,
    "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": "09d1e893ab28a5c1b1b0589feb53b746952c05a4a5ea2ce794dd5c79a45e53c6",
     "material_removed": false
    },
    "published_at": "2026-11-05T21:00:00.000Z",
    "detected_at": "2026-11-06T05:10:11.025Z",
    "executed_at": null,
    "statement_class": "unpriced",
    "status": "recognised",
    "cause": "",
    "cause_code": "disputed_reading",
    "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-06T05:10:11.025Z",
     "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": "3aaf766c842345fffbba8547323ce60f2622def4f47a2443fec074330b72488b",
      "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.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)"
   }
  },
  {
   "record_id": "n-9353cf3e36d7fe07d9ea67cf",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-9353cf3e36d7fe07d9ea67cf",
   "match": "Wrexham v Wolverhampton Wanderers",
   "match_url": "/football/matches/wrexham-vs-wolverhampton-wanderers-2026-11-07/",
   "kickoff": "2026-11-07T12:30:00.000Z",
   "competition": "EFL Championship",
   "lead_hours": 31.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Wrexham 1-2 Wolverhampton Wanderers",
   "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-11-05T21:00:00.000Z",
   "recorded_at": "2026-11-06T05:10:11.025Z",
   "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-9353cf3e36d7fe07d9ea67cf",
    "quote_text": "We say: Wrexham 1-2 Wolverhampton Wanderers",
    "fragment_from": 5084,
    "fragment_to": 5127,
    "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": "09d1e893ab28a5c1b1b0589feb53b746952c05a4a5ea2ce794dd5c79a45e53c6",
     "material_removed": false
    },
    "published_at": "2026-11-05T21:00:00.000Z",
    "detected_at": "2026-11-06T05:10:11.025Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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-06T05:10:11.025Z",
     "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": "4c029c5390ee197aaee31f407cb186cf61e835b11cec9eb02874a899b4cd2038",
      "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": "2.2000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-11-06T05:10:39.658Z",
      "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"
   }
  },
  {
   "record_id": "n-84689d79f4a89a819d7328d1",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-84689d79f4a89a819d7328d1",
   "match": "Fulham v Newcastle United",
   "match_url": "/football/matches/fulham-vs-newcastle-united-2026-11-07/",
   "kickoff": "2026-11-07T15:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 32.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Fulham 1-1 Newcastle United",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "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-11-05T20:00:00.000Z",
   "recorded_at": "2026-11-06T06:10:06.024Z",
   "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.0500",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-84689d79f4a89a819d7328d1",
    "quote_text": "We say: Fulham 1-1 Newcastle United",
    "fragment_from": 5336,
    "fragment_to": 5371,
    "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": "7e9704db157777595a0f7ea08ee6be4037410c2b6138bab99bd2a3e85b35e094",
     "material_removed": false
    },
    "published_at": "2026-11-05T20:00:00.000Z",
    "detected_at": "2026-11-06T06:10:06.024Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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-06T06:10:06.024Z",
     "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": "3171e9c804f90c5fecaad4a82e65efbaf690ade8da2c9169b73b48676831bfed",
      "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": "win",
      "result_words": "Won",
      "change_hundredths": 26000,
      "executed_at": "2026-11-06T06:12:01.271Z",
      "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"
   }
  },
  {
   "record_id": "n-a9c76269f7f8147a3c609b82",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Nottingham Forest 1-2 Manchester City",
   "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-11-05T08:00:00.000Z",
   "recorded_at": "2026-11-06T20:06:49.006Z",
   "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
  }
 ],
 "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": 4,
  "first": 41,
  "last": 56,
  "author_url": "/authors/oliver-thomas/",
  "current": false
 },
 "entity_id": "history:/authors/oliver-thomas/picks/4/",
 "source_revision": 18
}
