{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "author",
 "url": "/authors/oliver-thomas/",
 "canonical": "/authors/oliver-thomas/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Oliver Thomas: Football Prediction Record",
 "description": "6 settled picks by Oliver Thomas recorded before kick-off across 6 matches, 10 Oct 2026 – 31 Oct 2026: won 1 of 6 at our recorded market prices.",
 "first_paragraph": {
  "body": "Forecast Record recorded 6 settled live picks by Oliver Thomas before kick-off across 6 matches between 10 and 31 October 2026. Won 1 of 6 settled live picks at our recorded market prices. Of the 56 predictions we hold for Oliver Thomas, 43 are linked to matches: 43 were recorded by us before kick-off. Figures as of 7 November 2026.",
  "key_number": "6",
  "data": "2026-11-07",
  "source_info": "our own evidence archive and market snapshot",
  "brand": "Forecast Record"
 },
 "indexable": true,
 "noindex_reason": null,
 "indexing_threshold": {
  "settled_count": 37,
  "date_count": 15,
  "required_settled": 10,
  "required_dates": 2
 },
 "data_date": "2026-11-07T18:06:00.334Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-08T02:12:33.000Z",
 "content_hash": null,
 "meaning_hash": "555b8d8594ffa98a271945ebf12b38ef3daf84ce5d45953a602edfe188dde45c",
 "dependency_group": "author:e-a37055f72f52c0fdfe8df63a",
 "release_id": "20261107-195223",
 "markup": [
  {
   "type_code": "WebPage",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "Organization",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "Person",
   "allowed": true,
   "cause": null
  }
 ],
 "exports": [
  {
   "type_code": "json",
   "url": "/authors/oliver-thomas/index.json",
   "bytes": null
  },
  {
   "type_code": "csv",
   "url": "/authors/oliver-thomas/picks.csv",
   "bytes": null
  }
 ],
 "modules": {
  "affiliate": true,
  "api": true,
  "compare_yourself": false
 },
 "affiliate_block": {
  "container": true,
  "request_url": "/partnery/moi",
  "disclosure": "Some links below are affiliate links and are marked as such. They never affect what you see above: the order of any table is computed before any commission is known.",
  "page_category": "author"
 },
 "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
 },
 "headline_number": {
  "metric": {
   "metric_id": "p-e-a37055f72f52c0fdfe8df63a-roi-market-price-90d-z99",
   "code_name": "roi_market_price",
   "display_name": "Return on stakes at an independent odds snapshot",
   "window_kind": "90d",
   "window_from": "2026-08-09",
   "window_to": "2026-11-07",
   "amount": "-61.6667",
   "unit": "percent",
   "data_status": "calculated",
   "cause": null,
   "n_bets": 6,
   "n_events": 6,
   "n_void": 0,
   "ci_low": null,
   "ci_high": null,
   "ci_method": "not_estimated",
   "price_source": "market_price",
   "coverage_percent": "0.00",
   "breakdown": [],
   "methodology_version": "2.2",
   "data_date": "2026-11-07T18:06:00.334Z",
   "enough_for_ranking": false,
   "series_uid": null,
   "series_key": "market_price",
   "series_label": "At an independent odds snapshot"
  },
  "byline": "Return on stakes at an independent odds snapshot over 90 days: 6 settled picks across 6 matches",
  "average_odds": null,
  "odds_from_author": null,
  "odds_from_snapshot": null
 },
 "metrics": [],
 "history": [],
 "simulation": {
  "series_uid": "sr-b5ff2f60e1d3ca264fdef0b7",
  "bankroll_hundredths": 973000,
  "reserve_hundredths": 0,
  "issued_total_hundredths": 1000000,
  "top_up_count": 0,
  "profit_hundredths": -27000,
  "rewards_off": null,
  "initial_hundredths": 1000000,
  "stake_hundredths": 10000,
  "data_points": [
   {
    "at": "2026-10-10T23:35:57.974Z",
    "bankroll_hundredths": 1013000,
    "profit_hundredths": 13000,
    "outcome_id": "ish-64e29ab8bfe8991ff49b5aec"
   },
   {
    "at": "2026-10-17T16:33:09.620Z",
    "bankroll_hundredths": 1003000,
    "profit_hundredths": 3000,
    "outcome_id": "ish-3ab519fba29c5a245d200129"
   },
   {
    "at": "2026-10-21T21:05:39.842Z",
    "bankroll_hundredths": 1003000,
    "profit_hundredths": 3000,
    "outcome_id": "ish-cea64eef2c0b948f4c016e86"
   },
   {
    "at": "2026-10-22T21:10:33.169Z",
    "bankroll_hundredths": 993000,
    "profit_hundredths": -7000,
    "outcome_id": "ish-914f2d0322336aee52b85f59"
   },
   {
    "at": "2026-10-24T16:08:15.142Z",
    "bankroll_hundredths": 983000,
    "profit_hundredths": -17000,
    "outcome_id": "ish-868225810ad92772ca39414c"
   },
   {
    "at": "2026-10-30T02:46:59.343Z",
    "bankroll_hundredths": 973000,
    "profit_hundredths": -27000,
    "outcome_id": "ish-63b6a437cbfc4a512fc6ed45"
   }
  ],
  "top_ups": [],
  "rule": "When the balance falls below 100 points and no bets are open, 10000 points are added; the remaining balance is kept. While bets are open we wait for settlement.",
  "series_key": "market_price",
  "series_label": "At an independent odds snapshot"
 },
 "simulations": [],
 "completeness": {
  "detected": 787,
  "recognised": 56,
  "accepted": 12,
  "executed": 6,
  "calculated": 6,
  "gaps": [
   {
    "cause": "outside the method",
    "figure": 30
   },
   {
    "cause": "National-team matches",
    "figure": 6
   },
   {
    "cause": "not_supported",
    "figure": 5
   },
   {
    "cause": "disputed_reading",
    "figure": 4
   },
   {
    "cause": "other reading",
    "figure": 3
   },
   {
    "cause": "not_checked",
    "figure": 2
   }
  ]
 },
 "record_counts": {
  "dictionary_version": "1",
  "statements": 787,
  "of_them_restored": 23,
  "not_predictions": {
   "opinions": 95,
   "not_about_a_match": 631,
   "unclassified": 0
  },
  "predictions": 56,
  "predictions_restored": 0,
  "matches": 32,
  "admitted": 12,
  "qualifying_picks": 6,
  "qualifying_picks_restored": 0,
  "settled_picks": 6,
  "settled_picks_restored": 0,
  "series_list": [
   {
    "code_name": "market_price",
    "derived": false,
    "is_restored": false,
    "qualifying_picks": 6,
    "settled_picks": 6,
    "void": 0,
    "pending_picks": 0,
    "matches": 6,
    "operations_settled": 7,
    "stakes_hundredths": [
     10000
    ],
    "methodologies": [
     "2.2"
    ],
    "display_name": "At an independent odds snapshot"
   },
   {
    "code_name": "derived_series",
    "derived": true,
    "is_restored": false,
    "qualifying_picks": 32,
    "settled_picks": 32,
    "void": 0,
    "pending_picks": 0,
    "matches": 32,
    "operations_settled": 34,
    "stakes_hundredths": [
     10000
    ],
    "methodologies": [
     "2.2"
    ],
    "display_name": "Forecast Record reconstruction from the predicted score"
   }
  ],
  "gaps": [
   {
    "code_name": "not_admitted",
    "cause": "outside the method",
    "figure": 30
   },
   {
    "code_name": "outside_coverage",
    "cause": "National-team matches",
    "figure": 6
   },
   {
    "code_name": "not_supported",
    "cause": "not_supported",
    "figure": 5
   },
   {
    "code_name": "disputed_reading",
    "cause": "disputed_reading",
    "figure": 4
   },
   {
    "code_name": "ambiguous",
    "cause": "other reading",
    "figure": 3
   },
   {
    "code_name": "not_checked",
    "cause": "not_checked",
    "figure": 2
   }
  ],
  "duplicates": 15,
  "junk": {
   "service": 6,
   "ads": 2
  },
  "dictionary_url": "/methodology/#words"
 },
 "evidence_items": [
  {
   "observation_id": "n-d5bf6b15d5824fa32f3b3b82",
   "url": "/evidence/?pick=n-d5bf6b15d5824fa32f3b3b82",
   "quote_text": "Enzo Maresca has made a total of three changes to his Manchester City starting lineup",
   "fragment_from": 372,
   "fragment_to": 457,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/man-city/news/forest-vs-man-city-confirmed-xis-delap-yates-oreilly-anderson-decisions-made_608685.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "49dafa2fc5fbbefd600e4ceab4ebfde24aabf8a364b38692bab956f777160530",
    "material_removed": false
   },
   "published_at": "2026-11-07T16:22:00.000Z",
   "detected_at": "2026-11-07T17:11:48.555Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-07T16:22:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-07T16:22:00.000Z",
    "detected_at": "2026-11-07T17:11:48.555Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-be30c16daba9c3124e00259f",
   "url": "/evidence/?pick=n-be30c16daba9c3124e00259f",
   "quote_text": "Oliver Glasner has promised \"changes\" at Nottingham Forest ahead of Saturday’s Premier League home",
   "fragment_from": 324,
   "fragment_to": 422,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/nottingham-forest/predicted-lineups/delap-or-wood-munoz-or-aina-predicted-nottm-forest-lineup-vs-man-city_608421.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "ab1543c884caedd413a1b9d9dbee8f9fdcbb6ca14751abfaf4d699ed1675e38c",
    "material_removed": false
   },
   "published_at": "2026-11-05T08:05:00.000Z",
   "detected_at": "2026-11-07T07:11:08.991Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T08:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T08:05:00.000Z",
    "detected_at": "2026-11-07T07:11:08.991Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-5733792457a7fd767e39efe9",
   "url": "/evidence/?pick=n-5733792457a7fd767e39efe9",
   "quote_text": "Nottingham Forest lineup vs. Man City: Predicted XI for Premier League clash",
   "fragment_from": 0,
   "fragment_to": 76,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/nottingham-forest/predicted-lineups/delap-or-wood-munoz-or-aina-predicted-nottm-forest-lineup-vs-man-city_608421.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "ab1543c884caedd413a1b9d9dbee8f9fdcbb6ca14751abfaf4d699ed1675e38c",
    "material_removed": false
   },
   "published_at": "2026-11-05T08:05:00.000Z",
   "detected_at": "2026-11-07T07:11:08.991Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T08:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T08:05:00.000Z",
    "detected_at": "2026-11-07T07:11:08.991Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-d34cf56972ed5293aefc1f27",
   "url": "/evidence/?pick=n-d34cf56972ed5293aefc1f27",
   "quote_text": "Thomas Tuchel has admitted that Everton midfielder Kiernan Dewsbury-Hall was “very close” to earning",
   "fragment_from": 310,
   "fragment_to": 410,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/news/tuchel-makes-feelings-clear-on-dewsbury-hall-after-england-omission_608603.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "268fa74eeb4fc0bb2bf59a098adc63ccb35920b07b1ef80402b3913949d53fb2",
    "material_removed": false
   },
   "published_at": "2026-11-06T14:10:00.000Z",
   "detected_at": "2026-11-07T06:10:14.377Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T14:10:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T14:10:00.000Z",
    "detected_at": "2026-11-07T06:10:14.377Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-7b5cc49c3903f40e24009bde",
   "url": "/evidence/?pick=n-7b5cc49c3903f40e24009bde",
   "quote_text": "Dewsbury-Hall is expected to start for Everton in tonight’s Premier League clash at home against",
   "fragment_from": 2907,
   "fragment_to": 3003,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/news/tuchel-makes-feelings-clear-on-dewsbury-hall-after-england-omission_608603.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "268fa74eeb4fc0bb2bf59a098adc63ccb35920b07b1ef80402b3913949d53fb2",
    "material_removed": false
   },
   "published_at": "2026-11-06T14:10:00.000Z",
   "detected_at": "2026-11-07T06:10:14.377Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T14:10:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T14:10:00.000Z",
    "detected_at": "2026-11-07T06:10:14.377Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-bd2c410aaee531c09702b5af",
   "url": "/evidence/?pick=n-bd2c410aaee531c09702b5af",
   "quote_text": "Out: Jacob Ramsey (suspended), Joelinton (unspecified), Tino Livramento (knee), Ewen Jaouen (hamstring",
   "fragment_from": 858,
   "fragment_to": 960,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/fulham/injury-news/team-news/fulham-vs-newcastle-injury-suspension-list-predicted-xis_608432.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c5a5c22e87b1a00160232931bb0da7813e38e9362a42c123f630e8ea0588b328",
    "material_removed": false
   },
   "published_at": "2026-11-06T15:00:00.000Z",
   "detected_at": "2026-11-07T05:10:19.134Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T15:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T15:00:00.000Z",
    "detected_at": "2026-11-07T05:10:19.134Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-dbca2ae3d5d1c66626b3ad59",
   "url": "/evidence/?pick=n-dbca2ae3d5d1c66626b3ad59",
   "quote_text": "Out: Tom Cairney (knee)",
   "fragment_from": 688,
   "fragment_to": 711,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/fulham/injury-news/team-news/fulham-vs-newcastle-injury-suspension-list-predicted-xis_608432.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c5a5c22e87b1a00160232931bb0da7813e38e9362a42c123f630e8ea0588b328",
    "material_removed": false
   },
   "published_at": "2026-11-06T15:00:00.000Z",
   "detected_at": "2026-11-07T05:10:19.134Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T15:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T15:00:00.000Z",
    "detected_at": "2026-11-07T05:10:19.134Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-4cff720b3c78bb1958051a49",
   "url": "/evidence/?pick=n-4cff720b3c78bb1958051a49",
   "quote_text": "Sports Mole's predicted XI: Leno; Castagne, Affengruber, Bassey, Robinson; Berge, Charles; Bobb",
   "fragment_from": 729,
   "fragment_to": 824,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/fulham/injury-news/team-news/fulham-vs-newcastle-injury-suspension-list-predicted-xis_608432.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c5a5c22e87b1a00160232931bb0da7813e38e9362a42c123f630e8ea0588b328",
    "material_removed": false
   },
   "published_at": "2026-11-06T15:00:00.000Z",
   "detected_at": "2026-11-07T05:10:19.134Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T15:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T15:00:00.000Z",
    "detected_at": "2026-11-07T05:10:19.134Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-8f36e5cb6c4fb0c004707cca",
   "url": "/evidence/?pick=n-8f36e5cb6c4fb0c004707cca",
   "quote_text": "While Tuchel - who announced his latest England squad on Friday - is hopeful that Barry will remain his number two, he is not surprised to see the “highest-level coach” linked with Premier League clubs.",
   "fragment_from": 1034,
   "fragment_to": 1236,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/crystal-palace/news/highest-level-coach-tuchels-stance-on-barry-amid-crystal-palace-links_608622.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "b0624aa378915dbbe227e98c7062bbe6ac12d6844c209fd1492c06ad4b119fad",
    "material_removed": false
   },
   "published_at": "2026-11-06T17:00:19.000Z",
   "detected_at": "2026-11-07T05:10:16.887Z",
   "executed_at": null,
   "statement_class": "opinion",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T17:00:19.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T17:00:19.000Z",
    "detected_at": "2026-11-07T05:10:16.887Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-30a1184ef3275ea8badf63fa",
   "url": "/evidence/?pick=n-30a1184ef3275ea8badf63fa",
   "quote_text": "Should the Eagles lose at home to Liverpool on Sunday, the club’s hierarchy may have a big decision to make over whether to stick with under-pressure Sage or bring in a fresh face to turn the club’s fortunes around.",
   "fragment_from": 817,
   "fragment_to": 1032,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/crystal-palace/news/highest-level-coach-tuchels-stance-on-barry-amid-crystal-palace-links_608622.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "b0624aa378915dbbe227e98c7062bbe6ac12d6844c209fd1492c06ad4b119fad",
    "material_removed": false
   },
   "published_at": "2026-11-06T17:00:19.000Z",
   "detected_at": "2026-11-07T05:10:16.887Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T17:00:19.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T17:00:19.000Z",
    "detected_at": "2026-11-07T05:10:16.887Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-694889501cea870e1a5db235",
   "url": "/evidence/?pick=n-694889501cea870e1a5db235",
   "quote_text": "England manager Thomas Tuchel has responded to speculation linking his assistant coach Anthony Barry with the Crystal Palace job.",
   "fragment_from": 300,
   "fragment_to": 429,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/crystal-palace/news/highest-level-coach-tuchels-stance-on-barry-amid-crystal-palace-links_608622.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "b0624aa378915dbbe227e98c7062bbe6ac12d6844c209fd1492c06ad4b119fad",
    "material_removed": false
   },
   "published_at": "2026-11-06T17:00:19.000Z",
   "detected_at": "2026-11-07T05:10:16.887Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T17:00:19.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T17:00:19.000Z",
    "detected_at": "2026-11-07T05:10:16.887Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-6be48ff84ead4b5e953c4793",
   "url": "/evidence/?pick=n-6be48ff84ead4b5e953c4793",
   "quote_text": "Sports Mole's predicted XI: Donnarumma; Nunes, Khusanov, Dias, Gvardiol; Anderson, Fernandez; Ndiaye",
   "fragment_from": 1086,
   "fragment_to": 1186,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/nottingham-forest/injury-news/team-news/nottm-forest-vs-man-city-injury-suspension-list-predicted-xis_608423.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "a6091970758d78451025a4c38a9badb2a4d0473893233cf8573d178c8ad3b9a9",
    "material_removed": false
   },
   "published_at": "2026-11-06T17:30:00.000Z",
   "detected_at": "2026-11-06T21:10:32.414Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T17:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T17:30:00.000Z",
    "detected_at": "2026-11-06T21:10:32.414Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-3e3804c0779f30f5f3e8c581",
   "url": "/evidence/?pick=n-3e3804c0779f30f5f3e8c581",
   "quote_text": "Sports Mole's predicted XI: Sels; Cunha, Milenkovic, Murillo; Munoz, McAtee, Schlager, Williams; Ndoye",
   "fragment_from": 886,
   "fragment_to": 988,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/nottingham-forest/injury-news/team-news/nottm-forest-vs-man-city-injury-suspension-list-predicted-xis_608423.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "a6091970758d78451025a4c38a9badb2a4d0473893233cf8573d178c8ad3b9a9",
    "material_removed": false
   },
   "published_at": "2026-11-06T17:30:00.000Z",
   "detected_at": "2026-11-06T21:10:32.414Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T17:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T17:30:00.000Z",
    "detected_at": "2026-11-06T21:10:32.414Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-77e8d20a14b3f28b80e3e049",
   "url": "/evidence/?pick=n-77e8d20a14b3f28b80e3e049",
   "quote_text": "It remains to be seen whether O'Reilly will be involved against Nottingham Forest this weekend",
   "fragment_from": 4295,
   "fragment_to": 4389,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/injury-news/news/what-he-needs-why-oreillys-england-omission-is-beneficial-for-all-parties_608596.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "15670f34e57bd2e9bf6c0de70eca870c54a7cde065bf9bc9a5175f6dcf85343f",
    "material_removed": false
   },
   "published_at": "2026-11-06T13:27:51.000Z",
   "detected_at": "2026-11-06T14:11:14.048Z",
   "executed_at": null,
   "statement_class": "opinion",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T13:27:51.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T13:27:51.000Z",
    "detected_at": "2026-11-06T14:11:14.048Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-67376c328d26a36e26a26dd0",
   "url": "/evidence/?pick=n-67376c328d26a36e26a26dd0",
   "quote_text": "O’Reilly has predominantly been dealing with a persistent back problem that he sustained at the",
   "fragment_from": 1029,
   "fragment_to": 1124,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/injury-news/news/what-he-needs-why-oreillys-england-omission-is-beneficial-for-all-parties_608596.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "15670f34e57bd2e9bf6c0de70eca870c54a7cde065bf9bc9a5175f6dcf85343f",
    "material_removed": false
   },
   "published_at": "2026-11-06T13:27:51.000Z",
   "detected_at": "2026-11-06T14:11:14.048Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T13:27:51.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T13:27:51.000Z",
    "detected_at": "2026-11-06T14:11:14.048Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-f9c16941e34f0357cc9d1a47",
   "url": "/evidence/?pick=n-f9c16941e34f0357cc9d1a47",
   "quote_text": "Nico O'Reilly has been left out of the latest England squad due to fitness-related issues",
   "fragment_from": 295,
   "fragment_to": 384,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/injury-news/news/what-he-needs-why-oreillys-england-omission-is-beneficial-for-all-parties_608596.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "15670f34e57bd2e9bf6c0de70eca870c54a7cde065bf9bc9a5175f6dcf85343f",
    "material_removed": false
   },
   "published_at": "2026-11-06T13:27:51.000Z",
   "detected_at": "2026-11-06T14:11:14.048Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T13:27:51.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T13:27:51.000Z",
    "detected_at": "2026-11-06T14:11:14.048Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-6944d0614ba884ff81846836",
   "url": "/evidence/?pick=n-6944d0614ba884ff81846836",
   "quote_text": "Sports Mole's predicted XI: Kinsky; Porro, Van Hecke, Van de Ven, Robertson; Fernandes, Tonali",
   "fragment_from": 1081,
   "fragment_to": 1175,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/leeds-united/injury-news/team-news/leeds-vs-spurs-injury-suspension-list-predicted-xis_608428.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "8f05c8848cb85dbe95ab308128b256b880208e87a23ed9d2244bf86b6e73cb11",
    "material_removed": false
   },
   "published_at": "2026-11-06T12:30:00.000Z",
   "detected_at": "2026-11-06T13:10:27.825Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T12:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T12:30:00.000Z",
    "detected_at": "2026-11-06T13:10:27.825Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-e96efc3f2d02740e6f7272ea",
   "url": "/evidence/?pick=n-e96efc3f2d02740e6f7272ea",
   "quote_text": "Sports Mole's predicted XI: Trafford; Justin, Elvedi, Muharemovic; Bogle, Ampadu, Tanaka, Gudmundsson",
   "fragment_from": 794,
   "fragment_to": 895,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/leeds-united/injury-news/team-news/leeds-vs-spurs-injury-suspension-list-predicted-xis_608428.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "8f05c8848cb85dbe95ab308128b256b880208e87a23ed9d2244bf86b6e73cb11",
    "material_removed": false
   },
   "published_at": "2026-11-06T12:30:00.000Z",
   "detected_at": "2026-11-06T13:10:27.825Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-06T12:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-06T12:30:00.000Z",
    "detected_at": "2026-11-06T13:10:27.825Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-84689d79f4a89a819d7328d1",
   "url": "/authors/oliver-thomas/picks/4/#pick-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
  },
  {
   "observation_id": "n-35633d860873048a276f71bb",
   "url": "/evidence/?pick=n-35633d860873048a276f71bb",
   "quote_text": "Raul Jimenez still out with a long-term ankle injury",
   "fragment_from": 4427,
   "fragment_to": 4479,
   "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": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-bfc9172078654cca6468166b",
   "url": "/evidence/?pick=n-bfc9172078654cca6468166b",
   "quote_text": "Sam Smith is facing a \"significant\" spell in the sidelined with a knee injury",
   "fragment_from": 3564,
   "fragment_to": 3641,
   "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": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-3d8d45bdbf6b9587a6aab0c8",
   "url": "/authors/oliver-thomas/picks/4/#pick-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
  },
  {
   "observation_id": "n-9353cf3e36d7fe07d9ea67cf",
   "url": "/authors/oliver-thomas/picks/4/#pick-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
  },
  {
   "observation_id": "n-74a7c2753a636644436016d2",
   "url": "/evidence/?pick=n-74a7c2753a636644436016d2",
   "quote_text": "Ryan Sessegnon is available for selection after serving a three-match suspension and he is set to rival",
   "fragment_from": 443,
   "fragment_to": 546,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/fulham/predicted-lineups/stick-or-twist-for-arbeloa-predicted-fulham-lineup-vs-newcastle_608430.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "3f30c47e6974f687162c60a379520968c68f50168349ce0dbd08bf36d7be9e11",
    "material_removed": false
   },
   "published_at": "2026-11-05T20:05:00.000Z",
   "detected_at": "2026-11-05T22:10:25.567Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T20:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T20:05:00.000Z",
    "detected_at": "2026-11-05T22:10:25.567Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-4e81e6e678cabff07c49fd5d",
   "url": "/evidence/?pick=n-4e81e6e678cabff07c49fd5d",
   "quote_text": "Fulham head coach Alvaro Arbeloa is set to have a fully-fit squad for Saturday’s Premier League clash",
   "fragment_from": 299,
   "fragment_to": 400,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/fulham/predicted-lineups/stick-or-twist-for-arbeloa-predicted-fulham-lineup-vs-newcastle_608430.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "3f30c47e6974f687162c60a379520968c68f50168349ce0dbd08bf36d7be9e11",
    "material_removed": false
   },
   "published_at": "2026-11-05T20:05:00.000Z",
   "detected_at": "2026-11-05T22:10:25.567Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T20:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T20:05:00.000Z",
    "detected_at": "2026-11-05T22:10:25.567Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-b3330ec9371be389202a0942",
   "url": "/evidence/?pick=n-b3330ec9371be389202a0942",
   "quote_text": "Hornicek; Dedic, Schar, Burn, Hall; Willock, Gonzalez; Elanga, Wissa, Barnes; Osula",
   "fragment_from": 1717,
   "fragment_to": 1800,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/newcastle-united/predicted-lineups/who-replaces-injured-joelinton-predicted-newcastle-lineup-vs-fulham_608431.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "fa4788c1abd989b5294f0888384813fc2a03b4c46df980b8f68bf5a312b4cf31",
    "material_removed": false
   },
   "published_at": "2026-11-05T20:05:00.000Z",
   "detected_at": "2026-11-05T22:10:24.178Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T20:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T20:05:00.000Z",
    "detected_at": "2026-11-05T22:10:24.178Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-bd35f0656c7aca6d3b9b46af",
   "url": "/evidence/?pick=n-bd35f0656c7aca6d3b9b46af",
   "quote_text": "Joelinton picked up an unspecified injury in the Magpies’ 1-0 home defeat to Everton on Monday",
   "fragment_from": 425,
   "fragment_to": 519,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/newcastle-united/predicted-lineups/who-replaces-injured-joelinton-predicted-newcastle-lineup-vs-fulham_608431.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "fa4788c1abd989b5294f0888384813fc2a03b4c46df980b8f68bf5a312b4cf31",
    "material_removed": false
   },
   "published_at": "2026-11-05T20:05:00.000Z",
   "detected_at": "2026-11-05T22:10:24.178Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T20:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T20:05:00.000Z",
    "detected_at": "2026-11-05T22:10:24.178Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-b2bce949e243ce2bdde78e1c",
   "url": "/evidence/?pick=n-b2bce949e243ce2bdde78e1c",
   "quote_text": "Newcastle lineup vs. Fulham: Predicted XI for Premier League clash",
   "fragment_from": 0,
   "fragment_to": 66,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/newcastle-united/predicted-lineups/who-replaces-injured-joelinton-predicted-newcastle-lineup-vs-fulham_608431.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "fa4788c1abd989b5294f0888384813fc2a03b4c46df980b8f68bf5a312b4cf31",
    "material_removed": false
   },
   "published_at": "2026-11-05T20:05:00.000Z",
   "detected_at": "2026-11-05T22:10:24.178Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T20:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T20:05:00.000Z",
    "detected_at": "2026-11-05T22:10:24.178Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-94a08705d93d39f1e9adadc7",
   "url": "/evidence/?pick=n-94a08705d93d39f1e9adadc7",
   "quote_text": "Wilson Odobert (knee), Mykhaylo Mudryk (ankle) and Xavi Simons (ACL) all remain out",
   "fragment_from": 4521,
   "fragment_to": 4604,
   "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": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-3d92cb8f303c32b33898bfd1",
   "url": "/evidence/?pick=n-3d92cb8f303c32b33898bfd1",
   "quote_text": "Leeds duo Noah Okafor (adductor) and Anton Stach (broken toe) remain major doubts",
   "fragment_from": 3650,
   "fragment_to": 3731,
   "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": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-f3489700d8c78a66623da3ba",
   "url": "/evidence/?pick=n-f3489700d8c78a66623da3ba",
   "quote_text": "we can envisage the spoils being shared in a low-scoring draw on this occasion.",
   "fragment_from": 5834,
   "fragment_to": 5913,
   "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": "opinion",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-1e0cc7c698d881de1df99781",
   "url": "/authors/oliver-thomas/picks/4/#pick-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
  },
  {
   "observation_id": "n-962066df3b42a30e3e08fa35",
   "url": "/evidence/?pick=n-962066df3b42a30e3e08fa35",
   "quote_text": "Leeds United will assess the conditions of four players ahead of Saturday’s Premier League clash",
   "fragment_from": 295,
   "fragment_to": 391,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/leeds-united/predicted-lineups/calvert-lewin-okafor-stach-decisions-predicted-leeds-lineup-vs-spurs_608426.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "3616f72ae2101e43efc282ecedc1a47a7a11b4985061f6f3f472498318f99a62",
    "material_removed": false
   },
   "published_at": "2026-11-05T16:05:00.000Z",
   "detected_at": "2026-11-05T21:10:11.237Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T16:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T16:05:00.000Z",
    "detected_at": "2026-11-05T21:10:11.237Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-6d71b88852fe8a1e161bf6cc",
   "url": "/evidence/?pick=n-6d71b88852fe8a1e161bf6cc",
   "quote_text": "Head coach Roberto De Zerbi is not expected to make wholesale changes to a side that won their third Premier League game in a row last weekend, beating Crystal Palace 2-0 on home soil.",
   "fragment_from": 930,
   "fragment_to": 1114,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/spurs/predicted-lineups/two-changes-for-de-zerbi-predicted-spurs-lineup-vs-leeds_608427.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "5c6c9014c1b45ff8864e0fa292885f49be37b7ed66198cb39c1f1b829c4899c5",
    "material_removed": false
   },
   "published_at": "2026-11-05T16:05:00.000Z",
   "detected_at": "2026-11-05T20:10:41.993Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T16:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T16:05:00.000Z",
    "detected_at": "2026-11-05T20:10:41.993Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-0eed65c217346fea9fc60df5",
   "url": "/evidence/?pick=n-0eed65c217346fea9fc60df5",
   "quote_text": "Xavi Simons is believed to be making positive progress in his recovery from an ACL injury and could return soon than anticipated.",
   "fragment_from": 422,
   "fragment_to": 551,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/spurs/predicted-lineups/two-changes-for-de-zerbi-predicted-spurs-lineup-vs-leeds_608427.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "5c6c9014c1b45ff8864e0fa292885f49be37b7ed66198cb39c1f1b829c4899c5",
    "material_removed": false
   },
   "published_at": "2026-11-05T16:05:00.000Z",
   "detected_at": "2026-11-05T20:10:41.993Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T16:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T16:05:00.000Z",
    "detected_at": "2026-11-05T20:10:41.993Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-cbf8eb8fcd75f51d52f67bf5",
   "url": "/evidence/?pick=n-cbf8eb8fcd75f51d52f67bf5",
   "quote_text": "Tottenham Hotspur are set to be without at least three players for Saturday’s Premier League clash with Leeds United at Elland Road.",
   "fragment_from": 288,
   "fragment_to": 420,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/spurs/predicted-lineups/two-changes-for-de-zerbi-predicted-spurs-lineup-vs-leeds_608427.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "5c6c9014c1b45ff8864e0fa292885f49be37b7ed66198cb39c1f1b829c4899c5",
    "material_removed": false
   },
   "published_at": "2026-11-05T16:05:00.000Z",
   "detected_at": "2026-11-05T20:10:41.993Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T16:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T16:05:00.000Z",
    "detected_at": "2026-11-05T20:10:41.993Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-25b971a18731e3f4d72b4a0a",
   "url": "/evidence/?pick=n-25b971a18731e3f4d72b4a0a",
   "quote_text": "With Gravenberch facing a spell on the sidelines through injury and Szoboszlai having only just recovered",
   "fragment_from": 2482,
   "fragment_to": 2587,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/liverpool/transfer-talk/news/liverpool-in-advanced-talks-over-new-contract-for-trusted-iraola-favourite_608479.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "7b4ba5d26b96b2000f156713ed69f8a0f9c2b1e19b3102cd7779080f8504bab9",
    "material_removed": false
   },
   "published_at": "2026-11-05T12:02:35.000Z",
   "detected_at": "2026-11-05T14:10:11.986Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T12:02:35.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T12:02:35.000Z",
    "detected_at": "2026-11-05T14:10:11.986Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-9576dfc0d27096ab7b8dce58",
   "url": "/evidence/?pick=n-9576dfc0d27096ab7b8dce58",
   "quote_text": "The Reds suffered a disappointing 3-2 Champions League defeat away against Fenerbahce on Wednesday",
   "fragment_from": 410,
   "fragment_to": 508,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/liverpool/transfer-talk/news/liverpool-in-advanced-talks-over-new-contract-for-trusted-iraola-favourite_608479.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "7b4ba5d26b96b2000f156713ed69f8a0f9c2b1e19b3102cd7779080f8504bab9",
    "material_removed": false
   },
   "published_at": "2026-11-05T12:02:35.000Z",
   "detected_at": "2026-11-05T14:10:11.986Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T12:02:35.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T12:02:35.000Z",
    "detected_at": "2026-11-05T14:10:11.986Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-401fbdcb1e4c658d8c2864a3",
   "url": "/evidence/?pick=n-401fbdcb1e4c658d8c2864a3",
   "quote_text": "Liverpool have reportedly entered advanced negotiations with teenage starlet Trey Nyoni over a new contract.",
   "fragment_from": 300,
   "fragment_to": 408,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/liverpool/transfer-talk/news/liverpool-in-advanced-talks-over-new-contract-for-trusted-iraola-favourite_608479.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "7b4ba5d26b96b2000f156713ed69f8a0f9c2b1e19b3102cd7779080f8504bab9",
    "material_removed": false
   },
   "published_at": "2026-11-05T12:02:35.000Z",
   "detected_at": "2026-11-05T14:10:11.986Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T12:02:35.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T12:02:35.000Z",
    "detected_at": "2026-11-05T14:10:11.986Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-1f06ac5ee3cd1a9a2c66a2f2",
   "url": "/evidence/?pick=n-1f06ac5ee3cd1a9a2c66a2f2",
   "quote_text": "CR7 has previously stated that “this is probably my last year of football, and I want to leave a spectacular legacy”",
   "fragment_from": 4434,
   "fragment_to": 4550,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/portugal/news/its-official-ronaldo-confirms-portugal-retirement-with-video-statement_608476.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "e5f7dfc93f00f74888cf50442841ed2aa0532e9bdd697940e19ac96a7ebad88f",
    "material_removed": false
   },
   "published_at": "2026-11-05T11:41:00.000Z",
   "detected_at": "2026-11-05T12:10:30.934Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T11:41:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T11:41:00.000Z",
    "detected_at": "2026-11-05T12:10:30.934Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-5d66b2aeb780086d161d7a75",
   "url": "/evidence/?pick=n-5d66b2aeb780086d161d7a75",
   "quote_text": "Ronaldo’s decision to retire from Portugal duty means that he will miss November’s international fixtures",
   "fragment_from": 3893,
   "fragment_to": 3998,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/portugal/news/its-official-ronaldo-confirms-portugal-retirement-with-video-statement_608476.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "e5f7dfc93f00f74888cf50442841ed2aa0532e9bdd697940e19ac96a7ebad88f",
    "material_removed": false
   },
   "published_at": "2026-11-05T11:41:00.000Z",
   "detected_at": "2026-11-05T12:10:30.934Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T11:41:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T11:41:00.000Z",
    "detected_at": "2026-11-05T12:10:30.934Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-2aa7a87a781131a299c85e27",
   "url": "/evidence/?pick=n-2aa7a87a781131a299c85e27",
   "quote_text": "Cristiano Ronaldo: Portugal icon releases video statement confirming international retirement",
   "fragment_from": 0,
   "fragment_to": 93,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/portugal/news/its-official-ronaldo-confirms-portugal-retirement-with-video-statement_608476.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "e5f7dfc93f00f74888cf50442841ed2aa0532e9bdd697940e19ac96a7ebad88f",
    "material_removed": false
   },
   "published_at": "2026-11-05T11:41:00.000Z",
   "detected_at": "2026-11-05T12:10:30.934Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T11:41:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T11:41:00.000Z",
    "detected_at": "2026-11-05T12:10:30.934Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-a5453b88c14a5ffabf2bce03",
   "url": "/evidence/?pick=n-a5453b88c14a5ffabf2bce03",
   "quote_text": "I want to win many more titles with this great club.",
   "fragment_from": 2248,
   "fragment_to": 2300,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/bayern-munich/transfer-talk/news/kane-surpasses-mbappe-as-record-breaking-bayern-contract-is-confirmed_608478.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "ac7e7fa944e304bd51a749d577aa69ca9fa48189355cd29ec30ebe54ffb10cee",
    "material_removed": false
   },
   "published_at": "2026-11-05T11:55:12.000Z",
   "detected_at": "2026-11-05T12:10:26.667Z",
   "executed_at": null,
   "statement_class": "opinion",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T11:55:12.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T11:55:12.000Z",
    "detected_at": "2026-11-05T12:10:26.667Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-131d8b4f234fb66455db84b5",
   "url": "/evidence/?pick=n-131d8b4f234fb66455db84b5",
   "quote_text": "Kane’s new deal is the most lucrative in Bayern’s history, with the striker now said to be the highest",
   "fragment_from": 962,
   "fragment_to": 1064,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/bayern-munich/transfer-talk/news/kane-surpasses-mbappe-as-record-breaking-bayern-contract-is-confirmed_608478.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "ac7e7fa944e304bd51a749d577aa69ca9fa48189355cd29ec30ebe54ffb10cee",
    "material_removed": false
   },
   "published_at": "2026-11-05T11:55:12.000Z",
   "detected_at": "2026-11-05T12:10:26.667Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T11:55:12.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T11:55:12.000Z",
    "detected_at": "2026-11-05T12:10:26.667Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-e110b8ef2b733d3c8b2dd9d8",
   "url": "/evidence/?pick=n-e110b8ef2b733d3c8b2dd9d8",
   "quote_text": "Bayern Munich have announced that 2026 Ballon d’Or winner Harry Kane has committed his future",
   "fragment_from": 378,
   "fragment_to": 471,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/bayern-munich/transfer-talk/news/kane-surpasses-mbappe-as-record-breaking-bayern-contract-is-confirmed_608478.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "ac7e7fa944e304bd51a749d577aa69ca9fa48189355cd29ec30ebe54ffb10cee",
    "material_removed": false
   },
   "published_at": "2026-11-05T11:55:12.000Z",
   "detected_at": "2026-11-05T12:10:26.667Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T11:55:12.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T11:55:12.000Z",
    "detected_at": "2026-11-05T12:10:26.667Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-c85bba015855c5909075c83c",
   "url": "/evidence/?pick=n-c85bba015855c5909075c83c",
   "quote_text": "Manchester City possible starting lineup:\n\nDonnarumma; Nunes, Khusanov, Dias, Gvardiol; Anderson",
   "fragment_from": 2000,
   "fragment_to": 2096,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/man-city/predicted-lineups/anderson-return-dias-doku-decisions-predicted-man-city-lineup-vs-nottm-forest_608422.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "40784b33a8353a1f369fa6c4eee28d430b99695ce7c130fddd336be8faa0a6ef",
    "material_removed": false
   },
   "published_at": "2026-11-05T08:05:00.000Z",
   "detected_at": "2026-11-05T09:10:17.291Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T08:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T08:05:00.000Z",
    "detected_at": "2026-11-05T09:10:17.291Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-b456314910ad0998ecdb6c8f",
   "url": "/evidence/?pick=n-b456314910ad0998ecdb6c8f",
   "quote_text": "Man City lineup vs. Nottingham Forest: Predicted XI for Premier League clash - Sports Mole",
   "fragment_from": 0,
   "fragment_to": 90,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/man-city/predicted-lineups/anderson-return-dias-doku-decisions-predicted-man-city-lineup-vs-nottm-forest_608422.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "40784b33a8353a1f369fa6c4eee28d430b99695ce7c130fddd336be8faa0a6ef",
    "material_removed": false
   },
   "published_at": "2026-11-05T08:05:00.000Z",
   "detected_at": "2026-11-05T09:10:17.291Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-05T08:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-05T08:05:00.000Z",
    "detected_at": "2026-11-05T09:10:17.291Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-8e9929de4f8181c1b055051e",
   "url": "/evidence/?pick=n-8e9929de4f8181c1b055051e",
   "quote_text": "Erling Haaland will captain Manchester City in tonight’s Champions League clash against RB Leipzig",
   "fragment_from": 414,
   "fragment_to": 512,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/man-city/champions-league/news/leipzig-vs-man-city-confirmed-xis-captain-haaland-as-cherki-foden-guehi-decisions-made_608404.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "43598f94ab57d21bcc5379e6b7c1e74282c2ca47b78da483e0c613486d577423",
    "material_removed": false
   },
   "published_at": "2026-11-04T18:52:17.000Z",
   "detected_at": "2026-11-04T19:10:02.884Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-04T18:52:17.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-04T18:52:17.000Z",
    "detected_at": "2026-11-04T19:10:02.884Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-7d8ae9a4ccedaef0ab35dfd8",
   "url": "/evidence/?pick=n-7d8ae9a4ccedaef0ab35dfd8",
   "quote_text": "RB Leipzig vs. Man City lineups confirmed: Captain Haaland as Cherki, Foden, Guehi decisions",
   "fragment_from": 0,
   "fragment_to": 92,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/man-city/champions-league/news/leipzig-vs-man-city-confirmed-xis-captain-haaland-as-cherki-foden-guehi-decisions-made_608404.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "43598f94ab57d21bcc5379e6b7c1e74282c2ca47b78da483e0c613486d577423",
    "material_removed": false
   },
   "published_at": "2026-11-04T18:52:17.000Z",
   "detected_at": "2026-11-04T19:10:02.884Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-04T18:52:17.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-04T18:52:17.000Z",
    "detected_at": "2026-11-04T19:10:02.884Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-354729f465a9eb17459643cf",
   "url": "/evidence/?pick=n-354729f465a9eb17459643cf",
   "quote_text": "Sports Mole's predicted XI: Vandevoordt; Baku, Orban, Lukeba, Raum; Banzuzi, El Aynaoui, Baumgartner",
   "fragment_from": 840,
   "fragment_to": 940,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/rb-leipzig/champions-league/team-news/rb-leipzig-vs-man-city-injury-suspension-list-predicted-xis_608242.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c0061a6eecc41f346e65807c85baa0ace25c725e1033d15d04987dda23e87e00",
    "material_removed": false
   },
   "published_at": "2026-11-03T20:00:00.000Z",
   "detected_at": "2026-11-03T21:10:13.469Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-03T20:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-03T20:00:00.000Z",
    "detected_at": "2026-11-03T21:10:13.469Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-81943474db6d20da1fee6a2a",
   "url": "/evidence/?pick=n-81943474db6d20da1fee6a2a",
   "quote_text": "Team News: RB Leipzig vs. Man City injury, suspension list, predicted XIs - Sports Mole",
   "fragment_from": 0,
   "fragment_to": 87,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/rb-leipzig/champions-league/team-news/rb-leipzig-vs-man-city-injury-suspension-list-predicted-xis_608242.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c0061a6eecc41f346e65807c85baa0ace25c725e1033d15d04987dda23e87e00",
    "material_removed": false
   },
   "published_at": "2026-11-03T20:00:00.000Z",
   "detected_at": "2026-11-03T21:10:13.469Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-03T20:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-03T20:00:00.000Z",
    "detected_at": "2026-11-03T21:10:13.469Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-66cf7a361300938e7cb04178",
   "url": "/evidence/?pick=n-66cf7a361300938e7cb04178",
   "quote_text": "Sparta Prague are still having to cope without Matej Rynes, Adam Karabec (both ankle)",
   "fragment_from": 3610,
   "fragment_to": 3695,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/sparta-prague/europa-league/preview/sparta-prague-vs-bournemouth-prediction-team-news-lineups_608305.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c7c4e8c6f387099e8a58eb7197aaa0de2252fd046166b076c79ea0852d2b38cd",
    "material_removed": false
   },
   "published_at": "2026-11-03T17:45:00.000Z",
   "detected_at": "2026-11-03T19:10:15.216Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-03T17:45:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-03T17:45:00.000Z",
    "detected_at": "2026-11-03T19:10:15.216Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-fe92438539d89fbbb6b825be",
   "url": "/authors/oliver-thomas/picks/4/#pick-n-fe92438539d89fbbb6b825be",
   "quote_text": "We say: Sparta Prague 0-2 Bournemouth",
   "fragment_from": 5150,
   "fragment_to": 5187,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/sparta-prague/europa-league/preview/sparta-prague-vs-bournemouth-prediction-team-news-lineups_608305.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c7c4e8c6f387099e8a58eb7197aaa0de2252fd046166b076c79ea0852d2b38cd",
    "material_removed": false
   },
   "published_at": "2026-11-03T17:45:00.000Z",
   "detected_at": "2026-11-03T19:10:15.216Z",
   "executed_at": null,
   "statement_class": "score_forecast",
   "status": "not_supported",
   "cause": "",
   "cause_code": "not_supported",
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-03T17:45:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-03T17:45:00.000Z",
    "detected_at": "2026-11-03T19:10:15.216Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-74aafbff98d6cb4536d1d13d",
   "url": "/evidence/?pick=n-74aafbff98d6cb4536d1d13d",
   "quote_text": "Both teams enter this fixture in desperate need of a positive result to ignite their respective campaigns",
   "fragment_from": 5147,
   "fragment_to": 5252,
   "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": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-149185db96bc246b34768990",
   "url": "/authors/oliver-thomas/picks/4/#pick-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
  },
  {
   "observation_id": "n-abec5ff2035ea5eccc4813ea",
   "url": "/evidence/?pick=n-abec5ff2035ea5eccc4813ea",
   "quote_text": "In need of a morale-boosting victory, out-of-sorts Crystal Palace welcome Hoffenheim to Selhurst Park",
   "fragment_from": 313,
   "fragment_to": 414,
   "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": "opinion",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-2d725df5d4eaa0daf68f5b0f",
   "url": "/evidence/?pick=n-2d725df5d4eaa0daf68f5b0f",
   "quote_text": "Crystal Palace trio Ismaila Sarr (groin), Takehiro Tomiyasu (calf) and Chadi Riad (knee) all remain",
   "fragment_from": 3599,
   "fragment_to": 3698,
   "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": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-704d4024a844a7068582f4c3",
   "url": "/authors/oliver-thomas/picks/4/#pick-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
  },
  {
   "observation_id": "n-5071258d2751cc97ad509814",
   "url": "/evidence/?pick=n-5071258d2751cc97ad509814",
   "quote_text": "Die Roten Bullen, now managed by former City defender Martin Demichelis",
   "fragment_from": 3009,
   "fragment_to": 3080,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/rb-leipzig/champions-league/how-to-watch/how-to-watch-rb-leipzig-vs-man-city-date-time-live-stream-and-tv-channel_608303.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "8ab33f69f5cc22a900d9cddeeda7da42c54b4bd70d2bfed20c3f691d0725439c",
    "material_removed": false
   },
   "published_at": "2026-11-03T09:00:00.000Z",
   "detected_at": "2026-11-03T11:09:59.145Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-03T09:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-03T09:00:00.000Z",
    "detected_at": "2026-11-03T11:09:59.145Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-b3b3e6450cd7bbe8e30f0ad4",
   "url": "/evidence/?pick=n-b3b3e6450cd7bbe8e30f0ad4",
   "quote_text": "Man City secured a 3-1 victory over the German club in their last visit to their stadium",
   "fragment_from": 1193,
   "fragment_to": 1281,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/rb-leipzig/champions-league/how-to-watch/how-to-watch-rb-leipzig-vs-man-city-date-time-live-stream-and-tv-channel_608303.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "8ab33f69f5cc22a900d9cddeeda7da42c54b4bd70d2bfed20c3f691d0725439c",
    "material_removed": false
   },
   "published_at": "2026-11-03T09:00:00.000Z",
   "detected_at": "2026-11-03T11:09:59.145Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-03T09:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-03T09:00:00.000Z",
    "detected_at": "2026-11-03T11:09:59.145Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-4b58228d2819dcc1b411ef47",
   "url": "/evidence/?pick=n-4b58228d2819dcc1b411ef47",
   "quote_text": "RB Leipzig vs. Man City will kick off at 20:00 UK time on Wednesday night.",
   "fragment_from": 740,
   "fragment_to": 814,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/rb-leipzig/champions-league/how-to-watch/how-to-watch-rb-leipzig-vs-man-city-date-time-live-stream-and-tv-channel_608303.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "8ab33f69f5cc22a900d9cddeeda7da42c54b4bd70d2bfed20c3f691d0725439c",
    "material_removed": false
   },
   "published_at": "2026-11-03T09:00:00.000Z",
   "detected_at": "2026-11-03T11:09:59.145Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-03T09:00:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-03T09:00:00.000Z",
    "detected_at": "2026-11-03T11:09:59.145Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-d491ff43282c144157a0af85",
   "url": "/evidence/?pick=n-d491ff43282c144157a0af85",
   "quote_text": "Erling Haaland has scored more goals against Leipzig (12 goals, eight games)",
   "fragment_from": 5105,
   "fragment_to": 5181,
   "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": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-ecf854c99750ac76e0c291a3",
   "url": "/evidence/?pick=n-ecf854c99750ac76e0c291a3",
   "quote_text": "RB Leipzig duo Assan Ouedraogo (shoulder) and Marc Guiu (muscle) remain sidelined with injuries",
   "fragment_from": 3659,
   "fragment_to": 3754,
   "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": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-45fa4257f3141f180495c1b7",
   "url": "/evidence/?pick=n-45fa4257f3141f180495c1b7",
   "quote_text": "Just three days after edging past Brighton & Hove Albion on penalties in the EFL Cup fourth round",
   "fragment_from": 705,
   "fragment_to": 802,
   "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": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-e5ba524cfe910b7409e870f6",
   "url": "/evidence/?pick=n-e5ba524cfe910b7409e870f6",
   "quote_text": "Former Manchester City defender Martin Demichelis will lead his RB Leipzig side",
   "fragment_from": 340,
   "fragment_to": 419,
   "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": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "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": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-804d99689e4ba90c74c50f29",
   "url": "/authors/oliver-thomas/picks/4/#pick-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
  },
  {
   "observation_id": "n-db6d7b3b3033d0ad82aca783",
   "url": "/evidence/?pick=n-db6d7b3b3033d0ad82aca783",
   "quote_text": "Kane sits joint-second on the all-time playmaking charts for England",
   "fragment_from": 8825,
   "fragment_to": 8893,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/feature/harry-kanes-extraordinary-england-career-in-numbers_608238.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c933592277481bd0d8a80ec44d094bd2810d56b3377d08419210e92b4a05b2ce",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:30:00.000Z",
   "detected_at": "2026-11-02T20:10:59.279Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:30:00.000Z",
    "detected_at": "2026-11-02T20:10:59.279Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-902b3dda0eff81c6a186d1b7",
   "url": "/evidence/?pick=n-902b3dda0eff81c6a186d1b7",
   "quote_text": "Kane marked his England debut with a memorable goal scored just 79 seconds after coming on as",
   "fragment_from": 7078,
   "fragment_to": 7171,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/feature/harry-kanes-extraordinary-england-career-in-numbers_608238.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c933592277481bd0d8a80ec44d094bd2810d56b3377d08419210e92b4a05b2ce",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:30:00.000Z",
   "detected_at": "2026-11-02T20:10:59.279Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:30:00.000Z",
    "detected_at": "2026-11-02T20:10:59.279Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-18ab74973c666dbb157429be",
   "url": "/evidence/?pick=n-18ab74973c666dbb157429be",
   "quote_text": "While Kane is England’s record goalscorer at World Cups with 14 goals, he is currently tied with",
   "fragment_from": 5533,
   "fragment_to": 5629,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/feature/harry-kanes-extraordinary-england-career-in-numbers_608238.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c933592277481bd0d8a80ec44d094bd2810d56b3377d08419210e92b4a05b2ce",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:30:00.000Z",
   "detected_at": "2026-11-02T20:10:59.279Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:30:00.000Z",
    "detected_at": "2026-11-02T20:10:59.279Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-a06a08b70003905ac86090f2",
   "url": "/evidence/?pick=n-a06a08b70003905ac86090f2",
   "quote_text": "He is also one of only 10 players in history to represent the men’s senior England team at least",
   "fragment_from": 2582,
   "fragment_to": 2678,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/feature/harry-kanes-extraordinary-england-career-in-numbers_608238.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c933592277481bd0d8a80ec44d094bd2810d56b3377d08419210e92b4a05b2ce",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:30:00.000Z",
   "detected_at": "2026-11-02T20:10:59.279Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:30:00.000Z",
    "detected_at": "2026-11-02T20:10:59.279Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-41ecfe8a657b4bdeb5c6b920",
   "url": "/evidence/?pick=n-41ecfe8a657b4bdeb5c6b920",
   "quote_text": "Kane will move above Shilton into outright first position on England’s all-time appearance list when",
   "fragment_from": 2354,
   "fragment_to": 2454,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/feature/harry-kanes-extraordinary-england-career-in-numbers_608238.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c933592277481bd0d8a80ec44d094bd2810d56b3377d08419210e92b4a05b2ce",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:30:00.000Z",
   "detected_at": "2026-11-02T20:10:59.279Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:30:00.000Z",
    "detected_at": "2026-11-02T20:10:59.279Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-97f5ed5839433cc4f367664b",
   "url": "/evidence/?pick=n-97f5ed5839433cc4f367664b",
   "quote_text": "Sports Mole provides a statistical breakdown of Kane's international career with England to date.",
   "fragment_from": 1166,
   "fragment_to": 1263,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/feature/harry-kanes-extraordinary-england-career-in-numbers_608238.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c933592277481bd0d8a80ec44d094bd2810d56b3377d08419210e92b4a05b2ce",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:30:00.000Z",
   "detected_at": "2026-11-02T20:10:59.279Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:30:00.000Z",
    "detected_at": "2026-11-02T20:10:59.279Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-365916a1ac44c6db3b775473",
   "url": "/evidence/?pick=n-365916a1ac44c6db3b775473",
   "quote_text": "Harry Kane will go down as one of England’s greatest-ever players, a widespread consensus enhanced",
   "fragment_from": 286,
   "fragment_to": 384,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/england/feature/harry-kanes-extraordinary-england-career-in-numbers_608238.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "c933592277481bd0d8a80ec44d094bd2810d56b3377d08419210e92b4a05b2ce",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:30:00.000Z",
   "detected_at": "2026-11-02T20:10:59.279Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:30:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:30:00.000Z",
    "detected_at": "2026-11-02T20:10:59.279Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-aac58b64be6a82cc93c903a3",
   "url": "/evidence/?pick=n-aac58b64be6a82cc93c903a3",
   "quote_text": "Manchester City manager Enzo Maresca will consider making a few changes to his starting lineup",
   "fragment_from": 332,
   "fragment_to": 426,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/man-city/champions-league/predicted-lineups/cherki-guehi-gvardiol-decisions-predicted-man-city-lineup-vs-rb-leipzig_608241.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "a07d4bb09d1920c2204c880168c40d5423933e616faadf2adad70e35e84cc99a",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:05:00.000Z",
   "detected_at": "2026-11-02T19:10:28.135Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:05:00.000Z",
    "detected_at": "2026-11-02T19:10:28.135Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-5f1266bbd2f3c451b46ef3d1",
   "url": "/evidence/?pick=n-5f1266bbd2f3c451b46ef3d1",
   "quote_text": "Man City lineup vs. RB Leipzig: Predicted XI for Champions League clash",
   "fragment_from": 0,
   "fragment_to": 71,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/man-city/champions-league/predicted-lineups/cherki-guehi-gvardiol-decisions-predicted-man-city-lineup-vs-rb-leipzig_608241.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "a07d4bb09d1920c2204c880168c40d5423933e616faadf2adad70e35e84cc99a",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:05:00.000Z",
   "detected_at": "2026-11-02T19:10:28.135Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "ambiguous",
   "cause": "",
   "cause_code": "ambiguous",
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:05:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:05:00.000Z",
    "detected_at": "2026-11-02T19:10:28.135Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-a4ba34b820ee7e8369115b7e",
   "url": "/evidence/?pick=n-a4ba34b820ee7e8369115b7e",
   "quote_text": "Newcastle United starting lineup: Hornicek; Dedic, Schar, Burn, Hall; Joelinton, Gonzalez; Elanga, Willock, Barnes; Osula",
   "fragment_from": 2714,
   "fragment_to": 2835,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/newcastle-united/news/newcastle-vs-everton-confirmed-xis-no-grealish-branthwaite-elanga-decisions-made_608284.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "64b3724fce50b866abe83e5bbeca05bb554c4580e6631fecb6fcccbc5a7f2e3a",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:49:00.000Z",
   "detected_at": "2026-11-02T19:10:23.241Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:49:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:49:00.000Z",
    "detected_at": "2026-11-02T19:10:23.241Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-4311b7a46910c59d53ff2663",
   "url": "/evidence/?pick=n-4311b7a46910c59d53ff2663",
   "quote_text": "Anthony Elanga will start his first match for Newcastle in almost two months since recovering from injury",
   "fragment_from": 1969,
   "fragment_to": 2074,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/newcastle-united/news/newcastle-vs-everton-confirmed-xis-no-grealish-branthwaite-elanga-decisions-made_608284.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "64b3724fce50b866abe83e5bbeca05bb554c4580e6631fecb6fcccbc5a7f2e3a",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:49:00.000Z",
   "detected_at": "2026-11-02T19:10:23.241Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:49:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:49:00.000Z",
    "detected_at": "2026-11-02T19:10:23.241Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-efba7a6db3c489ea59f25365",
   "url": "/evidence/?pick=n-efba7a6db3c489ea59f25365",
   "quote_text": "Jack Grealish has officially been left out of Everton’s squad for tonight’s Premier League clash",
   "fragment_from": 393,
   "fragment_to": 489,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/newcastle-united/news/newcastle-vs-everton-confirmed-xis-no-grealish-branthwaite-elanga-decisions-made_608284.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "64b3724fce50b866abe83e5bbeca05bb554c4580e6631fecb6fcccbc5a7f2e3a",
    "material_removed": false
   },
   "published_at": "2026-11-02T18:49:00.000Z",
   "detected_at": "2026-11-02T19:10:23.241Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T18:49:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T18:49:00.000Z",
    "detected_at": "2026-11-02T19:10:23.241Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-32e73c887b8f73307c629c15",
   "url": "/evidence/?pick=n-32e73c887b8f73307c629c15",
   "quote_text": "Tyrique George and Brennan Johnson appear to be the most likely duo to operate on the flanks",
   "fragment_from": 2075,
   "fragment_to": 2167,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/everton/news/why-grealish-is-dropped-again-from-everton-squad-for-newcastle-clash_608271.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "b1fad69d2dbf8996357c6f0b2a3541c8c6cbbe46476e573ecf2549be7a014a1d",
    "material_removed": false
   },
   "published_at": "2026-11-02T15:31:00.000Z",
   "detected_at": "2026-11-02T16:10:35.153Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T15:31:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T15:31:00.000Z",
    "detected_at": "2026-11-02T16:10:35.153Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-5d7a5c1635b64dd0c02f7af6",
   "url": "/evidence/?pick=n-5d7a5c1635b64dd0c02f7af6",
   "quote_text": "Jack Grealish is expected to be left out of Everton’s squad for tonight’s Premier League clash",
   "fragment_from": 345,
   "fragment_to": 439,
   "quote_allowed": true,
   "source_info": {
    "medium": "rss",
    "url": "https://www.sportsmole.co.uk/football/everton/news/why-grealish-is-dropped-again-from-everton-squad-for-newcastle-clash_608271.html",
    "display_name": null,
    "speaker": "Oliver Thomas",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "b1fad69d2dbf8996357c6f0b2a3541c8c6cbbe46476e573ecf2549be7a014a1d",
    "material_removed": false
   },
   "published_at": "2026-11-02T15:31:00.000Z",
   "detected_at": "2026-11-02T16:10:35.153Z",
   "executed_at": null,
   "statement_class": "no_event",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "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": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "dates": {
    "fragment_at": "2026-11-02T15:31:00.000Z",
    "fragment_basis": "element",
    "source_page_at": "2026-11-02T15:31:00.000Z",
    "detected_at": "2026-11-02T16:10:35.153Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "no_match_linked",
   "origin_words": "Date as stated by the source; no match is linked to this statement",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "statement",
   "authorship": null,
   "correction": null
  }
 ],
 "excluded_from_feed": {
  "ads": 0,
  "service": 5,
  "ruleset_version": "3"
 },
 "standing": {
  "titles": [
   {
    "code_name": "E-07",
    "display_name": "Draw at 4.00 · Crystal Palace v TSG Hoffenheim · 5 Nov 2026",
    "received_at": "2026-11-07T19:52:23.438Z",
    "window_kind": "event",
    "cause": null,
    "type_code": null,
    "bucket_code": "all",
    "bucket": "Long-price call",
    "measure": null,
    "place": null,
    "out_of": null,
    "n_bets": 1,
    "n_events": null,
    "amount": null,
    "ci_low": null,
    "ci_high": null,
    "ci_level": null,
    "fact": "Draw at 4.00 · Crystal Palace v TSG Hoffenheim · 5 Nov 2026",
    "rationale": "Draw called correctly at 4.00 (our pre-match price). 27 other tipsters and sources on this match, 3 right (24 named home win, 3 named draw). Data: live record. Term: a dated fact.",
    "provenance": "live",
    "rules_version": "catalog-1",
    "methodology_version": "catalog-1",
    "data_date": "2026-11-07T19:52:23.438Z",
    "valid_until": null,
    "anchor_id": "standing-e-07-all-event",
    "alt": "Oliver Thomas · Draw at 4.00 · Crystal Palace v TSG Hoffenheim · 5 Nov 2026 · Tracked by Forecast Record",
    "csv_url": null,
    "embed": "<a href=\"https://forecastrecord.com/authors/oliver-thomas/#title-long-price-call\" rel=\"nofollow\"><img src=\"https://forecastrecord.com/b/e-a37055f72f52c0fdfe8df63a/e-07-all-event-m-light.svg\" alt=\"Oliver Thomas · Draw at 4.00 · Crystal Palace v TSG Hoffenheim · 5 Nov 2026 · Tracked by Forecast Record\" width=\"860\" height=\"28\" loading=\"lazy\"></a>",
    "neighbours": [],
    "window_words": "On show until 3 Feb 2027",
    "measure_words": null,
    "amount_words": null,
    "interval_words": null,
    "title_tier": "dated_record",
    "status": "active",
    "status_reason": null,
    "event_at": "2026-11-05",
    "evidence_through": "2026-11-05",
    "earned_at": "2026-11-05",
    "published_at": "2026-11-06",
    "visible_until": "2027-02-03",
    "badge_label": "Correct at 4.00 · 5 Nov",
    "scope_words": null,
    "title_id": "zk-cda8b75b5b01b9f6938d",
    "evidence_items": [
     {
      "nid": "n-704d4024a844a7068582f4c3",
      "data": "2026-11-05",
      "match": "Crystal Palace v TSG Hoffenheim",
      "said_text": "Correct score: Crystal Palace 2-2 TSG Hoffenheim",
      "outcome_label": "score wrong · result right",
      "evidence_price": 4.0,
      "comparison": "27 other tipsters and sources on this match, 3 right (24 named home win, 3 named draw)",
      "url": "/authors/oliver-thomas/picks/4/#pick-n-704d4024a844a7068582f4c3"
     }
    ],
    "evidence_total": 1,
    "badge": {
     "variants": [
      {
       "size": "l",
       "theme": "light",
       "width": 1168,
       "height": 40,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/e-07-all-event-l-light.svg"
      },
      {
       "size": "l",
       "theme": "dark",
       "width": 1168,
       "height": 40,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/e-07-all-event-l-dark.svg"
      },
      {
       "size": "m",
       "theme": "light",
       "width": 860,
       "height": 28,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/e-07-all-event-m-light.svg"
      },
      {
       "size": "m",
       "theme": "dark",
       "width": 860,
       "height": 28,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/e-07-all-event-m-dark.svg"
      },
      {
       "size": "s",
       "theme": "light",
       "width": 671,
       "height": 20,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/e-07-all-event-s-light.svg"
      },
      {
       "size": "s",
       "theme": "dark",
       "width": 671,
       "height": 20,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/e-07-all-event-s-dark.svg"
      }
     ],
     "card_url": "/b/e-a37055f72f52c0fdfe8df63a/e-07-all-event-card.svg"
    },
    "profile_anchor": "title-cda8b75b5b01",
    "chance": {
     "contract_version": 1,
     "kind": "single",
     "priced": 1,
     "unpriced": 0,
     "hits": 1,
     "probability": 0.25,
     "one_in": 4,
     "log10": -0.6,
     "words": "1 in 4",
     "rule": "market probability (1/price) of this one pick",
     "note": "market prices include the bookmaker margin, so the chance is slightly overstated — a cautious figure"
    },
    "embed_anchor": "title-long-price-call"
   },
   {
    "code_name": "CS-10",
    "display_name": "Exact score 2–0 · Bradford City v Peterborough United · 27 Oct 2026",
    "received_at": "2026-11-07T19:52:23.438Z",
    "window_kind": "event",
    "cause": null,
    "type_code": null,
    "bucket_code": "all",
    "bucket": "Exact score called",
    "measure": null,
    "place": null,
    "out_of": null,
    "n_bets": 1,
    "n_events": null,
    "amount": null,
    "ci_low": null,
    "ci_high": null,
    "ci_level": null,
    "fact": "Exact score 2–0 · Bradford City v Peterborough United · 27 Oct 2026",
    "rationale": "Correct score 2–0 called before the match; 5 other tipsters and sources named an exact score on this match, 3 right. Data: live record. Term: a dated fact.",
    "provenance": "live",
    "rules_version": "catalog-1",
    "methodology_version": "catalog-1",
    "data_date": "2026-11-07T19:52:23.438Z",
    "valid_until": null,
    "anchor_id": "standing-cs-10-all-event",
    "alt": "Oliver Thomas · Exact score 2–0 · Bradford City v Peterborough United · 27 Oct 2026 · Tracked by Forecast Record",
    "csv_url": null,
    "embed": "<a href=\"https://forecastrecord.com/authors/oliver-thomas/#title-exact-score-called\" rel=\"nofollow\"><img src=\"https://forecastrecord.com/b/e-a37055f72f52c0fdfe8df63a/cs-10-all-event-m-light.svg\" alt=\"Oliver Thomas · Exact score 2–0 · Bradford City v Peterborough United · 27 Oct 2026 · Tracked by Forecast Record\" width=\"924\" height=\"28\" loading=\"lazy\"></a>",
    "neighbours": [],
    "window_words": "On show until 25 Jan 2027",
    "measure_words": null,
    "amount_words": null,
    "interval_words": null,
    "title_tier": "dated_record",
    "status": "active",
    "status_reason": null,
    "event_at": "2026-10-27",
    "evidence_through": "2026-10-27",
    "earned_at": "2026-10-27",
    "published_at": "2026-10-28",
    "visible_until": "2027-01-25",
    "badge_label": "Exact score 2–0 · 27 Oct",
    "scope_words": null,
    "title_id": "zk-39d5c69bf4ee6738bec4",
    "evidence_items": [
     {
      "nid": "n-982409b92f692e7a08449583",
      "data": "2026-10-27",
      "match": "Bradford City v Peterborough United",
      "said_text": "Correct score: Bradford City 2-0 Peterborough United",
      "outcome_label": "score right · result right",
      "evidence_price": null,
      "comparison": "5 other tipsters and sources named an exact score on this match, 3 right",
      "url": "/authors/oliver-thomas/picks/3/#pick-n-982409b92f692e7a08449583"
     }
    ],
    "evidence_total": 1,
    "badge": {
     "variants": [
      {
       "size": "l",
       "theme": "light",
       "width": 1256,
       "height": 40,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-all-event-l-light.svg"
      },
      {
       "size": "l",
       "theme": "dark",
       "width": 1256,
       "height": 40,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-all-event-l-dark.svg"
      },
      {
       "size": "m",
       "theme": "light",
       "width": 924,
       "height": 28,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-all-event-m-light.svg"
      },
      {
       "size": "m",
       "theme": "dark",
       "width": 924,
       "height": 28,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-all-event-m-dark.svg"
      },
      {
       "size": "s",
       "theme": "light",
       "width": 722,
       "height": 20,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-all-event-s-light.svg"
      },
      {
       "size": "s",
       "theme": "dark",
       "width": 722,
       "height": 20,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-all-event-s-dark.svg"
      }
     ],
     "card_url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-all-event-card.svg"
    },
    "profile_anchor": "title-39d5c69bf4ee",
    "chance": {
     "contract_version": 1,
     "kind": "single",
     "priced": 0,
     "unpriced": 1,
     "probability": null,
     "one_in": null,
     "words": "No recorded prices for these picks, so the chance cannot be measured."
    },
    "embed_anchor": "title-exact-score-called"
   },
   {
    "code_name": "CS-10",
    "display_name": "Exact score 3–1 · Aston Villa v Viking FK · 21 Oct 2026",
    "received_at": "2026-11-07T19:52:23.438Z",
    "window_kind": "event",
    "cause": null,
    "type_code": null,
    "bucket_code": "z-fd1100d01d",
    "bucket": "Exact score called",
    "measure": null,
    "place": null,
    "out_of": null,
    "n_bets": 1,
    "n_events": null,
    "amount": null,
    "ci_low": null,
    "ci_high": null,
    "ci_level": null,
    "fact": "Exact score 3–1 · Aston Villa v Viking FK · 21 Oct 2026",
    "rationale": "Correct score 3–1 called before the match; 10 other tipsters and sources named an exact score on this match, 4 right. Data: live record. Term: a dated fact.",
    "provenance": "live",
    "rules_version": "catalog-1",
    "methodology_version": "catalog-1",
    "data_date": "2026-11-07T19:52:23.438Z",
    "valid_until": null,
    "anchor_id": "standing-cs-10-z-fd1100d01d-event",
    "alt": "Oliver Thomas · Exact score 3–1 · Aston Villa v Viking FK · 21 Oct 2026 · Tracked by Forecast Record",
    "csv_url": null,
    "embed": "<a href=\"https://forecastrecord.com/authors/oliver-thomas/#title-exact-score-called-exact-score-called\" rel=\"nofollow\"><img src=\"https://forecastrecord.com/b/e-a37055f72f52c0fdfe8df63a/cs-10-z-fd1100d01d-event-m-light.svg\" alt=\"Oliver Thomas · Exact score 3–1 · Aston Villa v Viking FK · 21 Oct 2026 · Tracked by Forecast Record\" width=\"827\" height=\"28\" loading=\"lazy\"></a>",
    "neighbours": [],
    "window_words": "On show until 19 Jan 2027",
    "measure_words": null,
    "amount_words": null,
    "interval_words": null,
    "title_tier": "dated_record",
    "status": "active",
    "status_reason": null,
    "event_at": "2026-10-21",
    "evidence_through": "2026-10-21",
    "earned_at": "2026-10-21",
    "published_at": "2026-10-22",
    "visible_until": "2027-01-19",
    "badge_label": "Exact score 3–1 · 21 Oct",
    "scope_words": null,
    "title_id": "zk-fd1100d01d8e44ba84cb",
    "evidence_items": [
     {
      "nid": "n-233b1099b85e6d95449d1c7a",
      "data": "2026-10-21",
      "match": "Aston Villa v Viking FK",
      "said_text": "Correct score: Aston Villa 3-1 Viking FK",
      "outcome_label": "score right · result right",
      "evidence_price": null,
      "comparison": "10 other tipsters and sources named an exact score on this match, 4 right",
      "url": "/authors/oliver-thomas/picks/3/#pick-n-233b1099b85e6d95449d1c7a"
     }
    ],
    "evidence_total": 1,
    "badge": {
     "variants": [
      {
       "size": "l",
       "theme": "light",
       "width": 1124,
       "height": 40,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-z-fd1100d01d-event-l-light.svg"
      },
      {
       "size": "l",
       "theme": "dark",
       "width": 1124,
       "height": 40,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-z-fd1100d01d-event-l-dark.svg"
      },
      {
       "size": "m",
       "theme": "light",
       "width": 827,
       "height": 28,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-z-fd1100d01d-event-m-light.svg"
      },
      {
       "size": "m",
       "theme": "dark",
       "width": 827,
       "height": 28,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-z-fd1100d01d-event-m-dark.svg"
      },
      {
       "size": "s",
       "theme": "light",
       "width": 645,
       "height": 20,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-z-fd1100d01d-event-s-light.svg"
      },
      {
       "size": "s",
       "theme": "dark",
       "width": 645,
       "height": 20,
       "url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-z-fd1100d01d-event-s-dark.svg"
      }
     ],
     "card_url": "/b/e-a37055f72f52c0fdfe8df63a/cs-10-z-fd1100d01d-event-card.svg"
    },
    "profile_anchor": "title-fd1100d01d8e",
    "chance": {
     "contract_version": 1,
     "kind": "single",
     "priced": 0,
     "unpriced": 1,
     "probability": null,
     "one_in": null,
     "words": "No recorded prices for these picks, so the chance cannot be measured."
    },
    "embed_anchor": "title-exact-score-called-exact-score-called"
   }
  ],
  "publication_mode": "top20",
  "empty_reason": null,
  "rules_version": "catalog-1",
  "insufficient": [],
  "badges_on_page": 0,
  "header_titles": [
   {
    "title_id": "zk-39d5c69bf4ee6738bec4",
    "code_name": "CS-10",
    "title_tier": "dated_record",
    "badge_label": "Exact score 2–0 · 27 Oct",
    "body": "Exact score 2–0 · Bradford City v Peterborough United · 27 Oct 2026",
    "tier": null,
    "provenance": "live",
    "anchor_id": "title-39d5c69bf4ee",
    "event_at": "2026-10-27",
    "url": "/titles/cs-10-exact-score-called/"
   },
   {
    "title_id": "zk-cda8b75b5b01b9f6938d",
    "code_name": "E-07",
    "title_tier": "dated_record",
    "badge_label": "Correct at 4.00 · 5 Nov",
    "body": "Draw at 4.00 · Crystal Palace v TSG Hoffenheim · 5 Nov 2026",
    "tier": null,
    "provenance": "live",
    "anchor_id": "title-cda8b75b5b01",
    "event_at": "2026-11-05",
    "url": "/titles/e-07-long-price-call/"
   },
   {
    "title_id": "zk-fd1100d01d8e44ba84cb",
    "code_name": "CS-10",
    "title_tier": "dated_record",
    "badge_label": "Exact score 3–1 · 21 Oct",
    "body": "Exact score 3–1 · Aston Villa v Viking FK · 21 Oct 2026",
    "tier": null,
    "provenance": "live",
    "anchor_id": "title-fd1100d01d8e",
    "event_at": "2026-10-21",
    "url": "/titles/cs-10-exact-score-called/"
   }
  ],
  "record_origin": [
   {
    "portion": "live",
    "n": 38,
    "body": "38 recorded before kick-off · since 3 Oct 2026"
   }
  ],
  "recent_record": [
   {
    "code_name": "CS-10",
    "body": "Exact score 2–0 · Bradford City v Peterborough United · 27 Oct 2026",
    "event_at": "2026-10-27",
    "url": null,
    "provenance": "live",
    "anchor_id": "title-39d5c69bf4ee"
   },
   {
    "code_name": "E-07",
    "body": "Draw at 4.00 · Crystal Palace v TSG Hoffenheim · 5 Nov 2026",
    "event_at": "2026-11-05",
    "url": null,
    "provenance": "live",
    "anchor_id": "title-cda8b75b5b01"
   },
   {
    "code_name": "CS-10",
    "body": "Exact score 3–1 · Aston Villa v Viking FK · 21 Oct 2026",
    "event_at": "2026-10-21",
    "url": null,
    "provenance": "live",
    "anchor_id": "title-fd1100d01d8e"
   }
  ],
  "record_details": [
   {
    "code_name": "M-11",
    "body": "Most recorded: Correct score · 28 matches",
    "details_words": "Correct score 2/28 (28 matches); Match result (1X2) 2/8 (8 matches); Both teams to score 1/2 (2 matches)",
    "url": null,
    "provenance": "live",
    "display_name": "Most recorded bet type",
    "rule_href": "/titles/m-11-most-recorded-bet-type/"
   },
   {
    "code_name": "CS-01",
    "body": "Exact scores · 2/28",
    "details_words": null,
    "url": null,
    "provenance": "live",
    "display_name": "Exact scores",
    "rule_href": "/titles/cs-01-exact-scores/"
   },
   {
    "code_name": "C-01",
    "body": "Minority calls · 1/1",
    "details_words": "Result calls on matches with at least 8 other tipsters and sources, where at least 60.0% of them named another outcome.",
    "url": null,
    "provenance": "live",
    "display_name": "Minority calls",
    "rule_href": "/titles/c-01-minority-calls/"
   },
   {
    "code_name": "X-01",
    "body": "Longest price: correct at 4.00 · 5 Nov 2026",
    "details_words": "Crystal Palace v TSG Hoffenheim · Draw at 4.00 (our pre-match price) · from the predicted score: Correct score: Crystal Palace 2-2 TSG Hoffenheim",
    "url": "/authors/oliver-thomas/picks/4/#pick-n-704d4024a844a7068582f4c3",
    "provenance": "live",
    "display_name": "Correct at a long price",
    "rule_href": "/titles/x-01-correct-at-a-long-price/"
   }
  ],
  "history": []
 },
 "retro": null,
 "late": null,
 "price_vs_market": null,
 "record_summary": {
  "contract_version": "1",
  "entity_type": "person",
  "entity_words": "Individual author",
  "source": {
   "name": "sportsmole.co.uk",
   "url": "https://www.sportsmole.co.uk/football/fulham/preview/fulham-vs-newcastle-prediction-team-news-lineups_608429.html"
  },
  "observed_from": "2026-09-25",
  "observed_to": "2026-11-07",
  "data_as_of": "2026-11-07",
  "state": "settled",
  "series_code": "market_price",
  "series": "Recorded before kick-off, at our recorded market price",
  "restored": false,
  "headline_kind": "live_snapshot",
  "headline_part": "live",
  "settled_picks": 6,
  "matches": 6,
  "void": 0,
  "net_points_hundredths": -37000,
  "staked_hundredths": 60000,
  "return_percent": "-61.67",
  "stake_per_pick_hundredths": 10000,
  "period_from": "2026-10-10",
  "period_to": "2026-10-31",
  "status": "calculated",
  "method_version": "2.2",
  "short_history": true,
  "reason": null,
  "reasons": [],
  "sentence": "Forecast Record recorded 6 settled live picks by Oliver Thomas before kick-off across 6 matches between 10 and 31 October 2026. Won 1 of 6 settled live picks at our recorded market prices. Of the 56 predictions we hold for Oliver Thomas, 43 are linked to matches: 43 were recorded by us before kick-off. Figures as of 7 November 2026.",
  "numbers": [
   {
    "label": "Settled live picks",
    "value": "6",
    "anchor": "/methodology/#settled-pick",
    "note": null
   },
   {
    "label": "Matches",
    "value": "6",
    "anchor": "/methodology/#match",
    "note": null
   },
   {
    "label": "Net result",
    "value": "−370 points",
    "anchor": "/methodology/#settlement",
    "note": "100 points per pick"
   },
   {
    "label": "Return at our recorded market price",
    "value": "−61.7%",
    "anchor": "/methodology/#roi",
    "note": null
   }
  ],
  "limitations": [
   "This page combines Oliver Thomas across 2 platforms. The record above counts each prediction once, even when the same pick (match, market and selection) appeared on more than one platform; each platform keeps its own total under “Where Oliver Thomas publishes”."
  ],
  "other_series": [],
  "return_over_time": [],
  "return_over_time_parts": {
   "live": {
    "part": "live",
    "label": "Recorded by us before kick-off",
    "series_code": "market_price",
    "price_rule": "Return at our recorded market price",
    "x_axis": "match_date",
    "dated_note": "Dated by match day. Each pick was recorded by us before kick-off and settled after the match.",
    "settled_picks": 6,
    "matches": 6,
    "match_dates": 6,
    "period_from": "2026-10-10",
    "period_to": "2026-10-31",
    "stake_per_pick_hundredths": 10000,
    "final_points_hundredths": -37000,
    "low": {
     "date": "2026-10-31",
     "cumulative_points_hundredths": -37000,
     "after_picks": 6
    },
    "high": {
     "date": "2026-10-10",
     "cumulative_points_hundredths": 13000,
     "after_picks": 1
    },
    "line_drawn": false,
    "steps": [
     {
      "date": "2026-10-10",
      "cumulative_points_hundredths": 13000,
      "n": 1,
      "picks": 1
     },
     {
      "date": "2026-10-21",
      "cumulative_points_hundredths": 3000,
      "n": 2,
      "picks": 1
     },
     {
      "date": "2026-10-22",
      "cumulative_points_hundredths": -7000,
      "n": 3,
      "picks": 1
     },
     {
      "date": "2026-10-24",
      "cumulative_points_hundredths": -17000,
      "n": 4,
      "picks": 1
     },
     {
      "date": "2026-10-29",
      "cumulative_points_hundredths": -27000,
      "n": 5,
      "picks": 1
     },
     {
      "date": "2026-10-31",
      "cumulative_points_hundredths": -37000,
      "n": 6,
      "picks": 1
     }
    ]
   },
   "archived": null
  },
  "author_response": null,
  "cite": {
   "text": "Forecast Record recorded 6 settled live picks by Oliver Thomas before kick-off across 6 matches between 10 and 31 October 2026. Won 1 of 6 settled live picks at our recorded market prices. Of the 56 predictions we hold for Oliver Thomas, 43 are linked to matches: 43 were recorded by us before kick-off. Figures as of 7 November 2026.",
   "url": "https://forecastrecord.com/authors/oliver-thomas/",
   "data_as_of": "2026-11-07",
   "method_version": "2.2"
  },
  "origin": {
   "contract_version": "1",
   "predictions": 56,
   "under_review": 0,
   "no_match_linked": 13,
   "proven_predictions": 43,
   "proven_checked": 43,
   "proven_measured": 37,
   "proven_dates": 15,
   "parts": [
    {
     "code": "live",
     "title": "Recorded before kick-off",
     "explanation": "Saved by us from the source before kick-off.",
     "predictions": 43,
     "checked": 43,
     "price_rule": "Return at our recorded market price",
     "series_code": "market_price",
     "main": {
      "settled_picks": 6,
      "void": 0,
      "matches": 6,
      "net_points_hundredths": -37000,
      "staked_hundredths": 60000,
      "return_percent": "-61.67",
      "interval_low": null,
      "interval_high": null,
      "interval_note": "too few independent matches to estimate an interval",
      "period_from": "2026-10-10",
      "period_to": "2026-10-31",
      "method_version": "2.2",
      "snapshot_delay_median_hours": "0.0",
      "snapshot_delay_max_hours": "0.0",
      "checked_after_kickoff_picks": 1
     },
     "same_picks": [
      {
       "price": "Closing price",
       "series_code": "closing_live",
       "picks": 4,
       "return_main_percent": "-42.50",
       "return_other_percent": "-40.50",
       "settled_excluding_void": 4,
       "net_main_points_hundredths": -17000,
       "net_other_points_hundredths": -16200,
       "period_from": "2026-10-10",
       "period_to": "2026-10-29"
      }
     ],
     "score": {
      "score_forecasts": 31,
      "exact_hits": 3,
      "exact_rate": 9.7,
      "outcome_checked": 31,
      "outcome_hits": 9,
      "outcome_rate": 29.0,
      "baseline_matches": 23,
      "baseline_distinct_matches": 23,
      "outcome_hits_on_baseline": 7,
      "outcome_rate_on_baseline": 30.4,
      "favourite_hits": 7,
      "favourite_rate": 30.4,
      "price_basis": "our pre-match snapshot",
      "pending": 0,
      "void": 0,
      "recorded_after_kickoff": 0,
      "lines": [
       "Outcome checked. No betting return is attributed to these score forecasts.",
       "3 of 31 score forecasts named the exact score (9.7%).",
       "The result implied by the named score was right in 7 of 23 matches; the market favourite was right in 7 of the same 23 matches.",
       "A pre-match market favourite is known for 23 of 31 forecasts; the comparison uses only those.",
       "The market favourite is the home win, draw or away win with the lowest price in our own odds snapshot taken before kick-off.",
       "The implied result follows from the named score (2-1 implies a home win)."
      ]
     },
     "eligible": {
      "checked": 43,
      "priced": 6
     },
     "accuracy": {
      "picks": 6,
      "won": 1,
      "won_percent": "16.7",
      "implied_percent": "39.4",
      "left_out": 0,
      "by_market": [
       {
        "market": "Match result",
        "won": 1,
        "picks": 4,
        "implied_percent": "38.7"
       },
       {
        "market": "Both teams to score",
        "won": 0,
        "picks": 1,
        "implied_percent": "69.2"
       },
       {
        "market": "Correct score",
        "won": 0,
        "picks": 1,
        "implied_percent": "12.5"
       }
      ]
     },
     "reviewed_after": {
      "predictions": 3,
      "right": 1,
      "wrong": 2,
      "other": 0
     }
    },
    {
     "code": "archived",
     "title": "Archived before kick-off",
     "explanation": "Restored from a copy saved by an independent web archive before kick-off.",
     "predictions": 0,
     "checked": 0,
     "price_rule": "Reconstructed at archived prices",
     "series_code": "retro_market_closing_sm",
     "main": null,
     "same_picks": [],
     "score": {
      "score_forecasts": 0,
      "exact_hits": 0,
      "exact_rate": null,
      "outcome_checked": 0,
      "outcome_hits": 0,
      "outcome_rate": null,
      "baseline_matches": 0,
      "baseline_distinct_matches": 0,
      "outcome_hits_on_baseline": 0,
      "outcome_rate_on_baseline": null,
      "favourite_hits": 0,
      "favourite_rate": null,
      "price_basis": null,
      "pending": 0,
      "void": 0,
      "recorded_after_kickoff": 0,
      "lines": []
     },
     "eligible": {
      "checked": 0,
      "priced": 0
     },
     "accuracy": null
    },
    {
     "code": "found_after",
     "title": "Found after the match",
     "explanation": "First found after the match; the date is the one the source states.",
     "predictions": 0,
     "checked": 0,
     "price_rule": "Reconstructed at archived prices",
     "series_code": "retro_market_closing_sm",
     "main": null,
     "same_picks": [],
     "score": {
      "score_forecasts": 0,
      "exact_hits": 0,
      "exact_rate": null,
      "outcome_checked": 0,
      "outcome_hits": 0,
      "outcome_rate": null,
      "baseline_matches": 0,
      "baseline_distinct_matches": 0,
      "outcome_hits_on_baseline": 0,
      "outcome_rate_on_baseline": null,
      "favourite_hits": 0,
      "favourite_rate": null,
      "price_basis": null,
      "pending": 0,
      "void": 0,
      "recorded_after_kickoff": 0,
      "lines": []
     },
     "eligible": {
      "checked": 0,
      "priced": 0
     },
     "accuracy": null
    }
   ]
  },
  "live_alongside": null,
  "headline_record_ids": [
   "n-2214cd18060b3e276d11d3b7",
   "n-2c0a3ecc6830cef2cf4102de",
   "n-350dad4dec95b1c4e77b43f4",
   "n-d6c7ac7a5fbc86ee025bd958",
   "n-e7b20803728668a0358b5000",
   "n-fbbde6e652617ef2676e21ff"
  ],
  "interval_low": null,
  "interval_high": null,
  "caption": "Recorded before kick-off, at our recorded market price · 100 points per pick · 10–31 October 2026 · Calculated · picks settled under method v2.2",
  "record_from": "2026-09-25",
  "record_to": "2026-11-07"
 },
 "recorded_picks": [
  {
   "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-d6c7ac7a5fbc86ee025bd958",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-d6c7ac7a5fbc86ee025bd958",
   "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": "1x2",
   "author_said": "1X2, match result: Newcastle United",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "3-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": null,
   "settled_price": "3.1700",
   "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": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-d6c7ac7a5fbc86ee025bd958",
    "quote_text": "we are backing the Magpies to narrowly edge through to the quarter-finals this week",
    "fragment_from": 5894,
    "fragment_to": 5977,
    "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": "2026-10-29T14:47:54.388Z",
    "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.1700",
     "our_snapshot_at": "2026-10-27T19:08:46.629Z",
     "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-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": "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": "13e14f0d1b1225d3b2c80ec5d57c2018a5884426432dbe5fec6542738fb710af",
      "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.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.388Z",
      "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"
   }
  },
  {
   "record_id": "n-350dad4dec95b1c4e77b43f4",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-350dad4dec95b1c4e77b43f4",
   "match": "Coventry City v Fulham",
   "match_url": "/football/matches/coventry-city-vs-fulham-2026-10-24/",
   "kickoff": "2026-10-24T14:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 35.8,
   "market_code": "1x2",
   "author_said": "1X2, match result: Coventry City",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": null,
   "settled_price": "3.1000",
   "published_at": "2026-10-22T18:00:00.000Z",
   "recorded_at": "2026-10-23T02:10:24.862Z",
   "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.2500",
    "result": "Won",
    "points_hundredths": 12500,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-350dad4dec95b1c4e77b43f4",
    "quote_text": "we are backing the Sky Blues to rise to the occasion on home soil and pick up all three points",
    "fragment_from": 5661,
    "fragment_to": 5755,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/coventry-city/preview/coventry-vs-fulham-prediction-team-news-lineups_607415.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "8549ac8098f717aafbcc024b7a336e62bd00747acf630e317237bf1a207f5964",
     "material_removed": false
    },
    "published_at": "2026-10-22T18:00:00.000Z",
    "detected_at": "2026-10-23T02:10:24.862Z",
    "executed_at": "2026-10-23T06:47:16.585Z",
    "statement_class": "unpriced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-44468d972083",
     "display_name": "Coventry City — Fulham",
     "competition_name": "Premier League",
     "starts_at": "2026-10-24T14:00:00.000Z",
     "url": "/football/matches/coventry-city-vs-fulham-2026-10-24/",
     "scoreline": "0-1",
     "condition": "finished"
    },
    "market_label": "1X2, match result",
    "outcome_label": "Coventry City",
    "odds_set": {
     "by_author": null,
     "our_snapshot": "3.1000",
     "our_snapshot_at": "2026-10-23T02:05:57.249Z",
     "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-22T18:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-22T18:00:00.000Z",
     "detected_at": "2026-10-23T02:10:24.862Z",
     "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": "Coventry City",
     "author_odds": null,
     "market_key": "1x2",
     "choice_key": "1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: Coventry 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 Coventry City 0-1 Fulham."
    },
    "settlements": [
     {
      "operation_id": "42aba9978c0b523be9017cb7356cadbc8e139cd61ae93d34369af624d21e5ae8",
      "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": "Coventry City",
      "decimal_odds": "3.1000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-23T06:47:16.585Z",
      "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/coventry-city/preview/coventry-vs-fulham-prediction-team-news-lineups_607415.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Coventry City to win"
   }
  },
  {
   "record_id": "n-e7b20803728668a0358b5000",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-e7b20803728668a0358b5000",
   "match": "Beşiktaş v Crystal Palace",
   "match_url": "/football/matches/besiktas-vs-crystal-palace-2026-10-22/",
   "kickoff": "2026-10-22T19:00:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 56.8,
   "market_code": "1x2",
   "author_said": "1X2, match result: Beşiktaş",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "2-2",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": null,
   "settled_price": "2.1050",
   "published_at": "2026-10-20T09:20:00.000Z",
   "recorded_at": "2026-10-20T10:10:04.636Z",
   "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": "1",
    "price": "2.1050",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-e7b20803728668a0358b5000",
    "quote_text": "we are backing Besiktas to edge past a defensively-frail Palace outfit",
    "fragment_from": 5652,
    "fragment_to": 5722,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/besiktas/europa-league/preview/besiktas-vs-crystal-palace-prediction-team-news-lineups_607276.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "4132f8dc762d73423283280b035a0a50fd9b510666990e04d3ea47ed72db73ab",
     "material_removed": false
    },
    "published_at": "2026-10-20T09:20:00.000Z",
    "detected_at": "2026-10-20T10:10:04.636Z",
    "executed_at": "2026-10-22T00:47:19.666Z",
    "statement_class": "unpriced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-77dd69b22aa6",
     "display_name": "Beşiktaş — Crystal Palace",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-10-22T19:00:00.000Z",
     "url": "/football/matches/besiktas-vs-crystal-palace-2026-10-22/",
     "scoreline": "2-2",
     "condition": "finished"
    },
    "market_label": "1X2, match result",
    "outcome_label": "Beşiktaş",
    "odds_set": {
     "by_author": null,
     "our_snapshot": "2.1050",
     "our_snapshot_at": "2026-10-20T10:06:32.058Z",
     "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-20T09:20:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-20T09:20:00.000Z",
     "detected_at": "2026-10-20T10:10:04.636Z",
     "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": "Beşiktaş",
     "author_odds": null,
     "market_key": "1x2",
     "choice_key": "1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: Beşiktaş"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was Beşiktaş 2-2 Crystal Palace."
    },
    "settlements": [
     {
      "operation_id": "d8308395625ea77bf1a4762698d1b25d646525404f761591480ca7b310b3fa9e",
      "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": "Beşiktaş",
      "decimal_odds": "2.1050",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-22T00:47:19.666Z",
      "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/besiktas/europa-league/preview/besiktas-vs-crystal-palace-prediction-team-news-lineups_607276.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Beşiktaş to win"
   }
  },
  {
   "record_id": "n-2214cd18060b3e276d11d3b7",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-2214cd18060b3e276d11d3b7",
   "match": "Club Brugge KV v RC Lens",
   "match_url": "/football/matches/club-brugge-kv-vs-rc-lens-2026-10-21/",
   "kickoff": "2026-10-21T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 46.8,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "3-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": null,
   "settled_price": "1.4444",
   "published_at": "2026-10-19T19:15:00.000Z",
   "recorded_at": "2026-10-19T20:10:15.466Z",
   "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": "yes",
    "price": "1.4444",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-2214cd18060b3e276d11d3b7",
    "quote_text": "We expect goals at both ends of the pitch, but the hosts may ultimately have enough firepower to outscore their opponents and pick up all three points in an entertaining contest.",
    "fragment_from": 5627,
    "fragment_to": 5805,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/club-brugge/champions-league/preview/brugge-vs-lens-prediction-team-news-lineups_607212.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "c5073570f05b3c7356c240f35f63096ef82f7f0cca4cc7e0369755f86d6745ce",
     "material_removed": false
    },
    "published_at": "2026-10-19T19:15:00.000Z",
    "detected_at": "2026-10-19T20:10:15.466Z",
    "executed_at": "2026-10-21T00:37:15.901Z",
    "statement_class": "unpriced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-e001a3fb3630",
     "display_name": "Club Brugge KV — RC Lens",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-10-21T19:00:00.000Z",
     "url": "/football/matches/club-brugge-kv-vs-rc-lens-2026-10-21/",
     "scoreline": "3-0",
     "condition": "finished"
    },
    "market_label": "Both teams to score",
    "outcome_label": "yes",
    "odds_set": {
     "by_author": null,
     "our_snapshot": "1.4444",
     "our_snapshot_at": "2026-10-19T20:08:56.233Z",
     "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-19T19:15:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-19T19:15:00.000Z",
     "detected_at": "2026-10-19T20:10:15.466Z",
     "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": "loss",
     "scoreline": "3-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was Club Brugge KV 3-0 RC Lens."
    },
    "settlements": [
     {
      "operation_id": "a787e8a36f41b599f3ce69e274365f6ab7bc5348243e7ab0a4134497d03d4459",
      "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": "1.4444",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-21T00:37:15.901Z",
      "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/club-brugge/champions-league/preview/brugge-vs-lens-prediction-team-news-lineups_607212.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "yes (Both teams to score)"
   }
  },
  {
   "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-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-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-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-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-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-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-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-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-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-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-144d3218bf95bbcb09d55f6e",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-144d3218bf95bbcb09d55f6e",
   "match": "Sunderland v Brentford",
   "match_url": "/football/matches/sunderland-vs-brentford-2026-10-28/",
   "kickoff": "2026-10-28T19:45:00.000Z",
   "competition": "EFL Cup (Carabao)",
   "lead_hours": 49.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Sunderland 0-2 Brentford",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-26T17:00:00.000Z",
   "recorded_at": "2026-10-26T18:10:10.997Z",
   "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.0000",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-144d3218bf95bbcb09d55f6e",
    "quote_text": "We say: Sunderland 0-2 Brentford",
    "fragment_from": 5313,
    "fragment_to": 5345,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/sunderland/league-cup/preview/sunderland-vs-brentford-prediction-team-news-lineups_607721.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "02b982f879534d2d86a389f68911c8f3ad78040853726a878da371a7878289af",
     "material_removed": false
    },
    "published_at": "2026-10-26T17:00:00.000Z",
    "detected_at": "2026-10-26T18:10:10.997Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-a7645ab2c041",
     "display_name": "Sunderland — Brentford",
     "competition_name": "EFL Cup (Carabao)",
     "starts_at": "2026-10-28T19:45:00.000Z",
     "url": "/football/matches/sunderland-vs-brentford-2026-10-28/",
     "scoreline": "3-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Sunderland 0-2 Brentford",
    "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-26T17:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-26T17:00:00.000Z",
     "detected_at": "2026-10-26T18:10:10.997Z",
     "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 0-2 Brentford",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Sunderland 0-2 Brentford"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "3-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Sunderland 3-2 Brentford."
    },
    "settlements": [
     {
      "operation_id": "fa7bf1dc657a631f39493076590773a837b6853aae4823e23f20bc150fa5c0e4",
      "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": "Brentford",
      "decimal_odds": "2.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-28T17:25:52.154Z",
      "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/league-cup/preview/sunderland-vs-brentford-prediction-team-news-lineups_607721.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Sunderland 0-2 Brentford"
   }
  },
  {
   "record_id": "n-17e85e21079cdc750f8610ea",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-17e85e21079cdc750f8610ea",
   "match": "Fulham v Crystal Palace",
   "match_url": "/football/matches/fulham-vs-crystal-palace-2026-10-28/",
   "kickoff": "2026-10-28T19:45:00.000Z",
   "competition": "EFL Cup (Carabao)",
   "lead_hours": 51.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Fulham 1-1 Crystal Palace",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "reason": "",
   "reason_code": "ambiguous",
   "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-26T16:10:10.912Z",
   "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-17e85e21079cdc750f8610ea",
    "quote_text": "We say: Fulham 1-1 Crystal Palace (Fulham to win on penalties)",
    "fragment_from": 5668,
    "fragment_to": 5730,
    "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": "69ef35d0b8b53367053930344872ced7273437d1b6439dcafe6e7d0821a576bb",
     "material_removed": false
    },
    "published_at": "2026-10-26T15:45:00.000Z",
    "detected_at": "2026-10-26T16:10:10.912Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "ambiguous",
    "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-26T16:10:10.912Z",
     "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": "323d85050734dd555ac6a86e62495b14ee0932a63997458c80d6d510086a9fdf",
      "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: ",
      "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/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"
   }
  },
  {
   "record_id": "n-a63ed6d3a8004e88e4b967be",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-a63ed6d3a8004e88e4b967be",
   "match": "Manchester City v Brighton & Hove Albion",
   "match_url": "/football/matches/manchester-city-vs-brighton-and-hove-albion-2026-10-28/",
   "kickoff": "2026-10-28T19:30:00.000Z",
   "competition": "EFL Cup (Carabao)",
   "lead_hours": 53.3,
   "market_code": "1x2",
   "author_said": "1X2, match result: Manchester City",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-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-26T13:05:00.000Z",
   "recorded_at": "2026-10-26T14:10:01.972Z",
   "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-a63ed6d3a8004e88e4b967be",
    "quote_text": "we are backing the hosts to outgun the Seagulls and edge a high-scoring affair to progress to round five.",
    "fragment_from": 6554,
    "fragment_to": 6659,
    "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": "e93a87d1f59aab8cd7edd7df6ec91dc43d70db447811bbc7e3a6f7a2fb8cf0a4",
     "material_removed": false
    },
    "published_at": "2026-10-26T13:05:00.000Z",
    "detected_at": "2026-10-26T14:10:01.972Z",
    "executed_at": null,
    "statement_class": "unpriced",
    "status": "recognised",
    "cause": "",
    "cause_code": "disputed_reading",
    "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-26T14:10:01.972Z",
     "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": "dc2a0df03cae9933c628d20dc9d179f069a3f15eec02114fb898ffa919e5ec3e",
      "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"
   }
  },
  {
   "record_id": "n-a07fa68717c10311373a2018",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-a07fa68717c10311373a2018",
   "match": "Manchester City v Brighton & Hove Albion",
   "match_url": "/football/matches/manchester-city-vs-brighton-and-hove-albion-2026-10-28/",
   "kickoff": "2026-10-28T19:30:00.000Z",
   "competition": "EFL Cup (Carabao)",
   "lead_hours": 53.3,
   "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": "2-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-26T13:05:00.000Z",
   "recorded_at": "2026-10-26T14:10:01.972Z",
   "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-a07fa68717c10311373a2018",
    "quote_text": "We say: Manchester City 3-2 Brighton & Hove Albion",
    "fragment_from": 6184,
    "fragment_to": 6234,
    "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": "e93a87d1f59aab8cd7edd7df6ec91dc43d70db447811bbc7e3a6f7a2fb8cf0a4",
     "material_removed": false
    },
    "published_at": "2026-10-26T13:05:00.000Z",
    "detected_at": "2026-10-26T14:10:01.972Z",
    "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-26T14:10:01.972Z",
     "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": "ee2a06232c45a777ffc243fa6fd9af26f9c3d5aad30e2b7e7e336ad629100fdc",
      "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.6579",
      "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:45:17.650Z",
      "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"
   }
  },
  {
   "record_id": "n-b96eff82d4f02c8370e11ef3",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-b96eff82d4f02c8370e11ef3",
   "match": "Fleetwood Town v Arsenal",
   "match_url": "/football/matches/fleetwood-town-vs-arsenal-2026-10-27/",
   "kickoff": "2026-10-27T20:00:00.000Z",
   "competition": "EFL Cup (Carabao)",
   "lead_hours": 18.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Fleetwood Town 0-4 Arsenal",
   "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-27T00:00:00.000Z",
   "recorded_at": "2026-10-27T01:10:05.407Z",
   "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.0921",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-b96eff82d4f02c8370e11ef3",
    "quote_text": "We say: Fleetwood Town 0-4 Arsenal",
    "fragment_from": 1744,
    "fragment_to": 1778,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/arsenal/league-cup/feature/arsenal-to-breeze-past-fleetwood-tuesdays-efl-cup-predictions_607779.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "31f9d25b6f1b7b01ce28b1d54fe0fef86d7702ba2cec877c60e63ebb90733f34",
     "material_removed": false
    },
    "published_at": "2026-10-27T00:00:00.000Z",
    "detected_at": "2026-10-27T01:10:05.407Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-745e2a940a5e",
     "display_name": "Fleetwood Town — Arsenal",
     "competition_name": "EFL Cup (Carabao)",
     "starts_at": "2026-10-27T20:00:00.000Z",
     "url": "/football/matches/fleetwood-town-vs-arsenal-2026-10-27/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Fleetwood Town 0-4 Arsenal",
    "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-27T00:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-27T00:00:00.000Z",
     "detected_at": "2026-10-27T01:10:05.407Z",
     "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": "Fleetwood Town 0-4 Arsenal",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-4",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Fleetwood Town 0-4 Arsenal"
    },
    "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 Fleetwood Town 1-1 Arsenal."
    },
    "settlements": [
     {
      "operation_id": "73a910960503c521c58d77d231517547c86258248f777341f957f6fca2a77866",
      "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": "Arsenal",
      "decimal_odds": "1.0921",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-27T11:12:23.802Z",
      "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/arsenal/league-cup/feature/arsenal-to-breeze-past-fleetwood-tuesdays-efl-cup-predictions_607779.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Fleetwood Town 0-4 Arsenal"
   }
  },
  {
   "record_id": "n-982409b92f692e7a08449583",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-982409b92f692e7a08449583",
   "match": "Bradford City v Peterborough United",
   "match_url": "/football/matches/bradford-city-vs-peterborough-united-2026-10-27/",
   "kickoff": "2026-10-27T19:45:00.000Z",
   "competition": "EFL Cup (Carabao)",
   "lead_hours": 18.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Bradford City 2-0 Peterborough United",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "2-0",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-27T00:00:00.000Z",
   "recorded_at": "2026-10-27T01:10:05.407Z",
   "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.6711",
    "result": "Won",
    "points_hundredths": 6711,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-982409b92f692e7a08449583",
    "quote_text": "We say: Bradford City 2-0 Peterborough United",
    "fragment_from": 874,
    "fragment_to": 919,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/arsenal/league-cup/feature/arsenal-to-breeze-past-fleetwood-tuesdays-efl-cup-predictions_607779.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "31f9d25b6f1b7b01ce28b1d54fe0fef86d7702ba2cec877c60e63ebb90733f34",
     "material_removed": false
    },
    "published_at": "2026-10-27T00:00:00.000Z",
    "detected_at": "2026-10-27T01:10:05.407Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-80e601bc06f7",
     "display_name": "Bradford City — Peterborough United",
     "competition_name": "EFL Cup (Carabao)",
     "starts_at": "2026-10-27T19:45:00.000Z",
     "url": "/football/matches/bradford-city-vs-peterborough-united-2026-10-27/",
     "scoreline": "2-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Bradford City 2-0 Peterborough 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-10-27T00:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-27T00:00:00.000Z",
     "detected_at": "2026-10-27T01:10:05.407Z",
     "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": "Bradford City 2-0 Peterborough United",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Bradford City 2-0 Peterborough United"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "2-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Bradford City 2-0 Peterborough United."
    },
    "settlements": [
     {
      "operation_id": "9961252a951c32c39c326ca487f10e00d13c1a586a78d92b522bda22b4123624",
      "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": "Bradford City",
      "decimal_odds": "1.6711",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 6711,
      "executed_at": "2026-10-27T11:12:21.262Z",
      "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/arsenal/league-cup/feature/arsenal-to-breeze-past-fleetwood-tuesdays-efl-cup-predictions_607779.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Bradford City 2-0 Peterborough United"
   }
  },
  {
   "record_id": "n-1163898623aeed2877ac82c5",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-1163898623aeed2877ac82c5",
   "match": "Chelsea v Tottenham Hotspur",
   "match_url": "/football/matches/chelsea-vs-tottenham-hotspur-2026-10-24/",
   "kickoff": "2026-10-24T16:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": 46.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Chelsea 3-1 Tottenham Hotspur",
   "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-22T17:00:00.000Z",
   "recorded_at": "2026-10-22T18:10:07.323Z",
   "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.6849",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-1163898623aeed2877ac82c5",
    "quote_text": "We say: Chelsea 3-1 Tottenham Hotspur",
    "fragment_from": 5438,
    "fragment_to": 5475,
    "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": "264d66e42b45395422480f5208d46568fa960e9ecb37ff6f1637c083d97884b2",
     "material_removed": false
    },
    "published_at": "2026-10-22T17:00:00.000Z",
    "detected_at": "2026-10-22T18:10:07.323Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "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-22T18:10:07.323Z",
     "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": "0124f6d3140bbe36c25dbbaa2aeab080856461a9e69404669f93d9531f83d69b",
      "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": "1.6849",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-24T00:49:06.671Z",
      "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"
   }
  },
  {
   "record_id": "n-ce13d0e3316b0fb51dfd1f1b",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-ce13d0e3316b0fb51dfd1f1b",
   "match": "Coventry City v Fulham",
   "match_url": "/football/matches/coventry-city-vs-fulham-2026-10-24/",
   "kickoff": "2026-10-24T14:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 35.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Coventry City 2-1 Fulham",
   "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-22T18:00:00.000Z",
   "recorded_at": "2026-10-23T02:10:24.862Z",
   "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.2500",
    "result": "Won",
    "points_hundredths": 12500,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-ce13d0e3316b0fb51dfd1f1b",
    "quote_text": "We say: Coventry City 2-1 Fulham",
    "fragment_from": 5279,
    "fragment_to": 5311,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/coventry-city/preview/coventry-vs-fulham-prediction-team-news-lineups_607415.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "8549ac8098f717aafbcc024b7a336e62bd00747acf630e317237bf1a207f5964",
     "material_removed": false
    },
    "published_at": "2026-10-22T18:00:00.000Z",
    "detected_at": "2026-10-23T02:10:24.862Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-44468d972083",
     "display_name": "Coventry City — Fulham",
     "competition_name": "Premier League",
     "starts_at": "2026-10-24T14:00:00.000Z",
     "url": "/football/matches/coventry-city-vs-fulham-2026-10-24/",
     "scoreline": "0-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Coventry City 2-1 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-22T18:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-22T18:00:00.000Z",
     "detected_at": "2026-10-23T02:10:24.862Z",
     "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": "Coventry City 2-1 Fulham",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Coventry City 2-1 Fulham"
    },
    "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 Coventry City 0-1 Fulham."
    },
    "settlements": [
     {
      "operation_id": "47cf3d396dc77e5aba0a33d4fc272616ac8fd823766d62d4b77772f07d71790e",
      "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": "Coventry City",
      "decimal_odds": "3.1000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-23T06:47:16.565Z",
      "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/coventry-city/preview/coventry-vs-fulham-prediction-team-news-lineups_607415.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Coventry City 2-1 Fulham"
   }
  },
  {
   "record_id": "n-b1de644396f9af7bbb9a9c95",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-b1de644396f9af7bbb9a9c95",
   "match": "Aston Villa v Manchester City",
   "match_url": "/football/matches/aston-villa-vs-manchester-city-2026-10-24/",
   "kickoff": "2026-10-24T11:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": 30.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Aston Villa 1-2 Manchester City",
   "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-22T11:00:00.000Z",
   "recorded_at": "2026-10-23T05:10:00.346Z",
   "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.6250",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-b1de644396f9af7bbb9a9c95",
    "quote_text": "We say: Aston Villa 1-2 Manchester City",
    "fragment_from": 5533,
    "fragment_to": 5572,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/aston-villa/preview/aston-villa-vs-man-city-prediction-team-news-lineups_607406.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "86fd4073d185e04ae3a5cc8a9157c9bf77b9e232157c545c8626465fbb66e4e7",
     "material_removed": false
    },
    "published_at": "2026-10-22T11:00:00.000Z",
    "detected_at": "2026-10-23T05:10:00.346Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-f13233de2338",
     "display_name": "Aston Villa — Manchester City",
     "competition_name": "Premier League",
     "starts_at": "2026-10-24T11:30:00.000Z",
     "url": "/football/matches/aston-villa-vs-manchester-city-2026-10-24/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Aston Villa 1-2 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-22T11:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-22T11:00:00.000Z",
     "detected_at": "2026-10-23T05:10:00.346Z",
     "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 1-2 Manchester City",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Aston Villa 1-2 Manchester City"
    },
    "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 Aston Villa 2-1 Manchester City."
    },
    "settlements": [
     {
      "operation_id": "7b00d1ebc6e9cedaf0cebdfc4be1dc403a4bd13b3dba4a68f3a6dbd0d4553a9c",
      "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.6250",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-23T06:45:45.129Z",
      "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-man-city-prediction-team-news-lineups_607406.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Aston Villa 1-2 Manchester City"
   }
  },
  {
   "record_id": "n-ce44bc7cc254c83443fd55e2",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-ce44bc7cc254c83443fd55e2",
   "match": "Beşiktaş v Crystal Palace",
   "match_url": "/football/matches/besiktas-vs-crystal-palace-2026-10-22/",
   "kickoff": "2026-10-22T19:00:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 56.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Beşiktaş 2-1 Crystal Palace",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-20T09:20:00.000Z",
   "recorded_at": "2026-10-20T10:10:04.636Z",
   "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.1050",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-ce44bc7cc254c83443fd55e2",
    "quote_text": "We say: Besiktas 2-1 Crystal Palace",
    "fragment_from": 5243,
    "fragment_to": 5278,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/besiktas/europa-league/preview/besiktas-vs-crystal-palace-prediction-team-news-lineups_607276.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "4132f8dc762d73423283280b035a0a50fd9b510666990e04d3ea47ed72db73ab",
     "material_removed": false
    },
    "published_at": "2026-10-20T09:20:00.000Z",
    "detected_at": "2026-10-20T10:10:04.636Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-77dd69b22aa6",
     "display_name": "Beşiktaş — Crystal Palace",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-10-22T19:00:00.000Z",
     "url": "/football/matches/besiktas-vs-crystal-palace-2026-10-22/",
     "scoreline": "2-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Beşiktaş 2-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-20T09:20:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-20T09:20:00.000Z",
     "detected_at": "2026-10-20T10:10:04.636Z",
     "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": "Beşiktaş 2-1 Crystal Palace",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Beşiktaş 2-1 Crystal Palace"
    },
    "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 Beşiktaş 2-2 Crystal Palace."
    },
    "settlements": [
     {
      "operation_id": "52f52ed15dc89f92e48cd174a5159dc982d4d116cdc09017f021f1da8c595a5e",
      "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": "Beşiktaş",
      "decimal_odds": "2.1050",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-22T00:47:19.642Z",
      "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/besiktas/europa-league/preview/besiktas-vs-crystal-palace-prediction-team-news-lineups_607276.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Beşiktaş 2-1 Crystal Palace"
   }
  },
  {
   "record_id": "n-d3ac24362dc00063d5d737ca",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-d3ac24362dc00063d5d737ca",
   "match": "Lech Poznań v Sunderland",
   "match_url": "/football/matches/lech-poznan-vs-sunderland-2026-10-22/",
   "kickoff": "2026-10-22T16:45:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 55.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Lech Poznań 0-2 Sunderland",
   "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-20T08:15:00.000Z",
   "recorded_at": "2026-10-20T09:10:01.729Z",
   "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.6550",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-d3ac24362dc00063d5d737ca",
    "quote_text": "We say: Lech Poznan 0-2 Sunderland",
    "fragment_from": 5367,
    "fragment_to": 5401,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/lech-poznan/europa-league/preview/lech-poznan-vs-sunderland-prediction-team-news-lineups_607275.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "d4b16187652e0a0b2f663247b90c7d38eb4c812d72862bfc8c14a992f5a72273",
     "material_removed": false
    },
    "published_at": "2026-10-20T08:15:00.000Z",
    "detected_at": "2026-10-20T09:10:01.729Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-18e87b3e4640",
     "display_name": "Lech Poznań — Sunderland",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-10-22T16:45:00.000Z",
     "url": "/football/matches/lech-poznan-vs-sunderland-2026-10-22/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Lech Poznań 0-2 Sunderland",
    "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-20T08:15:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-20T08:15:00.000Z",
     "detected_at": "2026-10-20T09:10:01.729Z",
     "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": "Lech Poznań 0-2 Sunderland",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Lech Poznań 0-2 Sunderland"
    },
    "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 Lech Poznań 1-1 Sunderland."
    },
    "settlements": [
     {
      "operation_id": "aa170e88573b8b2c1f8314267d06409f9d47f00f9f41853a6c298b08673ba305",
      "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.6550",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-22T00:47:29.961Z",
      "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/lech-poznan/europa-league/preview/lech-poznan-vs-sunderland-prediction-team-news-lineups_607275.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Lech Poznań 0-2 Sunderland"
   }
  },
  {
   "record_id": "n-6c274785b58224f9edac36b1",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-6c274785b58224f9edac36b1",
   "match": "Club Brugge KV v RC Lens",
   "match_url": "/football/matches/club-brugge-kv-vs-rc-lens-2026-10-21/",
   "kickoff": "2026-10-21T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 46.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Club Brugge KV 2-1 RC Lens",
   "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-19T19:15:00.000Z",
   "recorded_at": "2026-10-19T20:10:15.466Z",
   "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.0000",
    "result": "Won",
    "points_hundredths": 10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-6c274785b58224f9edac36b1",
    "quote_text": "We say: Club Brugge 2-1 Lens",
    "fragment_from": 5344,
    "fragment_to": 5372,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/club-brugge/champions-league/preview/brugge-vs-lens-prediction-team-news-lineups_607212.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "c5073570f05b3c7356c240f35f63096ef82f7f0cca4cc7e0369755f86d6745ce",
     "material_removed": false
    },
    "published_at": "2026-10-19T19:15:00.000Z",
    "detected_at": "2026-10-19T20:10:15.466Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-e001a3fb3630",
     "display_name": "Club Brugge KV — RC Lens",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-10-21T19:00:00.000Z",
     "url": "/football/matches/club-brugge-kv-vs-rc-lens-2026-10-21/",
     "scoreline": "3-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Club Brugge KV 2-1 RC Lens",
    "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-19T19:15:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-19T19:15:00.000Z",
     "detected_at": "2026-10-19T20:10:15.466Z",
     "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": "Club Brugge KV 2-1 RC Lens",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Club Brugge KV 2-1 RC Lens"
    },
    "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 Club Brugge KV 3-0 RC Lens."
    },
    "settlements": [
     {
      "operation_id": "5741928722c250848cd6469e869af6790244b351d71a22a40f5f45f7c99b9554",
      "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": "Club Brugge KV",
      "decimal_odds": "2.0000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 10000,
      "executed_at": "2026-10-21T00:37:15.401Z",
      "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/club-brugge/champions-league/preview/brugge-vs-lens-prediction-team-news-lineups_607212.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Club Brugge KV 2-1 RC Lens"
   }
  },
  {
   "record_id": "n-233b1099b85e6d95449d1c7a",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-233b1099b85e6d95449d1c7a",
   "match": "Aston Villa v Viking FK",
   "match_url": "/football/matches/aston-villa-vs-viking-fk-2026-10-21/",
   "kickoff": "2026-10-21T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 52.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Aston Villa 3-1 Viking FK",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "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-19T12:55:00.000Z",
   "recorded_at": "2026-10-19T14:10:13.773Z",
   "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.2299",
    "result": "Won",
    "points_hundredths": 2299,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-233b1099b85e6d95449d1c7a",
    "quote_text": "We say: Aston Villa 3-1 Viking FK",
    "fragment_from": 5606,
    "fragment_to": 5639,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/aston-villa/champions-league/preview/aston-villa-vs-viking-fk-prediction-team-news-lineups_607209.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "903af4585383ae84ad016f81ea0e925e78ce10ae19a126e98c6229d7533490cf",
     "material_removed": false
    },
    "published_at": "2026-10-19T12:55:00.000Z",
    "detected_at": "2026-10-19T14:10:13.773Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-9f8079be711c",
     "display_name": "Aston Villa — Viking FK",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-10-21T19:00:00.000Z",
     "url": "/football/matches/aston-villa-vs-viking-fk-2026-10-21/",
     "scoreline": "3-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Aston Villa 3-1 Viking FK",
    "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-19T12:55:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-19T12:55:00.000Z",
     "detected_at": "2026-10-19T14:10:13.773Z",
     "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-1 Viking FK",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "3-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Aston Villa 3-1 Viking FK"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "3-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Aston Villa 3-1 Viking FK."
    },
    "settlements": [
     {
      "operation_id": "9c7c036f5c17c45f027331f9bdf0c347bfb0663b7669c2e46cabc1859619fd74",
      "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.2299",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 2299,
      "executed_at": "2026-10-21T00:38:03.887Z",
      "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/champions-league/preview/aston-villa-vs-viking-fk-prediction-team-news-lineups_607209.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Aston Villa 3-1 Viking FK"
   }
  },
  {
   "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-518f26b070c2036d219fa146",
   "url": "/authors/oliver-thomas/picks/3/#pick-n-518f26b070c2036d219fa146",
   "match": "Manchester City v Ipswich Town",
   "match_url": "/football/matches/manchester-city-vs-ipswich-town-2026-10-17/",
   "kickoff": "2026-10-17T14:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 34.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Manchester City 4-0 Ipswich Town",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-15T11:00:00.000Z",
   "recorded_at": "2026-10-16T03:09:59.619Z",
   "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.2299",
    "result": "Won",
    "points_hundredths": 2299,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-518f26b070c2036d219fa146",
    "quote_text": "We say: Manchester City 4-0 Ipswich Town",
    "fragment_from": 6032,
    "fragment_to": 6072,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/man-city/preview/man-city-vs-ipswich-prediction-team-news-lineups_606916.html",
     "display_name": null,
     "speaker": "Oliver Thomas",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "fff7278d723f23819f4cbd3859b26132cb78bb385b48fa4ce8c0c7ebe26b5233",
     "material_removed": false
    },
    "published_at": "2026-10-15T11:00:00.000Z",
    "detected_at": "2026-10-16T03:09:59.619Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-6ad9a71a98c6",
     "display_name": "Manchester City — Ipswich Town",
     "competition_name": "Premier League",
     "starts_at": "2026-10-17T14:00:00.000Z",
     "url": "/football/matches/manchester-city-vs-ipswich-town-2026-10-17/",
     "scoreline": "3-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Manchester City 4-0 Ipswich 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-15T11:00:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T11:00:00.000Z",
     "detected_at": "2026-10-16T03:09:59.619Z",
     "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 4-0 Ipswich Town",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "4-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Manchester City 4-0 Ipswich Town"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "3-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Manchester City 3-2 Ipswich Town."
    },
    "settlements": [
     {
      "operation_id": "d6b31a7d5b6cedd4cf046a18f82893f7982b205df46acf3fd1784ccc1867a75f",
      "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.2299",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 2299,
      "executed_at": "2026-10-16T03:20:19.512Z",
      "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-ipswich-prediction-team-news-lineups_606916.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Manchester City 4-0 Ipswich Town"
   }
  },
  {
   "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"
   }
  },
  {
   "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-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-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-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-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-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-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-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-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
  },
  {
   "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-6e0322dd7957727f8cb74693",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Fulham 1-1 Crystal Palace (Fulham to win on penalties)",
   "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-26T16:10:10.912Z",
   "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-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-cd2b2f34240cff96bd382d6a",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: FK Baumit Jablonec 0-2 Brighton & Hove Albion",
   "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-20T13:30:00.000Z",
   "recorded_at": "2026-10-20T15:10:09.570Z",
   "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-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-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-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-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-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-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-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
  }
 ],
 "lead_time": {
  "contract_version": 1,
  "threshold_hours": 2.0,
  "picks": 43,
  "before_kickoff": 43,
  "after_kickoff": 0,
  "at_least_2h": 43,
  "share_2h_plus": 100.0,
  "median_hours": 41.9,
  "min_hours": 3.4,
  "max_hours": 56.8,
  "words": "Hours between the moment we recorded the pick and kick-off; the share counts picks recorded at least two hours before kick-off."
 },
 "baseline": {
  "contract_version": 1,
  "series_code": "market_price",
  "rule": "recorded-line-1.0",
  "state": "settled",
  "picks": 34,
  "settled_picks_all": 37,
  "excluded": {
   "market_without_favourite": 1,
   "no_recorded_line": 2,
   "favourite_not_settled": 0
  },
  "staked_hundredths": 340000,
  "author_net_hundredths": -131327,
  "favourite_net_hundredths": -79384,
  "difference_hundredths": -51943,
  "author_return_percent": -38.63,
  "favourite_return_percent": -23.35,
  "author_hit_rate": 29.4,
  "favourite_hit_rate": 41.2,
  "picked_favourite_share": 58.8,
  "by_market": [
   {
    "market_code": "1x2",
    "picks": 33,
    "staked_hundredths": 330000,
    "author_net_hundredths": -121327,
    "favourite_net_hundredths": -69384,
    "author_hits": 10,
    "favourite_hits": 14,
    "picked_favourite": 19,
    "author_return_percent": -36.77,
    "favourite_return_percent": -21.03
   },
   {
    "market_code": "both_teams_score",
    "picks": 1,
    "staked_hundredths": 10000,
    "author_net_hundredths": -10000,
    "favourite_net_hundredths": -10000,
    "author_hits": 0,
    "favourite_hits": 0,
    "picked_favourite": 1,
    "author_return_percent": -100.0,
    "favourite_return_percent": -100.0
   }
  ],
  "return_over_time": [
   {
    "kickoff": "2026-10-03T14:00:00.000Z",
    "author_cumulative_hundredths": -10000,
    "favourite_cumulative_hundredths": 8550
   },
   {
    "kickoff": "2026-10-10T14:00:00.000Z",
    "author_cumulative_hundredths": 3000,
    "favourite_cumulative_hundredths": 21550
   },
   {
    "kickoff": "2026-10-10T14:00:00.000Z",
    "author_cumulative_hundredths": -7000,
    "favourite_cumulative_hundredths": 11550
   },
   {
    "kickoff": "2026-10-10T14:00:00.000Z",
    "author_cumulative_hundredths": 6000,
    "favourite_cumulative_hundredths": 24550
   },
   {
    "kickoff": "2026-10-10T16:30:00.000Z",
    "author_cumulative_hundredths": -4000,
    "favourite_cumulative_hundredths": 14550
   },
   {
    "kickoff": "2026-10-14T19:00:00.000Z",
    "author_cumulative_hundredths": -14000,
    "favourite_cumulative_hundredths": 4550
   },
   {
    "kickoff": "2026-10-15T19:00:00.000Z",
    "author_cumulative_hundredths": -12100,
    "favourite_cumulative_hundredths": 6450
   },
   {
    "kickoff": "2026-10-17T14:00:00.000Z",
    "author_cumulative_hundredths": -22100,
    "favourite_cumulative_hundredths": 13443
   },
   {
    "kickoff": "2026-10-17T14:00:00.000Z",
    "author_cumulative_hundredths": -19801,
    "favourite_cumulative_hundredths": 15742
   },
   {
    "kickoff": "2026-10-17T14:00:00.000Z",
    "author_cumulative_hundredths": -29801,
    "favourite_cumulative_hundredths": 5742
   },
   {
    "kickoff": "2026-10-17T16:30:00.000Z",
    "author_cumulative_hundredths": -39801,
    "favourite_cumulative_hundredths": -4258
   },
   {
    "kickoff": "2026-10-21T19:00:00.000Z",
    "author_cumulative_hundredths": -49801,
    "favourite_cumulative_hundredths": -14258
   },
   {
    "kickoff": "2026-10-21T19:00:00.000Z",
    "author_cumulative_hundredths": -47502,
    "favourite_cumulative_hundredths": -11959
   },
   {
    "kickoff": "2026-10-21T19:00:00.000Z",
    "author_cumulative_hundredths": -37502,
    "favourite_cumulative_hundredths": -1959
   },
   {
    "kickoff": "2026-10-22T16:45:00.000Z",
    "author_cumulative_hundredths": -47502,
    "favourite_cumulative_hundredths": -11959
   },
   {
    "kickoff": "2026-10-22T19:00:00.000Z",
    "author_cumulative_hundredths": -57502,
    "favourite_cumulative_hundredths": -21959
   },
   {
    "kickoff": "2026-10-22T19:00:00.000Z",
    "author_cumulative_hundredths": -67502,
    "favourite_cumulative_hundredths": -31959
   },
   {
    "kickoff": "2026-10-24T11:30:00.000Z",
    "author_cumulative_hundredths": -77502,
    "favourite_cumulative_hundredths": -41959
   },
   {
    "kickoff": "2026-10-24T14:00:00.000Z",
    "author_cumulative_hundredths": -87502,
    "favourite_cumulative_hundredths": -29459
   },
   {
    "kickoff": "2026-10-24T14:00:00.000Z",
    "author_cumulative_hundredths": -97502,
    "favourite_cumulative_hundredths": -16959
   },
   {
    "kickoff": "2026-10-24T16:30:00.000Z",
    "author_cumulative_hundredths": -107502,
    "favourite_cumulative_hundredths": -26959
   },
   {
    "kickoff": "2026-10-27T19:45:00.000Z",
    "author_cumulative_hundredths": -100791,
    "favourite_cumulative_hundredths": -20248
   },
   {
    "kickoff": "2026-10-27T20:00:00.000Z",
    "author_cumulative_hundredths": -110791,
    "favourite_cumulative_hundredths": -30248
   },
   {
    "kickoff": "2026-10-28T19:30:00.000Z",
    "author_cumulative_hundredths": -120791,
    "favourite_cumulative_hundredths": -40248
   },
   {
    "kickoff": "2026-10-28T19:45:00.000Z",
    "author_cumulative_hundredths": -130791,
    "favourite_cumulative_hundredths": -50248
   },
   {
    "kickoff": "2026-10-28T19:45:00.000Z",
    "author_cumulative_hundredths": -140791,
    "favourite_cumulative_hundredths": -60248
   },
   {
    "kickoff": "2026-10-29T19:45:00.000Z",
    "author_cumulative_hundredths": -150791,
    "favourite_cumulative_hundredths": -47548
   },
   {
    "kickoff": "2026-10-29T19:45:00.000Z",
    "author_cumulative_hundredths": -160791,
    "favourite_cumulative_hundredths": -34848
   },
   {
    "kickoff": "2026-10-31T20:00:00.000Z",
    "author_cumulative_hundredths": -170791,
    "favourite_cumulative_hundredths": -44848
   },
   {
    "kickoff": "2026-11-04T20:00:00.000Z",
    "author_cumulative_hundredths": -165327,
    "favourite_cumulative_hundredths": -39384
   },
   {
    "kickoff": "2026-11-05T17:45:00.000Z",
    "author_cumulative_hundredths": -137327,
    "favourite_cumulative_hundredths": -49384
   },
   {
    "kickoff": "2026-11-05T20:00:00.000Z",
    "author_cumulative_hundredths": -147327,
    "favourite_cumulative_hundredths": -59384
   },
   {
    "kickoff": "2026-11-07T12:30:00.000Z",
    "author_cumulative_hundredths": -157327,
    "favourite_cumulative_hundredths": -69384
   },
   {
    "kickoff": "2026-11-07T15:00:00.000Z",
    "author_cumulative_hundredths": -131327,
    "favourite_cumulative_hundredths": -79384
   }
  ],
  "words": "Same stakes, same matches, same recorded moment: the author’s picks against backing the market favourite by the recorded line. Only markets with a single shortest price count (match result, over/under, both teams to score, handicap); correct score and combined markets are left out."
 },
 "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": 1,
  "first": 1,
  "last": 20,
  "author_url": "/authors/oliver-thomas/",
  "current": false
 },
 "title_tag": "Oliver Thomas Predictions: Verified Record, Results and Sources",
 "calculator": null,
 "person": {
  "person_id": "o-a37055f72f52c0fdfe8df63a",
  "type_code": "individual",
  "name_shown": "Oliver Thomas",
  "main_entity": "e-a37055f72f52c0fdfe8df63a",
  "identity": {
   "status": "not_verified",
   "is_verified": false,
   "when": null,
   "source_list": []
  },
  "platform_list": [
   {
    "entity_ref": "e-a37055f72f52c0fdfe8df63a",
    "medium": "Sports Mole",
    "channel": "RSS feed",
    "domain": "sportsmole.co.uk",
    "source_info": "sports-mole",
    "byline": "Oliver Thomas",
    "url": "/sources/sports-mole/",
    "summary": {
     "statements": 750,
     "predictions": 46,
     "settled_picks": 5,
     "headline_kind": "live_snapshot",
     "return_percent": -54.0,
     "headline_part": "live",
     "period_from": "2026-10-01",
     "period_to": "2026-11-07"
    }
   },
   {
    "entity_ref": "e-9218688078fb86cb64214813",
    "medium": "Sports Mole",
    "channel": "RSS feed",
    "domain": "sportsmole.co.uk",
    "source_info": "sports-mole",
    "byline": "Oliver Thomas",
    "url": null,
    "summary": {
     "statements": 37,
     "predictions": 15,
     "settled_picks": 2,
     "headline_kind": "live_snapshot",
     "return_percent": -100.0,
     "headline_part": "live",
     "period_from": "2026-09-25",
     "period_to": "2026-11-07"
    }
   }
  ],
  "previously": [],
  "trust_tier": "tracked"
 },
 "data_revision": {
  "data_version": "2026-10-31.2",
  "updated": "2026-10-31",
  "current_release": "2026-11-07.2",
  "data_as_of": "2026-11-07",
  "method_version": "2.2",
  "price_rule": "independent odds snapshot",
  "series_code": "market_price",
  "sample": {
   "settled_picks": 6,
   "matches": 6,
   "void": 0,
   "period_from": "2026-10-10",
   "period_to": "2026-10-31",
   "composition_hash": "f6e28a769487fa7c691894759aa9cf99e91d7a0a3692573589609a755d6a018d"
  },
  "changes_url": "#changes",
  "corrections_url": "/corrections/"
 },
 "number_changes": [
  {
   "id": "zc-42caf7cb489c07bc527f",
   "at": "2026-10-31T21:01:38.334Z",
   "data_version": "2026-10-31.2",
   "previous_data_version": "2026-10-31.1",
   "url": "/authors/oliver-thomas/",
   "category": "new_results",
   "category_words": "New results",
   "before": {
    "data_version": "2026-10-30.1",
    "return_percent": "-54.00",
    "settled_picks": 5,
    "matches": 5,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "2af6aced9ed0a3d884d081808400231c2354f018224d45b09eeef0396906df5a",
    "text": "−270.00 points on 5 settled picks across 5 matches · independent odds snapshot · method 2.2"
   },
   "after": {
    "data_version": "2026-10-31.2",
    "return_percent": "-61.67",
    "settled_picks": 6,
    "matches": 6,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "f6e28a769487fa7c691894759aa9cf99e91d7a0a3692573589609a755d6a018d",
    "text": "−370.00 points on 6 settled picks across 6 matches · independent odds snapshot · method 2.2"
   },
   "reason": "1 new settled pick from matches played after the previous data version.",
   "checked_by": "comparison of data versions",
   "affected_records": {
    "added": 1,
    "removed": 0,
    "changed": 0
   },
   "correction_id": null
  },
  {
   "id": "zc-7272ba526661654a7f7c",
   "at": "2026-10-30T08:26:41.528Z",
   "data_version": "2026-10-30.1",
   "previous_data_version": "2026-10-29.1",
   "url": "/authors/oliver-thomas/",
   "category": "coverage_extended",
   "category_words": "Coverage extended",
   "before": {
    "data_version": "2026-10-24.4",
    "return_percent": "-42.50",
    "settled_picks": 4,
    "matches": 4,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "e1cb381fdd6fcb857014ed1afe304d71930cff7dedbad7aa187ed683f522e208",
    "text": "−170.00 points on 4 settled picks across 4 matches · independent odds snapshot · method 2.2"
   },
   "after": {
    "data_version": "2026-10-30.1",
    "return_percent": "-54.00",
    "settled_picks": 5,
    "matches": 5,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "2af6aced9ed0a3d884d081808400231c2354f018224d45b09eeef0396906df5a",
    "text": "−270.00 points on 5 settled picks across 5 matches · independent odds snapshot · method 2.2"
   },
   "reason": "Added 1 earlier pick for matches played before the previous data version (found in archives or newly matched to a fixture).",
   "checked_by": "comparison of data versions",
   "affected_records": {
    "added": 1,
    "removed": 0,
    "changed": 0
   },
   "correction_id": null
  },
  {
   "id": "zc-aad07265cf92448be334",
   "at": "2026-10-24T16:52:01.947Z",
   "data_version": "2026-10-24.4",
   "previous_data_version": "2026-10-24.3",
   "url": "/authors/oliver-thomas/",
   "category": "new_results",
   "category_words": "New results",
   "before": {
    "data_version": "2026-10-22.6",
    "return_percent": "-23.33",
    "settled_picks": 3,
    "matches": 3,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "3a2f259f776d58017bf903e57a5f5c6fb17a1083957afe690c2541b18b8cb87b",
    "text": "−70.00 points on 3 settled picks across 3 matches · independent odds snapshot · method 2.2"
   },
   "after": {
    "data_version": "2026-10-24.4",
    "return_percent": "-42.50",
    "settled_picks": 4,
    "matches": 4,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "e1cb381fdd6fcb857014ed1afe304d71930cff7dedbad7aa187ed683f522e208",
    "text": "−170.00 points on 4 settled picks across 4 matches · independent odds snapshot · method 2.2"
   },
   "reason": "1 new settled pick from matches played after the previous data version.",
   "checked_by": "comparison of data versions",
   "affected_records": {
    "added": 1,
    "removed": 0,
    "changed": 0
   },
   "correction_id": null
  },
  {
   "id": "zc-3dd835b7682db3cf17b0",
   "at": "2026-10-22T22:37:17.307Z",
   "data_version": "2026-10-22.6",
   "previous_data_version": "2026-10-22.5",
   "url": "/authors/oliver-thomas/",
   "category": "new_results",
   "category_words": "New results",
   "before": {
    "data_version": "2026-10-21.3",
    "return_percent": "15.00",
    "settled_picks": 2,
    "matches": 2,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "233e7a02bb56bc4d889491d04cad81038b69c62a26e71e6420a5f02d4be04566",
    "text": "+30.00 points on 2 settled picks across 2 matches · independent odds snapshot · method 2.2"
   },
   "after": {
    "data_version": "2026-10-22.6",
    "return_percent": "-23.33",
    "settled_picks": 3,
    "matches": 3,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "3a2f259f776d58017bf903e57a5f5c6fb17a1083957afe690c2541b18b8cb87b",
    "text": "−70.00 points on 3 settled picks across 3 matches · independent odds snapshot · method 2.2"
   },
   "reason": "1 new settled pick from matches played after the previous data version.",
   "checked_by": "comparison of data versions",
   "affected_records": {
    "added": 1,
    "removed": 0,
    "changed": 0
   },
   "correction_id": null
  },
  {
   "id": "zc-ce021d5f7f7106d8fd26",
   "at": "2026-10-21T22:08:07.744Z",
   "data_version": "2026-10-21.3",
   "previous_data_version": "2026-10-21.2",
   "url": "/authors/oliver-thomas/",
   "category": "new_results",
   "category_words": "New results",
   "before": {
    "data_version": "2026-10-19.6",
    "return_percent": "130.00",
    "settled_picks": 1,
    "matches": 1,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "44674fe8a1d553773a48a7bf16619b14cdf417720744e9481f7deeaa0043ffb2",
    "text": "+130.00 points on 1 settled pick across 1 match · independent odds snapshot · method 2.2"
   },
   "after": {
    "data_version": "2026-10-21.3",
    "return_percent": "15.00",
    "settled_picks": 2,
    "matches": 2,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "233e7a02bb56bc4d889491d04cad81038b69c62a26e71e6420a5f02d4be04566",
    "text": "+30.00 points on 2 settled picks across 2 matches · independent odds snapshot · method 2.2"
   },
   "reason": "1 new settled pick from matches played after the previous data version.",
   "checked_by": "comparison of data versions",
   "affected_records": {
    "added": 1,
    "removed": 0,
    "changed": 0
   },
   "correction_id": null
  },
  {
   "id": "zc-5a17f0f0456c42100d85",
   "at": "2026-10-19T19:39:27.559Z",
   "data_version": "2026-10-19.6",
   "previous_data_version": "2026-10-19.5",
   "url": "/authors/oliver-thomas/",
   "category": "data_corrected",
   "category_words": "Data corrected",
   "before": {
    "data_version": "2026-10-17.4",
    "return_percent": "15.00",
    "settled_picks": 2,
    "matches": 2,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "7ec19741245cdbbbb14f3a99e658ae0f605b1c87baab4c70a9381a31a59d0a0b",
    "text": "+30.00 points on 2 settled picks across 2 matches · independent odds snapshot · method 2.2"
   },
   "after": {
    "data_version": "2026-10-19.6",
    "return_percent": "130.00",
    "settled_picks": 1,
    "matches": 1,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "44674fe8a1d553773a48a7bf16619b14cdf417720744e9481f7deeaa0043ffb2",
    "text": "+130.00 points on 1 settled pick across 1 match · independent odds snapshot · method 2.2"
   },
   "reason": "Data corrected: 1 pick left the headline sample.",
   "checked_by": "comparison of data versions",
   "affected_records": {
    "added": 0,
    "removed": 1,
    "changed": 0
   },
   "correction_id": "i-74b4e970f2123ea0cb77"
  },
  {
   "id": "zc-9f100035a92bcebc2772",
   "at": "2026-10-17T20:13:03.224Z",
   "data_version": "2026-10-17.4",
   "previous_data_version": "2026-10-17.3",
   "url": "/authors/oliver-thomas/",
   "category": "new_results",
   "category_words": "New results",
   "before": {
    "data_version": "2026-10-10.4",
    "return_percent": "130.00",
    "settled_picks": 1,
    "matches": 1,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "44674fe8a1d553773a48a7bf16619b14cdf417720744e9481f7deeaa0043ffb2",
    "text": "+130.00 points on 1 settled pick across 1 match · independent odds snapshot · method 2.2"
   },
   "after": {
    "data_version": "2026-10-17.4",
    "return_percent": "15.00",
    "settled_picks": 2,
    "matches": 2,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "7ec19741245cdbbbb14f3a99e658ae0f605b1c87baab4c70a9381a31a59d0a0b",
    "text": "+30.00 points on 2 settled picks across 2 matches · independent odds snapshot · method 2.2"
   },
   "reason": "1 new settled pick from matches played after the previous data version.",
   "checked_by": "comparison of data versions",
   "affected_records": {
    "added": 1,
    "removed": 0,
    "changed": 0
   },
   "correction_id": null
  },
  {
   "id": "zc-1e3f6c008644e03b545c",
   "at": "2026-10-10T23:53:02.873Z",
   "data_version": "2026-10-10.4",
   "previous_data_version": "2026-10-10.3",
   "url": "/authors/oliver-thomas/",
   "category": "new_results",
   "category_words": "New results",
   "before": null,
   "after": {
    "data_version": "2026-10-10.4",
    "return_percent": "130.00",
    "settled_picks": 1,
    "matches": 1,
    "void": 0,
    "series_code": "market_price",
    "price_rule": "independent odds snapshot",
    "method_version": "2.2",
    "composition_hash": "44674fe8a1d553773a48a7bf16619b14cdf417720744e9481f7deeaa0043ffb2",
    "text": "+130.00 points on 1 settled pick across 1 match · independent odds snapshot · method 2.2"
   },
   "reason": "First headline number for this record: 1 settled pick in the series “independent odds snapshot”.",
   "checked_by": "comparison of data versions",
   "affected_records": {
    "added": 1,
    "removed": 0,
    "changed": 0
   },
   "correction_id": null
  }
 ],
 "author_card": {
  "body": "Record tracked by Forecast Record since 25 September 2026 · 56 predictions · last change 6 November 2026",
  "url": "https://forecastrecord.com/authors/oliver-thomas/",
  "s": "2026-09-25",
  "prediction_count": 56,
  "refreshed_at": "2026-11-06",
  "html": "<a href=\"https://forecastrecord.com/authors/oliver-thomas/\">Record tracked by Forecast Record since 25 September 2026 · 56 predictions · last change 6 November 2026</a>"
 },
 "trust": {
  "tier": "tracked",
  "in_words": "Tracked",
  "settled_count": 43,
  "days": 36,
  "weeks": 6,
  "archive": false,
  "in_review": false,
  "own_page": true,
  "won_count": 7,
  "first_settled_on": "2026-10-03",
  "products_in_level": 1,
  "rule": {
   "tracked": {
    "min_settled": 30,
    "min_days": 30,
    "min_distinct_weeks": 2,
    "no_violations": true
   },
   "established": {
    "min_settled": 100,
    "min_days": 90
   }
  },
  "show": true
 },
 "colleagues": [
  {
   "source_code": "sports-mole",
   "source_name": "Sports Mole",
   "source_url": "/sources/sports-mole/",
   "label": "Also at Sports Mole",
   "authors_total": 24,
   "authors": [
    {
     "name": "Saikat Mandal",
     "url": "/authors/saikat-mandal/",
     "headline_part": "live",
     "settled_picks": 57,
     "return_percent": "32.5",
     "small_sample": false,
     "average_odds": "2.21",
     "odds_from_author": 56,
     "odds_from_snapshot": 1
    },
    {
     "name": "Lewis Nolan",
     "url": "/authors/lewis-nolan/",
     "headline_part": "live",
     "settled_picks": 47,
     "return_percent": "-55.1",
     "small_sample": false,
     "average_odds": "2.22",
     "odds_from_author": 47,
     "odds_from_snapshot": 0
    },
    {
     "name": "Adeyeye Oluwapelumi",
     "url": "/authors/adeyeye-oluwapelumi/",
     "headline_part": "live",
     "settled_picks": 33,
     "return_percent": null,
     "small_sample": true,
     "average_odds": null,
     "odds_from_author": null,
     "odds_from_snapshot": null
    },
    {
     "name": "Joshua Cole",
     "url": "/authors/joshua-cole/",
     "headline_part": "live",
     "settled_picks": 32,
     "return_percent": "-40.1",
     "small_sample": false,
     "average_odds": "2.26",
     "odds_from_author": 32,
     "odds_from_snapshot": 0
    },
    {
     "name": "Marvellous Adepoju",
     "url": "/authors/marvellous-adepoju/",
     "headline_part": "live",
     "settled_picks": 25,
     "return_percent": null,
     "small_sample": true,
     "average_odds": null,
     "odds_from_author": null,
     "odds_from_snapshot": null
    },
    {
     "name": "Byron David",
     "url": "/authors/byron-david/",
     "headline_part": "live",
     "settled_picks": 24,
     "return_percent": "19.7",
     "small_sample": false,
     "average_odds": "2.09",
     "odds_from_author": 24,
     "odds_from_snapshot": 0
    },
    {
     "name": "Joshua Ojele",
     "url": "/authors/joshua-ojele/",
     "headline_part": "live",
     "settled_picks": 18,
     "return_percent": "-14.8",
     "small_sample": false,
     "average_odds": "1.69",
     "odds_from_author": 16,
     "odds_from_snapshot": 2
    },
    {
     "name": "Calum Burrowes",
     "url": "/authors/calum-burrowes/",
     "headline_part": "live",
     "settled_picks": 15,
     "return_percent": null,
     "small_sample": true,
     "average_odds": null,
     "odds_from_author": null,
     "odds_from_snapshot": null
    },
    {
     "name": "Matt Law",
     "url": "/authors/matt-law/",
     "headline_part": "live",
     "settled_picks": 13,
     "return_percent": "-76.7",
     "small_sample": false,
     "average_odds": "7.90",
     "odds_from_author": 0,
     "odds_from_snapshot": 13
    },
    {
     "name": "Sam Varley",
     "url": "/authors/sam-varley/",
     "headline_part": "live",
     "settled_picks": 11,
     "return_percent": null,
     "small_sample": true,
     "average_odds": null,
     "odds_from_author": null,
     "odds_from_snapshot": null
    },
    {
     "name": "Darren Plant",
     "url": "/authors/darren-plant/",
     "headline_part": "live",
     "settled_picks": 6,
     "return_percent": null,
     "small_sample": true,
     "average_odds": "5.46",
     "odds_from_author": 0,
     "odds_from_snapshot": 6
    },
    {
     "name": "Seye Omidiora",
     "url": "/authors/seye-omidiora/",
     "headline_part": "live",
     "settled_picks": 5,
     "return_percent": null,
     "small_sample": true,
     "average_odds": "10.50",
     "odds_from_author": 0,
     "odds_from_snapshot": 5
    }
   ]
  }
 ],
 "author_type": "Pundit",
 "data_changes": {
  "added_later": null,
  "records_corrected": 0,
  "last_correction_at": "2026-10-19T19:39:27.559Z",
  "corrections_url": "/corrections/"
 },
 "entity_id": "person:o-a37055f72f52c0fdfe8df63a",
 "source_revision": 162,
 "related": [
  {
   "url": "/cards/e-a37055f72f52c0fdfe8df63a-bank/",
   "name": "Bankroll card — Oliver Thomas",
   "detail": null,
   "source_group": "cards"
  },
  {
   "url": "/cards/e-a37055f72f52c0fdfe8df63a-month-following/",
   "name": "A month following Oliver Thomas",
   "detail": null,
   "source_group": "cards"
  },
  {
   "url": "/for-authors/oliver-thomas/",
   "name": "Your titles on Forecast Record: Oliver Thomas",
   "detail": null,
   "source_group": "for_authors"
  }
 ],
 "number_sets": [
  {
   "set": "profile.settled",
   "entity": "e-a37055f72f52c0fdfe8df63a",
   "value": 6,
   "where": "coverage",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.predictions",
   "entity": "e-a37055f72f52c0fdfe8df63a",
   "value": 56,
   "where": "coverage",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.predictions",
   "entity": "e-a37055f72f52c0fdfe8df63a",
   "value": 56,
   "where": "picks",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.part.live",
   "entity": "e-a37055f72f52c0fdfe8df63a",
   "value": 6,
   "where": "origin",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.part.archived",
   "entity": "e-a37055f72f52c0fdfe8df63a",
   "value": 0,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.part.found_after",
   "entity": "e-a37055f72f52c0fdfe8df63a",
   "value": 0,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.checked.archived",
   "entity": "e-a37055f72f52c0fdfe8df63a",
   "value": 0,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.checked.live",
   "entity": "e-a37055f72f52c0fdfe8df63a",
   "value": 43,
   "where": "origin",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.window",
   "entity": "e-a37055f72f52c0fdfe8df63a",
   "value": 6,
   "where": "calculation",
   "as_of": "2026-11-07T19:52:23.438Z",
   "label": true
  },
  {
   "set": "profile.checked",
   "entity": "e-a37055f72f52c0fdfe8df63a",
   "value": 43,
   "where": "trust-level",
   "as_of": "2026-11-07T19:52:23.438Z",
   "label": true
  }
 ]
}
