{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "history",
 "url": "/authors/joel-lefevre/picks/3/",
 "canonical": "/authors/joel-lefevre/picks/3/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Joel Lefevre — football predictions, page 3 of 5",
 "description": "Predictions 21–40 of 63 by Joel Lefevre, with outcomes in words and links to the evidence.",
 "first_paragraph": {
  "body": "Page 3 of 5 of the predictions by Joel Lefevre recorded by Forecast Record: predictions 21–40 of 63 in the order we recorded them, earliest first; as of 7 November 2026. Each row links to its evidence, and the summary of the record is on the profile page.",
  "key_number": "63",
  "data": "2026-11-07",
  "source_info": "our own evidence archive",
  "brand": "Forecast Record"
 },
 "indexable": false,
 "noindex_reason": "technical",
 "indexing_threshold": {
  "settled_count": 0,
  "date_count": 0,
  "required_settled": 0,
  "required_dates": 0
 },
 "data_date": "2026-11-07T18:07:51.685Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-07T19:52:23.438Z",
 "content_hash": null,
 "meaning_hash": "3076ea2323cbf976931e72e406066a7b78a12638b34426dd922b20721ccfcb74",
 "dependency_group": "author:e-aef77d241797d8716c6a7ee2",
 "release_id": "20261107-195223",
 "markup": [
  {
   "type_code": "WebPage",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "Organization",
   "allowed": true,
   "cause": null
  }
 ],
 "exports": [
  {
   "type_code": "json",
   "url": "/authors/joel-lefevre/picks/3/index.json",
   "bytes": null
  }
 ],
 "modules": {
  "affiliate": false,
  "api": true,
  "compare_yourself": false
 },
 "affiliate_block": null,
 "restrictions": {
  "name_withdrawn": false,
  "tracker_number": null,
  "withdrawn_quotes": [],
  "removed_at": null,
  "cause": null,
  "suspended_records": [],
  "withdrawal_log_number": 0
 },
 "page_links": {
  "methodology": "/methodology/",
  "right_of_reply": "/right-of-reply/",
  "source_coverage": "/coverage/",
  "corrections_log": "/corrections/",
  "api": "/api/",
  "claim": "/claim/"
 },
 "entity": {
  "id": "e-aef77d241797d8716c6a7ee2",
  "public_name": "Joel Lefevre",
  "tracker_number": 1378,
  "status": "active",
  "inactive_since": null,
  "verified_creator": false,
  "observation_period": {
   "since": "2026-09-27",
   "until": "2026-11-07"
  },
  "platform_list": [
   {
    "medium": "website",
    "handle": null,
    "url": null,
    "link_confirmed": false,
    "show": true
   }
  ],
  "comment": null
 },
 "recorded_picks": [
  {
   "record_id": "n-b09e79181615b13fe3b369e7",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-b09e79181615b13fe3b369e7",
   "match": "Nice v RC Strasbourg",
   "match_url": "/football/matches/nice-vs-rc-strasbourg-2026-10-11/",
   "kickoff": "2026-10-11T13:00:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 58.9,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Nice 1-1 RC Strasbourg",
   "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-09T01:12:36.000Z",
   "recorded_at": "2026-10-09T02:05:05.587Z",
   "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.3000",
    "result": "Won",
    "points_hundredths": 13000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-b09e79181615b13fe3b369e7",
    "quote_text": "We say: Nice 1-1 Strasbourg",
    "fragment_from": 4055,
    "fragment_to": 4082,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/nice/preview/nice-vs-strasbourg-prediction-team-news-lineups_606519.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "93c2826e14d193ed4117157ea19102052fc1329f9b7db514b1a3ef84b48ba936",
     "material_removed": false
    },
    "published_at": "2026-10-09T01:12:36.000Z",
    "detected_at": "2026-10-09T02:05:05.587Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-98cb3d9d0835",
     "display_name": "Nice — RC Strasbourg",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-11T13:00:00.000Z",
     "url": "/football/matches/nice-vs-rc-strasbourg-2026-10-11/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Nice 1-1 RC Strasbourg",
    "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-09T01:12:36.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-09T01:12:36.000Z",
     "detected_at": "2026-10-09T02:05:05.587Z",
     "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": "Nice 1-1 RC Strasbourg",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Nice 1-1 RC Strasbourg"
    },
    "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 Nice 2-1 RC Strasbourg."
    },
    "settlements": [
     {
      "operation_id": "e0218c7e556a0109603f1daf7d69b0b9f0bb63033b602cbb02d5d466668575c2",
      "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.5900",
      "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.544Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/nice/preview/nice-vs-strasbourg-prediction-team-news-lineups_606519.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Nice 1-1 RC Strasbourg"
   }
  },
  {
   "record_id": "n-81f68ef21692b52c58c4bc31",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Troyes 0-3 Marseille",
   "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-09T01:05:18.000Z",
   "recorded_at": "2026-10-09T02:05:08.193Z",
   "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-cfb0e43916684cbbe2dc9df7",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-cfb0e43916684cbbe2dc9df7",
   "match": "CSKA Sofia v Monaco",
   "match_url": "/football/matches/cska-sofia-vs-monaco-2026-10-15/",
   "kickoff": "2026-10-15T16:45:00.000Z",
   "competition": "UEFA Conference League",
   "lead_hours": 64.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: CSKA Sofia 0-1 Monaco",
   "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-12T23:33:33.000Z",
   "recorded_at": "2026-10-13T00:09:47.870Z",
   "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-cfb0e43916684cbbe2dc9df7",
    "quote_text": "We say: CSKA Sofia 0-1 Monaco",
    "fragment_from": 3957,
    "fragment_to": 3986,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/cska-sofia/europa-conference-league/preview/cska-sofia-vs-monaco-prediction-team-news-lineups_606781.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "d32572ad5fe5655f1b68b4747773c270e849b9a6d3aea6a055b58dad32cc0a12",
     "material_removed": false
    },
    "published_at": "2026-10-12T23:33:33.000Z",
    "detected_at": "2026-10-13T00:09:47.870Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-57b608098a71",
     "display_name": "CSKA Sofia — Monaco",
     "competition_name": "UEFA Conference League",
     "starts_at": "2026-10-15T16:45:00.000Z",
     "url": "/football/matches/cska-sofia-vs-monaco-2026-10-15/",
     "scoreline": "1-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "CSKA Sofia 0-1 Monaco",
    "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-12T23:33:33.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-12T23:33:33.000Z",
     "detected_at": "2026-10-13T00:09:47.870Z",
     "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": "CSKA Sofia 0-1 Monaco",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: CSKA Sofia 0-1 Monaco"
    },
    "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 CSKA Sofia 1-2 Monaco."
    },
    "settlements": [
     {
      "operation_id": "616da130f23c36f3fa2755b01ea37f0e96d841308f7b65fe5d635def635fbc47",
      "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": "Monaco",
      "decimal_odds": "1.4750",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 4750,
      "executed_at": "2026-10-22T12:25:11.350Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/cska-sofia/europa-conference-league/preview/cska-sofia-vs-monaco-prediction-team-news-lineups_606781.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "CSKA Sofia 0-1 Monaco"
   }
  },
  {
   "record_id": "n-8ecb1ad5b72df5db0d61c24b",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Le Mans 2-2 Toulouse",
   "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-13T23:28:46.000Z",
   "recorded_at": "2026-10-14T00:09:50.343Z",
   "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-bb9b7c6ec0c86af82b650876",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-bb9b7c6ec0c86af82b650876",
   "match": "Lille v Stade Brestois",
   "match_url": "/football/matches/lille-vs-stade-brestois-2026-10-17/",
   "kickoff": "2026-10-17T18:45:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 68.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Lille 2-0 Stade Brestois",
   "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-14T21:22:17.000Z",
   "recorded_at": "2026-10-14T22:09:50.142Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "1.8000",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-bb9b7c6ec0c86af82b650876",
    "quote_text": "We say: Lille 2-0 Brest",
    "fragment_from": 3760,
    "fragment_to": 3783,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/lille/preview/lille-vs-brest-prediction-team-news-lineups_606902.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "9e9ce76a3045cf7416f58e1a344a0798f50a47136d241f8341b65b87237078da",
     "material_removed": false
    },
    "published_at": "2026-10-14T21:22:17.000Z",
    "detected_at": "2026-10-14T22:09:50.142Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-fcb090a96d57",
     "display_name": "Lille — Stade Brestois",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-17T18:45:00.000Z",
     "url": "/football/matches/lille-vs-stade-brestois-2026-10-17/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Lille 2-0 Stade Brestois",
    "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-14T21:22:17.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-14T21:22:17.000Z",
     "detected_at": "2026-10-14T22:09:50.142Z",
     "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": "Lille 2-0 Stade Brestois",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Lille 2-0 Stade Brestois"
    },
    "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 Lille 1-1 Stade Brestois."
    },
    "settlements": [
     {
      "operation_id": "c4d18c9d2086f24f7f54fac5b0a1959d6adae05216f7058c53113e7bad9d36f7",
      "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": "Lille",
      "decimal_odds": "1.8000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-15T20:58:15.209Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/lille/preview/lille-vs-brest-prediction-team-news-lineups_606902.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Lille 2-0 Stade Brestois"
   }
  },
  {
   "record_id": "n-378f39042c9bcc1c7eda7c0e",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Troyes 1-2 Lens",
   "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-14T21:14:48.000Z",
   "recorded_at": "2026-10-14T22:09:50.846Z",
   "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-5481f2af0adf3ca30f14f159",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-5481f2af0adf3ca30f14f159",
   "match": "RC Strasbourg v Paris Saint-Germain",
   "match_url": "/football/matches/rc-strasbourg-vs-paris-saint-germain-2026-10-17/",
   "kickoff": "2026-10-17T15:15:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 64.1,
   "market_code": "correct_score_market",
   "author_said": "Correct score: RC Strasbourg 0-2 Paris Saint-Germain",
   "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-14T22:49:57.000Z",
   "recorded_at": "2026-10-14T23:09:51.067Z",
   "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.4000",
    "result": "Won",
    "points_hundredths": 4000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-5481f2af0adf3ca30f14f159",
    "quote_text": "We say: Strasbourg 0-2 Paris Saint-Germain",
    "fragment_from": 3783,
    "fragment_to": 3825,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/strasbourg/preview/strasbourg-vs-psg-prediction-team-news-lineups_606904.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "da70e563b19c4449052df0ecbd1b1183b6cd915706de5a3850d7138660284e67",
     "material_removed": false
    },
    "published_at": "2026-10-14T22:49:57.000Z",
    "detected_at": "2026-10-14T23:09:51.067Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-2e5ca9903f14",
     "display_name": "RC Strasbourg — Paris Saint-Germain",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-17T15:15:00.000Z",
     "url": "/football/matches/rc-strasbourg-vs-paris-saint-germain-2026-10-17/",
     "scoreline": "1-3",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "RC Strasbourg 0-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-14T22:49:57.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-14T22:49:57.000Z",
     "detected_at": "2026-10-14T23:09:51.067Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "RC Strasbourg 0-2 Paris Saint-Germain",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: RC Strasbourg 0-2 Paris Saint-Germain"
    },
    "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 RC Strasbourg 1-3 Paris Saint-Germain."
    },
    "settlements": [
     {
      "operation_id": "bd1a6475a86de78f7d2c8f4dbd87a13af31c60641279d6c020f534d68924cd21",
      "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": "Paris Saint-Germain",
      "decimal_odds": "1.4000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 4000,
      "executed_at": "2026-10-15T16:43:16.672Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/strasbourg/preview/strasbourg-vs-psg-prediction-team-news-lineups_606904.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "RC Strasbourg 0-2 Paris Saint-Germain"
   }
  },
  {
   "record_id": "n-ee08676766e1b69169a0ffdf",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-ee08676766e1b69169a0ffdf",
   "match": "Atlanta United v Inter Miami CF",
   "match_url": "/football/matches/atlanta-united-vs-inter-miami-cf-2026-10-17/",
   "kickoff": "2026-10-17T23:30:00.000Z",
   "competition": "MLS",
   "lead_hours": 68.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Atlanta United 1-3 Inter Miami CF",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "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-15T02:32:51.000Z",
   "recorded_at": "2026-10-15T03:09:45.708Z",
   "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.8333",
    "result": "Won",
    "points_hundredths": 8333,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-ee08676766e1b69169a0ffdf",
    "quote_text": "We say: Atlanta United 1-3 Inter Miami",
    "fragment_from": 3613,
    "fragment_to": 3651,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/atlanta-united/preview/atlanta-vs-inter-miami-prediction-team-news-lineups_606907.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "b5acb9b48e0046418a8e4b7e909d22ca357d183ca4289cf183877b661bf823f4",
     "material_removed": false
    },
    "published_at": "2026-10-15T02:32:51.000Z",
    "detected_at": "2026-10-15T03:09:45.708Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-01498235d929",
     "display_name": "Atlanta United — Inter Miami CF",
     "competition_name": "MLS",
     "starts_at": "2026-10-17T23:30:00.000Z",
     "url": "/football/matches/atlanta-united-vs-inter-miami-cf-2026-10-17/",
     "scoreline": "1-3",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Atlanta United 1-3 Inter Miami CF",
    "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-15T02:32:51.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T02:32:51.000Z",
     "detected_at": "2026-10-15T03:09:45.708Z",
     "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": "Atlanta United 1-3 Inter Miami CF",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-3",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Atlanta United 1-3 Inter Miami CF"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-3",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Atlanta United 1-3 Inter Miami CF."
    },
    "settlements": [
     {
      "operation_id": "82f9e090c60d84f8da6077f1f642e1b72113a1ceedbecbe1e87a287ac15d8e38",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Inter Miami CF",
      "decimal_odds": "1.8333",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 8333,
      "executed_at": "2026-10-16T03:13:03.618Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/atlanta-united/preview/atlanta-vs-inter-miami-prediction-team-news-lineups_606907.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Atlanta United 1-3 Inter Miami CF"
   }
  },
  {
   "record_id": "n-a02b74fb1bd89b22e681256c",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-a02b74fb1bd89b22e681256c",
   "match": "Lorient v Monaco",
   "match_url": "/football/matches/lorient-vs-monaco-2026-10-18/",
   "kickoff": "2026-10-18T15:15:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 63.1,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Lorient 1-1 Monaco",
   "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-15T23:24:45.000Z",
   "recorded_at": "2026-10-16T00:09:49.761Z",
   "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.0400",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-a02b74fb1bd89b22e681256c",
    "quote_text": "We say: Lorient 1-1 Monaco",
    "fragment_from": 3824,
    "fragment_to": 3850,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/lorient/preview/lorient-vs-monaco-prediction-team-news-lineups_607009.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "87fb67353f53b291e0efa2c6b021903c6f82df3d2c446d6ada0c759c8a6469ba",
     "material_removed": false
    },
    "published_at": "2026-10-15T23:24:45.000Z",
    "detected_at": "2026-10-16T00:09:49.761Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-0433dfe831d6",
     "display_name": "Lorient — Monaco",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-18T15:15:00.000Z",
     "url": "/football/matches/lorient-vs-monaco-2026-10-18/",
     "scoreline": "1-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Lorient 1-1 Monaco",
    "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-15T23:24:45.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T23:24:45.000Z",
     "detected_at": "2026-10-16T00:09:49.761Z",
     "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": "Lorient 1-1 Monaco",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Lorient 1-1 Monaco"
    },
    "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 Lorient 1-0 Monaco."
    },
    "settlements": [
     {
      "operation_id": "284e328a30bffd0fd54db210476a7a1c253df7929ccf96b0c4ff572cf3052b29",
      "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.4000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-18T11:27:57.661Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/lorient/preview/lorient-vs-monaco-prediction-team-news-lineups_607009.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Lorient 1-1 Monaco"
   }
  },
  {
   "record_id": "n-7306fca13a22680eb5db4cef",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-7306fca13a22680eb5db4cef",
   "match": "Paris FC v Stade Rennais",
   "match_url": "/football/matches/paris-fc-vs-stade-rennais-2026-10-18/",
   "kickoff": "2026-10-18T15:15:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 63.1,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Paris FC 1-2 Stade Rennais",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "4-3",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-15T23:18:00.000Z",
   "recorded_at": "2026-10-16T00:09:50.655Z",
   "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": "Won",
    "points_hundredths": 12500,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-7306fca13a22680eb5db4cef",
    "quote_text": "We say: Paris FC 1-2 Rennes",
    "fragment_from": 3908,
    "fragment_to": 3935,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/paris-fc/preview/paris-fc-vs-rennes-prediction-team-news-lineups_607008.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "225045b0cad62a525ba469ef252b7202b5455de18b21194b8a0bee87d735195e",
     "material_removed": false
    },
    "published_at": "2026-10-15T23:18:00.000Z",
    "detected_at": "2026-10-16T00:09:50.655Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-7947b3912313",
     "display_name": "Paris FC — Stade Rennais",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-18T15:15:00.000Z",
     "url": "/football/matches/paris-fc-vs-stade-rennais-2026-10-18/",
     "scoreline": "4-3",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Paris FC 1-2 Stade Rennais",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-15T23:18:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T23:18:00.000Z",
     "detected_at": "2026-10-16T00:09:50.655Z",
     "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": "Paris FC 1-2 Stade Rennais",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Paris FC 1-2 Stade Rennais"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "4-3",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Paris FC 4-3 Stade Rennais."
    },
    "settlements": [
     {
      "operation_id": "52f110fa01a245489db117a03c30d588b49de0cff1c161ce93730a2d8fb34f58",
      "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": "Stade Rennais",
      "decimal_odds": "3.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-17T18:03:20.832Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/paris-fc/preview/paris-fc-vs-rennes-prediction-team-news-lineups_607008.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Paris FC 1-2 Stade Rennais"
   }
  },
  {
   "record_id": "n-b472e58059030f8c95f5a609",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-b472e58059030f8c95f5a609",
   "match": "Olympique Lyonnais v Nice",
   "match_url": "/football/matches/olympique-lyonnais-vs-nice-2026-10-18/",
   "kickoff": "2026-10-18T18:45:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 66.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Olympique Lyonnais 1-0 Nice",
   "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-15T23:13:56.000Z",
   "recorded_at": "2026-10-16T00:09:51.110Z",
   "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.6579",
    "result": "Won",
    "points_hundredths": 6579,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-b472e58059030f8c95f5a609",
    "quote_text": "We say: Lyon 1-0 Nice",
    "fragment_from": 3732,
    "fragment_to": 3753,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/lyon/preview/lyon-vs-nice-prediction-team-news-lineups_607007.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "ed3f30967102a7173aa6da6da902d48db4c14835fe8428b08fdd71d6acdde7ac",
     "material_removed": false
    },
    "published_at": "2026-10-15T23:13:56.000Z",
    "detected_at": "2026-10-16T00:09:51.110Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-06454a8de539",
     "display_name": "Olympique Lyonnais — Nice",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-18T18:45:00.000Z",
     "url": "/football/matches/olympique-lyonnais-vs-nice-2026-10-18/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Olympique Lyonnais 1-0 Nice",
    "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-15T23:13:56.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-15T23:13:56.000Z",
     "detected_at": "2026-10-16T00:09:51.110Z",
     "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": "Olympique Lyonnais 1-0 Nice",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Olympique Lyonnais 1-0 Nice"
    },
    "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 Olympique Lyonnais 2-1 Nice."
    },
    "settlements": [
     {
      "operation_id": "b9238618830ddfbc1c8a1453253ec649531078e9324af4010a5756540dbce6f7",
      "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": "Olympique Lyonnais",
      "decimal_odds": "1.6579",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 6579,
      "executed_at": "2026-10-17T18:12:05.068Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/lyon/preview/lyon-vs-nice-prediction-team-news-lineups_607007.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Olympique Lyonnais 1-0 Nice"
   }
  },
  {
   "record_id": "n-88250af69e4ecaf9ec4bb8a7",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-88250af69e4ecaf9ec4bb8a7",
   "match": "Sturm Graz v Olympique de Marseille",
   "match_url": "/football/matches/sturm-graz-vs-olympique-de-marseille-2026-10-22/",
   "kickoff": "2026-10-22T16:45:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 66.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Sturm Graz 1-1 Olympique de Marseille",
   "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-19T21:09:50.000Z",
   "recorded_at": "2026-10-19T22:10:17.090Z",
   "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": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-88250af69e4ecaf9ec4bb8a7",
    "quote_text": "We say: Sturm Graz 1-1 Marseille",
    "fragment_from": 4244,
    "fragment_to": 4276,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/sturm-graz/europa-league/preview/sturm-graz-vs-marseille-prediction-team-news-lineups_607263.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "7196c19f58fb97288df34164b8e4f5aa4a5b21462d544d55e2321c0ef5e64053",
     "material_removed": false
    },
    "published_at": "2026-10-19T21:09:50.000Z",
    "detected_at": "2026-10-19T22:10:17.090Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-42828e55f24a",
     "display_name": "Sturm Graz — Olympique de Marseille",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-10-22T16:45:00.000Z",
     "url": "/football/matches/sturm-graz-vs-olympique-de-marseille-2026-10-22/",
     "scoreline": "1-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Sturm Graz 1-1 Olympique de Marseille",
    "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-19T21:09:50.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-19T21:09:50.000Z",
     "detected_at": "2026-10-19T22:10:17.090Z",
     "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": "Sturm Graz 1-1 Olympique de Marseille",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Sturm Graz 1-1 Olympique de Marseille"
    },
    "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 Sturm Graz 1-0 Olympique de Marseille."
    },
    "settlements": [
     {
      "operation_id": "67dc5d50f26b8b32ddcf9ed4c6983db087181b27bae073011e255035ef483a20",
      "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-22T00:48:31.691Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/sturm-graz/europa-league/preview/sturm-graz-vs-marseille-prediction-team-news-lineups_607263.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Sturm Graz 1-1 Olympique de Marseille"
   }
  },
  {
   "record_id": "n-ea258311e68e58d3e0b0c555",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-ea258311e68e58d3e0b0c555",
   "match": "Stade Brestois v Nice",
   "match_url": "/football/matches/stade-brestois-vs-nice-2026-10-23/",
   "kickoff": "2026-10-23T18:45:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 69.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Stade Brestois 1-2 Nice",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "1-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-20T20:41:28.000Z",
   "recorded_at": "2026-10-20T21:10:13.474Z",
   "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.2000",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-ea258311e68e58d3e0b0c555",
    "quote_text": "We say: Brest 1-2 Nice",
    "fragment_from": 3692,
    "fragment_to": 3714,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/brest/preview/brest-vs-nice-prediction-team-news-lineups_607322.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "f24b758092614173e080b0649a48f1d88daf26ba88ad0766371c97a7cd453982",
     "material_removed": false
    },
    "published_at": "2026-10-20T20:41:28.000Z",
    "detected_at": "2026-10-20T21:10:13.474Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-1327a569d107",
     "display_name": "Stade Brestois — Nice",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-23T18:45:00.000Z",
     "url": "/football/matches/stade-brestois-vs-nice-2026-10-23/",
     "scoreline": "1-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Stade Brestois 1-2 Nice",
    "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-20T20:41:28.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-20T20:41:28.000Z",
     "detected_at": "2026-10-20T21:10:13.474Z",
     "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": "Stade Brestois 1-2 Nice",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Stade Brestois 1-2 Nice"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Stade Brestois 1-2 Nice."
    },
    "settlements": [
     {
      "operation_id": "c8f4a237b99d76fde6e75e10c37162be5aaebe5d9d50871c80a6b9927e75d075",
      "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": "Nice",
      "decimal_odds": "3.1000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 21000,
      "executed_at": "2026-10-23T00:46:49.093Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/brest/preview/brest-vs-nice-prediction-team-news-lineups_607322.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Stade Brestois 1-2 Nice"
   }
  },
  {
   "record_id": "n-c69e859c2382d0e175d7178d",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Toulouse 3-1 Troyes",
   "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-21T22:34:00.000Z",
   "recorded_at": "2026-10-21T23:10:29.638Z",
   "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-0498a6ec42cc8d3acdf19c7f",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-0498a6ec42cc8d3acdf19c7f",
   "match": "New York Red Bulls v Inter Miami CF",
   "match_url": "/football/matches/new-york-red-bulls-vs-inter-miami-cf-2026-10-24/",
   "kickoff": "2026-10-24T21:30:00.000Z",
   "competition": "MLS",
   "lead_hours": 70.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: New York Red Bulls 0-3 Inter Miami CF",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "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-21T22:21:16.000Z",
   "recorded_at": "2026-10-21T23:10:31.581Z",
   "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.8696",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-0498a6ec42cc8d3acdf19c7f",
    "quote_text": "We say: New York Red Bulls 0-3 Inter Miami",
    "fragment_from": 3809,
    "fragment_to": 3851,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/red-bulls/preview/ny-red-bulls-vs-inter-miami-prediction-team-news-lineups_607389.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "8a48ab499c52d8a873721ae49fabed472d5ada92407490f2fbe913ec7bda487e",
     "material_removed": false
    },
    "published_at": "2026-10-21T22:21:16.000Z",
    "detected_at": "2026-10-21T23:10:31.581Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-450a933485e0",
     "display_name": "New York Red Bulls — Inter Miami CF",
     "competition_name": "MLS",
     "starts_at": "2026-10-24T21:30:00.000Z",
     "url": "/football/matches/new-york-red-bulls-vs-inter-miami-cf-2026-10-24/",
     "scoreline": "2-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "New York Red Bulls 0-3 Inter Miami CF",
    "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-21T22:21:16.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-21T22:21:16.000Z",
     "detected_at": "2026-10-21T23:10:31.581Z",
     "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": "New York Red Bulls 0-3 Inter Miami CF",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-3",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: New York Red Bulls 0-3 Inter Miami CF"
    },
    "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 New York Red Bulls 2-0 Inter Miami CF."
    },
    "settlements": [
     {
      "operation_id": "c520ab61fe45713ad421b451fe0dfd8d7b3a15de4152c72178f8b904798b5a0b",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Inter Miami CF",
      "decimal_odds": "1.8696",
      "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:53:45.291Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/red-bulls/preview/ny-red-bulls-vs-inter-miami-prediction-team-news-lineups_607389.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "New York Red Bulls 0-3 Inter Miami CF"
   }
  },
  {
   "record_id": "n-c29aedb6eb5a0b02e0d05993",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-c29aedb6eb5a0b02e0d05993",
   "match": "Monaco v Lille",
   "match_url": "/football/matches/monaco-vs-lille-2026-10-25/",
   "kickoff": "2026-10-25T14:00:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 60.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Monaco 1-1 Lille",
   "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-10-23T00:50:05.000Z",
   "recorded_at": "2026-10-23T01:10:05.398Z",
   "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.0700",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-c29aedb6eb5a0b02e0d05993",
    "quote_text": "We say: Monaco 1-1 Lille",
    "fragment_from": 4205,
    "fragment_to": 4229,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/as-monaco/preview/monaco-vs-lille-prediction-team-news-lineups_607508.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "d1764e7e134fa9d802838b163467d95afc93d14af94c3cb0f31bca1428cf4444",
     "material_removed": false
    },
    "published_at": "2026-10-23T00:50:05.000Z",
    "detected_at": "2026-10-23T01:10:05.398Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-4e7825289b07",
     "display_name": "Monaco — Lille",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-25T14:00:00.000Z",
     "url": "/football/matches/monaco-vs-lille-2026-10-25/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Monaco 1-1 Lille",
    "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-23T00:50:05.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-23T00:50:05.000Z",
     "detected_at": "2026-10-23T01:10:05.398Z",
     "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": "Monaco 1-1 Lille",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Monaco 1-1 Lille"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Monaco 1-1 Lille."
    },
    "settlements": [
     {
      "operation_id": "8845af1d78825701f9ab2310b5f65702b52f8eb6ca362370cebaf3b59da0db1f",
      "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.4400",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 24400,
      "executed_at": "2026-10-24T09:37:21.769Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/as-monaco/preview/monaco-vs-lille-prediction-team-news-lineups_607508.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Monaco 1-1 Lille"
   }
  },
  {
   "record_id": "n-171f5a5dfa2eda1773de32ee",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-171f5a5dfa2eda1773de32ee",
   "match": "Stade Rennais v RC Strasbourg",
   "match_url": "/football/matches/stade-rennais-vs-rc-strasbourg-2026-10-25/",
   "kickoff": "2026-10-25T16:15:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 63.1,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Stade Rennais 1-1 RC Strasbourg",
   "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-23T00:14:34.000Z",
   "recorded_at": "2026-10-23T01:10:07.360Z",
   "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.7500",
    "result": "Won",
    "points_hundredths": 7500,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-171f5a5dfa2eda1773de32ee",
    "quote_text": "We say: Rennes 1-1 Strasbourg",
    "fragment_from": 3855,
    "fragment_to": 3884,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/rennes/preview/rennes-vs-strasbourg-prediction-team-news-lineups_607506.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "59b4b82e93fd39037f349f71c45bb9abb2802b4529ea8a18cb8602122402e204",
     "material_removed": false
    },
    "published_at": "2026-10-23T00:14:34.000Z",
    "detected_at": "2026-10-23T01:10:07.360Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-d194cb14109e",
     "display_name": "Stade Rennais — RC Strasbourg",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-25T16:15:00.000Z",
     "url": "/football/matches/stade-rennais-vs-rc-strasbourg-2026-10-25/",
     "scoreline": "3-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Stade Rennais 1-1 RC Strasbourg",
    "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-23T00:14:34.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-23T00:14:34.000Z",
     "detected_at": "2026-10-23T01:10:07.360Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Stade Rennais 1-1 RC Strasbourg",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Stade Rennais 1-1 RC Strasbourg"
    },
    "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 Stade Rennais 3-0 RC Strasbourg."
    },
    "settlements": [
     {
      "operation_id": "b8699011c87ef64d4adca5132fc20cd9ca1ece84d92035d727120eaea4c13ffb",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "4.2400",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-24T09:37:21.699Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/rennes/preview/rennes-vs-strasbourg-prediction-team-news-lineups_607506.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Stade Rennais 1-1 RC Strasbourg"
   }
  },
  {
   "record_id": "n-81eddfa95fd817b614f0d388",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Los Angeles FC 2-2 Los Angeles Galaxy",
   "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-23T00:02:00.000Z",
   "recorded_at": "2026-10-23T01:10:08.048Z",
   "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-79f7d0771501f6784308114f",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-79f7d0771501f6784308114f",
   "match": "Paris Saint-Germain v Olympique Lyonnais",
   "match_url": "/football/matches/paris-saint-germain-vs-olympique-lyonnais-2026-10-26/",
   "kickoff": "2026-10-26T19:30:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 89.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Paris Saint-Germain 2-1 Olympique Lyonnais",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "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-23T01:02:27.000Z",
   "recorded_at": "2026-10-23T02:10:18.093Z",
   "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.4450",
    "result": "Won",
    "points_hundredths": 4450,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-79f7d0771501f6784308114f",
    "quote_text": "We say: Paris Saint-Germain 2-1 Lyon",
    "fragment_from": 4773,
    "fragment_to": 4809,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/psg/preview/psg-vs-lyon-prediction-team-news-lineups_607509.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "cbc337e4121f156ead56997b9bd9cb522d240a9b78ef97b246a7c70a186b521a",
     "material_removed": false
    },
    "published_at": "2026-10-23T01:02:27.000Z",
    "detected_at": "2026-10-23T02:10:18.093Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-4bf1ea244970",
     "display_name": "Paris Saint-Germain — Olympique Lyonnais",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-26T19:30:00.000Z",
     "url": "/football/matches/paris-saint-germain-vs-olympique-lyonnais-2026-10-26/",
     "scoreline": "2-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Paris Saint-Germain 2-1 Olympique Lyonnais",
    "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-23T01:02:27.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-23T01:02:27.000Z",
     "detected_at": "2026-10-23T02:10:18.093Z",
     "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": "Paris Saint-Germain 2-1 Olympique Lyonnais",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Paris Saint-Germain 2-1 Olympique Lyonnais"
    },
    "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 Paris Saint-Germain 2-0 Olympique Lyonnais."
    },
    "settlements": [
     {
      "operation_id": "f6efbf884f27842434f2570f0b507dd83317e058b93a75a0fe879930d620ee6f",
      "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": "Paris Saint-Germain",
      "decimal_odds": "1.4450",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 4450,
      "executed_at": "2026-10-24T15:02:26.679Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "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/psg/preview/psg-vs-lyon-prediction-team-news-lineups_607509.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Paris Saint-Germain 2-1 Olympique Lyonnais"
   }
  },
  {
   "record_id": "n-8b5b77390c6fb97d9d34c723",
   "url": "/authors/joel-lefevre/picks/3/#pick-n-8b5b77390c6fb97d9d34c723",
   "match": "RC Lens v Paris FC",
   "match_url": "/football/matches/rc-lens-vs-paris-fc-2026-10-24/",
   "kickoff": "2026-10-24T18:45:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 1.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: RC Lens 1-1 Paris FC",
   "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-21T22:39:00.000Z",
   "recorded_at": "2026-10-24T16:55:45.588Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "2.5000",
    "result": "Won",
    "points_hundredths": 15000,
    "picked_favourite": false
   },
   "platform": "Sports Mole, RSS feed",
   "correction": null,
   "evidence": {
    "observation_id": "n-8b5b77390c6fb97d9d34c723",
    "quote_text": "We say: Lens 1-1 Paris FC",
    "fragment_from": 4426,
    "fragment_to": 4451,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/lens/preview/lens-vs-paris-fc-prediction-team-news-lineups_607391.html",
     "display_name": null,
     "speaker": "Joel Lefevre",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "4d9ecdb8c50d18f8bd1834aa6afa69559724cbbfb4697abf7a6f669d02492cee",
     "material_removed": false
    },
    "published_at": "2026-10-21T22:39:00.000Z",
    "detected_at": "2026-10-24T16:55:45.588Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-1c1b0f73b0a0",
     "display_name": "RC Lens — Paris FC",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-24T18:45:00.000Z",
     "url": "/football/matches/rc-lens-vs-paris-fc-2026-10-24/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "RC Lens 1-1 Paris FC",
    "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-21T22:39:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-21T22:39:00.000Z",
     "detected_at": "2026-10-24T16:55:45.588Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "RC Lens 1-1 Paris FC",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: RC Lens 1-1 Paris FC"
    },
    "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 RC Lens 2-1 Paris FC."
    },
    "settlements": [
     {
      "operation_id": "07c1624cf0454f5070324161aef49fa29299ffd810236f214e9b30f38d958a82",
      "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-24T17:01:07.764Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joel Lefevre",
     "publisher": "Sports Mole",
     "forecaster": "Joel Lefevre",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/lens/preview/lens-vs-paris-fc-prediction-team-news-lineups_607391.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "RC Lens 1-1 Paris FC"
   }
  }
 ],
 "pagination": {
  "per_page": 20,
  "total": 63,
  "pages": 5,
  "page_urls": [
   "/authors/joel-lefevre/",
   "/authors/joel-lefevre/picks/2/",
   "/authors/joel-lefevre/picks/3/",
   "/authors/joel-lefevre/picks/4/",
   "/authors/joel-lefevre/picks/5/"
  ],
  "groups": {
   "settled": 1,
   "pending": 0,
   "excluded": 62
  },
  "continuation": "by_time",
  "page": 3,
  "first": 21,
  "last": 40,
  "author_url": "/authors/joel-lefevre/",
  "current": false
 },
 "entity_id": "history:/authors/joel-lefevre/picks/3/",
 "source_revision": 18
}
