{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "history",
 "url": "/authors/matt-law/picks/13/",
 "canonical": "/authors/matt-law/picks/13/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Matt Law — football predictions, page 13 of 16",
 "description": "Predictions 221–240 of 292 by Matt Law, with outcomes in words and links to the evidence.",
 "first_paragraph": {
  "body": "Page 13 of 16 of the predictions by Matt Law recorded by Forecast Record: predictions 221–240 of 292 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": "292",
  "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:10:20.927Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-07T19:52:23.438Z",
 "content_hash": null,
 "meaning_hash": "c44c2e4f94c5e67246c3a04fb3b9b793119896e442063ede3179da0dc5e13f84",
 "dependency_group": "author:e-c0f81d9742abd31cba2ba7b2",
 "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/matt-law/picks/13/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-c0f81d9742abd31cba2ba7b2",
  "public_name": "Matt Law",
  "tracker_number": 970,
  "status": "active",
  "inactive_since": null,
  "verified_creator": false,
  "observation_period": {
   "since": "2026-09-25",
   "until": "2026-11-07"
  },
  "platform_list": [
   {
    "medium": "website",
    "handle": null,
    "url": null,
    "link_confirmed": false,
    "show": true
   }
  ],
  "comment": null
 },
 "recorded_picks": [
  {
   "record_id": "n-cac4d6fbfd26ff7fd4195805",
   "url": "/authors/matt-law/picks/13/#pick-n-cac4d6fbfd26ff7fd4195805",
   "match": "AC Milan v Bologna",
   "match_url": "/football/matches/ac-milan-vs-bologna-2026-10-28/",
   "kickoff": "2026-10-28T17:30:00.000Z",
   "competition": "Serie A",
   "lead_hours": 16.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: AC Milan 1-0 Bologna",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-4",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-28T00:05:00.000Z",
   "recorded_at": "2026-10-28T01:10:01.747Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "1.6711",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-cac4d6fbfd26ff7fd4195805",
    "quote_text": "We say: AC Milan 1-0 Bologna",
    "fragment_from": 2480,
    "fragment_to": 2508,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/ac-milan/serie-a-predictions/feature/inter-milan-juve-to-triumph-wednesdays-serie-a-predictions_607793.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "3c5bd9e7ca11c2181f35dd72a35ad2a0d036299270bcc7b7d9d5c3cffd14d03c",
     "material_removed": false
    },
    "published_at": "2026-10-28T00:05:00.000Z",
    "detected_at": "2026-10-28T01:10:01.747Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-47b09d7cb13a",
     "display_name": "AC Milan — Bologna",
     "competition_name": "Serie A",
     "starts_at": "2026-10-28T17:30:00.000Z",
     "url": "/football/matches/ac-milan-vs-bologna-2026-10-28/",
     "scoreline": "2-4",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "AC Milan 1-0 Bologna",
    "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-28T00:05:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-28T00:05:00.000Z",
     "detected_at": "2026-10-28T01:10:01.747Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "AC Milan 1-0 Bologna",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: AC Milan 1-0 Bologna"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-4",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was AC Milan 2-4 Bologna."
    },
    "settlements": [
     {
      "operation_id": "54bd8a45650c8df45628debb32db71be37c63929d90a7ba89c8f9deeedc6134f",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "AC Milan",
      "decimal_odds": "1.6711",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-28T03:09:21.287Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/ac-milan/serie-a-predictions/feature/inter-milan-juve-to-triumph-wednesdays-serie-a-predictions_607793.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "AC Milan 1-0 Bologna"
   }
  },
  {
   "record_id": "n-e877fad814c87c7dfa0b0378",
   "url": "/authors/matt-law/picks/13/#pick-n-e877fad814c87c7dfa0b0378",
   "match": "Villarreal v Espanyol",
   "match_url": "/football/matches/villarreal-vs-espanyol-2026-10-30/",
   "kickoff": "2026-10-30T20:00:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 57.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Villarreal 2-0 Espanyol",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-28T09:24:00.000Z",
   "recorded_at": "2026-10-28T10:10:09.451Z",
   "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.4098",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-e877fad814c87c7dfa0b0378",
    "quote_text": "We say: Villarreal 2-0 Espanyol",
    "fragment_from": 4081,
    "fragment_to": 4112,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/villarreal/preview/villarreal-vs-espanyol-prediction-team-news-lineups_607852.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "87ed0b1841787f873dfddd7f99e902cfcd2be995af2ab02182396e78c7eef6b7",
     "material_removed": false
    },
    "published_at": "2026-10-28T09:24:00.000Z",
    "detected_at": "2026-10-28T10:10:09.451Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-6b2e43166ed3",
     "display_name": "Villarreal — Espanyol",
     "competition_name": "LaLiga",
     "starts_at": "2026-10-30T20:00:00.000Z",
     "url": "/football/matches/villarreal-vs-espanyol-2026-10-30/",
     "scoreline": "0-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Villarreal 2-0 Espanyol",
    "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-28T09:24:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-28T09:24:00.000Z",
     "detected_at": "2026-10-28T10:10:09.451Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Villarreal 2-0 Espanyol",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Villarreal 2-0 Espanyol"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Villarreal 0-1 Espanyol."
    },
    "settlements": [
     {
      "operation_id": "9dea1646d56adb545c222522bd7f7ca5b87ffc4e4d7c4dc1cc67751f7284fa55",
      "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": "Villarreal",
      "decimal_odds": "1.4098",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-30T11:06:00.338Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/villarreal/preview/villarreal-vs-espanyol-prediction-team-news-lineups_607852.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Villarreal 2-0 Espanyol"
   }
  },
  {
   "record_id": "n-1f5d16b865509c52e4211247",
   "url": "/authors/matt-law/picks/13/#pick-n-1f5d16b865509c52e4211247",
   "match": "Nice v Stade Rennais",
   "match_url": "/football/matches/nice-vs-stade-rennais-2026-10-30/",
   "kickoff": "2026-10-30T18:00:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 16.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Nice 1-2 Stade Rennais",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "5-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-30T00:05:00.000Z",
   "recorded_at": "2026-10-30T01:10:44.322Z",
   "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.4000",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-1f5d16b865509c52e4211247",
    "quote_text": "We say: Nice 1-2 Rennes",
    "fragment_from": 1567,
    "fragment_to": 1590,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/psg/ligue-1-title-race/feature/can-le-havre-shock-psg-fridays-ligue-1-predictions_607914.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "fc07338a30d928a80d24a4304f581dfff8c28c3219118406bb9fbff91724ba26",
     "material_removed": false
    },
    "published_at": "2026-10-30T00:05:00.000Z",
    "detected_at": "2026-10-30T01:10:44.322Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-ec6fbfaa0001",
     "display_name": "Nice — Stade Rennais",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-30T18:00:00.000Z",
     "url": "/football/matches/nice-vs-stade-rennais-2026-10-30/",
     "scoreline": "5-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Nice 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-30T00:05:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-30T00:05:00.000Z",
     "detected_at": "2026-10-30T01:10:44.322Z",
     "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-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: Nice 1-2 Stade Rennais"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "5-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Nice 5-2 Stade Rennais."
    },
    "settlements": [
     {
      "operation_id": "16a4275ae0dfc6d07efbe921271bb346eb554856610efcba134996078f151b8d",
      "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": "2.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-30T05:46:58.421Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/ligue-1-title-race/feature/can-le-havre-shock-psg-fridays-ligue-1-predictions_607914.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Nice 1-2 Stade Rennais"
   }
  },
  {
   "record_id": "n-2cba5e2e065ef3082fa2f653",
   "url": "/authors/matt-law/picks/13/#pick-n-2cba5e2e065ef3082fa2f653",
   "match": "Le Havre v Paris Saint-Germain",
   "match_url": "/football/matches/le-havre-vs-paris-saint-germain-2026-10-30/",
   "kickoff": "2026-10-30T18:00:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 16.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Le Havre 0-2 Paris Saint-Germain",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-5",
   "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-30T00:05:00.000Z",
   "recorded_at": "2026-10-30T01:10:44.322Z",
   "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.2500",
    "result": "Won",
    "points_hundredths": 2500,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-2cba5e2e065ef3082fa2f653",
    "quote_text": "We say: Le Havre 0-2 Paris Saint-Germain",
    "fragment_from": 819,
    "fragment_to": 859,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/psg/ligue-1-title-race/feature/can-le-havre-shock-psg-fridays-ligue-1-predictions_607914.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "fc07338a30d928a80d24a4304f581dfff8c28c3219118406bb9fbff91724ba26",
     "material_removed": false
    },
    "published_at": "2026-10-30T00:05:00.000Z",
    "detected_at": "2026-10-30T01:10:44.322Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-093cac49e8f6",
     "display_name": "Le Havre — Paris Saint-Germain",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-30T18:00:00.000Z",
     "url": "/football/matches/le-havre-vs-paris-saint-germain-2026-10-30/",
     "scoreline": "1-5",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Le Havre 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-30T00:05:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-30T00:05:00.000Z",
     "detected_at": "2026-10-30T01:10:44.322Z",
     "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": "Le Havre 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: Le Havre 0-2 Paris Saint-Germain"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-5",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Le Havre 1-5 Paris Saint-Germain."
    },
    "settlements": [
     {
      "operation_id": "440253340b38676ea2b7793eecc4d88b4738dcd18f2e7e92741065ad8aef340c",
      "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.2500",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 2500,
      "executed_at": "2026-10-30T05:47:00.364Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/ligue-1-title-race/feature/can-le-havre-shock-psg-fridays-ligue-1-predictions_607914.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Le Havre 0-2 Paris Saint-Germain"
   }
  },
  {
   "record_id": "n-aee29d979183a7c2e88c1ff4",
   "url": "/authors/matt-law/picks/13/#pick-n-aee29d979183a7c2e88c1ff4",
   "match": "Lille v RC Lens",
   "match_url": "/football/matches/lille-vs-rc-lens-2026-10-30/",
   "kickoff": "2026-10-30T20:05:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 18.9,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Lille 1-0 RC Lens",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "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-30T00:05:00.000Z",
   "recorded_at": "2026-10-30T01:10:44.322Z",
   "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.5500",
    "result": "Won",
    "points_hundredths": 15500,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-aee29d979183a7c2e88c1ff4",
    "quote_text": "We say: Lille 1-0 Lens",
    "fragment_from": 2260,
    "fragment_to": 2282,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/psg/ligue-1-title-race/feature/can-le-havre-shock-psg-fridays-ligue-1-predictions_607914.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "fc07338a30d928a80d24a4304f581dfff8c28c3219118406bb9fbff91724ba26",
     "material_removed": false
    },
    "published_at": "2026-10-30T00:05:00.000Z",
    "detected_at": "2026-10-30T01:10:44.322Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-0154b7c67113",
     "display_name": "Lille — RC Lens",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-30T20:05:00.000Z",
     "url": "/football/matches/lille-vs-rc-lens-2026-10-30/",
     "scoreline": "1-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Lille 1-0 RC Lens",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "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-30T00:05:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-30T00:05:00.000Z",
     "detected_at": "2026-10-30T01:10:44.322Z",
     "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 1-0 RC Lens",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Lille 1-0 RC Lens"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Lille 1-0 RC Lens."
    },
    "settlements": [
     {
      "operation_id": "fce3ab016bdf71567ce6a40528c6c5fa1aef9e0583e7f10005ab2f4e0f984b57",
      "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": "2.5400",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 15400,
      "executed_at": "2026-10-30T05:47:02.117Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/ligue-1-title-race/feature/can-le-havre-shock-psg-fridays-ligue-1-predictions_607914.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Lille 1-0 RC Lens"
   }
  },
  {
   "record_id": "n-5585521e935b94d393a665ff",
   "url": "/authors/matt-law/picks/13/#pick-n-5585521e935b94d393a665ff",
   "match": "Real Racing Club v Real Madrid",
   "match_url": "/football/matches/real-racing-club-vs-real-madrid-2026-11-01/",
   "kickoff": "2026-11-01T15:15:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 51.1,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Real Racing Club 1-3 Real Madrid",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-3",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-30T11:51:00.000Z",
   "recorded_at": "2026-10-30T12:10:03.164Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-5585521e935b94d393a665ff",
    "quote_text": "We say: Racing de Santander 1-3 Real Madrid",
    "fragment_from": 4422,
    "fragment_to": 4465,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/real-madrid/race-for-the-la-liga-title/preview/racing-vs-real-madrid-prediction-team-news-lineups_608064.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "b221b91941ec307b2508497421221e132f3c75eb8ee6558900af84f924a86e9f",
     "material_removed": false
    },
    "published_at": "2026-10-30T11:51:00.000Z",
    "detected_at": "2026-10-30T12:10:03.164Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-83a08c2a2eca",
     "display_name": "Real Racing Club — Real Madrid",
     "competition_name": "LaLiga",
     "starts_at": "2026-11-01T15:15:00.000Z",
     "url": "/football/matches/real-racing-club-vs-real-madrid-2026-11-01/",
     "scoreline": "0-3",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Real Racing Club 1-3 Real Madrid",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-30T11:51:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-30T11:51:00.000Z",
     "detected_at": "2026-10-30T12:10:03.164Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Real Racing Club 1-3 Real Madrid",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-3",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Real Racing Club 1-3 Real Madrid"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-3",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Real Racing Club 0-3 Real Madrid."
    },
    "settlements": [
     {
      "operation_id": "2924be03069a81765646f7dd724a46c80faacd772bae2a2c70999a987d1c87a4",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Real Madrid",
      "decimal_odds": "1.2083",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 2083,
      "executed_at": "2026-11-01T14:24:29.248Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/real-madrid/race-for-the-la-liga-title/preview/racing-vs-real-madrid-prediction-team-news-lineups_608064.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Real Racing Club 1-3 Real Madrid"
   }
  },
  {
   "record_id": "n-f8e83ce64556d009b3de543b",
   "url": "/authors/matt-law/picks/13/#pick-n-f8e83ce64556d009b3de543b",
   "match": "Getafe v Sevilla",
   "match_url": "/football/matches/getafe-vs-sevilla-2026-11-01/",
   "kickoff": "2026-11-01T13:00:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 46.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Getafe 0-1 Sevilla",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-30T13:50:15.000Z",
   "recorded_at": "2026-10-30T14:10:38.598Z",
   "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.4800",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-f8e83ce64556d009b3de543b",
    "quote_text": "We say: Getafe 0-1 Sevilla",
    "fragment_from": 3849,
    "fragment_to": 3875,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/sevilla/preview/getafe-vs-sevilla-prediction-team-news-lineups_608074.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "da39d5a89384faa1d5d241a7168f53c656a297e960f1bde32585fb9f6daf6172",
     "material_removed": false
    },
    "published_at": "2026-10-30T13:50:15.000Z",
    "detected_at": "2026-10-30T14:10:38.598Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-85621d5bb3a5",
     "display_name": "Getafe — Sevilla",
     "competition_name": "LaLiga",
     "starts_at": "2026-11-01T13:00:00.000Z",
     "url": "/football/matches/getafe-vs-sevilla-2026-11-01/",
     "scoreline": "3-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Getafe 0-1 Sevilla",
    "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-30T13:50:15.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-30T13:50:15.000Z",
     "detected_at": "2026-10-30T14:10:38.598Z",
     "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": "Getafe 0-1 Sevilla",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Getafe 0-1 Sevilla"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "3-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Getafe 3-1 Sevilla."
    },
    "settlements": [
     {
      "operation_id": "13082acf706f7a0fb5fe40e00faa97ff9e7511ba88db5968e06b079145cba59e",
      "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": "Sevilla",
      "decimal_odds": "2.4800",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-11-01T05:27:25.550Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/sevilla/preview/getafe-vs-sevilla-prediction-team-news-lineups_608074.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Getafe 0-1 Sevilla"
   }
  },
  {
   "record_id": "n-6cc874dc6cd8646d964d3b7f",
   "url": "/authors/matt-law/picks/13/#pick-n-6cc874dc6cd8646d964d3b7f",
   "match": "Elche v Valencia",
   "match_url": "/football/matches/elche-vs-valencia-2026-11-01/",
   "kickoff": "2026-11-01T17:30:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 51.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Elche 2-1 Valencia",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-30T13:22:00.000Z",
   "recorded_at": "2026-10-30T14:10:39.590Z",
   "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": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-6cc874dc6cd8646d964d3b7f",
    "quote_text": "We say: Elche 2-1 Valencia",
    "fragment_from": 3872,
    "fragment_to": 3898,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/valencia/preview/elche-vs-valencia-prediction-team-news-lineups_608073.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "4f887efc23fea9f1c98afb3dcb22c92dcc5701d32d0d4f18bf18b98ea3814ffb",
     "material_removed": false
    },
    "published_at": "2026-10-30T13:22:00.000Z",
    "detected_at": "2026-10-30T14:10:39.590Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-0f26b2861a19",
     "display_name": "Elche — Valencia",
     "competition_name": "LaLiga",
     "starts_at": "2026-11-01T17:30:00.000Z",
     "url": "/football/matches/elche-vs-valencia-2026-11-01/",
     "scoreline": "0-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Elche 2-1 Valencia",
    "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-30T13:22:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-30T13:22:00.000Z",
     "detected_at": "2026-10-30T14:10:39.590Z",
     "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": "Elche 2-1 Valencia",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Elche 2-1 Valencia"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Elche 0-1 Valencia."
    },
    "settlements": [
     {
      "operation_id": "1a45ccc0875f321cc4fdceb161be52e40ece214f15c72bace527ce863defe332",
      "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": "Elche",
      "decimal_odds": "2.3000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-30T19:28:35.533Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/valencia/preview/elche-vs-valencia-prediction-team-news-lineups_608073.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Elche 2-1 Valencia"
   }
  },
  {
   "record_id": "n-14c4578e2de31ac2e9b9b47c",
   "url": "/authors/matt-law/picks/13/#pick-n-14c4578e2de31ac2e9b9b47c",
   "match": "FC Augsburg v SC Freiburg",
   "match_url": "/football/matches/fc-augsburg-vs-sc-freiburg-2026-10-31/",
   "kickoff": "2026-10-31T14:30:00.000Z",
   "competition": "Bundesliga",
   "lead_hours": 13.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: FC Augsburg 1-1 SC Freiburg",
   "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-31T00:20:00.000Z",
   "recorded_at": "2026-10-31T01:10:51.457Z",
   "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-14c4578e2de31ac2e9b9b47c",
    "quote_text": "We say: Augsburg 1-1 Freiburg",
    "fragment_from": 770,
    "fragment_to": 799,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "55b7d100f9ea07889b2102bd8e4d92ebefca2ed0fa8bfe2ee43f6e19402abf06",
     "material_removed": false
    },
    "published_at": "2026-10-31T00:20:00.000Z",
    "detected_at": "2026-10-31T01:10:51.457Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-3424cd07a380",
     "display_name": "FC Augsburg — SC Freiburg",
     "competition_name": "Bundesliga",
     "starts_at": "2026-10-31T14:30:00.000Z",
     "url": "/football/matches/fc-augsburg-vs-sc-freiburg-2026-10-31/",
     "scoreline": "1-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "FC Augsburg 1-1 SC Freiburg",
    "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-31T00:20:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-31T00:20:00.000Z",
     "detected_at": "2026-10-31T01:10:51.457Z",
     "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": "FC Augsburg 1-1 SC Freiburg",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: FC Augsburg 1-1 SC Freiburg"
    },
    "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 FC Augsburg 1-2 SC Freiburg."
    },
    "settlements": [
     {
      "operation_id": "ebba7ac81647722287d5f844f345c0dbff541e970bf6c0c99dc2eb6cc21d0ff1",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "3.8000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T13:36:20.855Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "FC Augsburg 1-1 SC Freiburg"
   }
  },
  {
   "record_id": "n-4cb5f2036aaa91384b251d6f",
   "url": "/authors/matt-law/picks/13/#pick-n-4cb5f2036aaa91384b251d6f",
   "match": "Borussia M'gladbach v SC Paderborn 07",
   "match_url": "/football/matches/borussia-m-gladbach-vs-sc-paderborn-07-2026-10-31/",
   "kickoff": "2026-10-31T14:30:00.000Z",
   "competition": "Bundesliga",
   "lead_hours": 13.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Borussia M'gladbach 2-1 SC Paderborn 07",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-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-31T00:20:00.000Z",
   "recorded_at": "2026-10-31T01:10:51.457Z",
   "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-4cb5f2036aaa91384b251d6f",
    "quote_text": "We say: Borussia Monchengladbach 2-1 SC Paderborn",
    "fragment_from": 3401,
    "fragment_to": 3450,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "55b7d100f9ea07889b2102bd8e4d92ebefca2ed0fa8bfe2ee43f6e19402abf06",
     "material_removed": false
    },
    "published_at": "2026-10-31T00:20:00.000Z",
    "detected_at": "2026-10-31T01:10:51.457Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-941a5bb75f38",
     "display_name": "Borussia M'gladbach — SC Paderborn 07",
     "competition_name": "Bundesliga",
     "starts_at": "2026-10-31T14:30:00.000Z",
     "url": "/football/matches/borussia-m-gladbach-vs-sc-paderborn-07-2026-10-31/",
     "scoreline": "0-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Borussia M'gladbach 2-1 SC Paderborn 07",
    "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-31T00:20:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-31T00:20:00.000Z",
     "detected_at": "2026-10-31T01:10:51.457Z",
     "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": "Borussia M'gladbach 2-1 SC Paderborn 07",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Borussia M'gladbach 2-1 SC Paderborn 07"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Borussia M'gladbach 0-0 SC Paderborn 07."
    },
    "settlements": [
     {
      "operation_id": "64f9ed791e2c821735e48a462ccf89a295822acdbcf6be32f5164ce0d716f13d",
      "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": "Borussia M'gladbach",
      "decimal_odds": "1.9524",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T13:36:28.379Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Borussia M'gladbach 2-1 SC Paderborn 07"
   }
  },
  {
   "record_id": "n-5a2fd7022778f494a33c918d",
   "url": "/authors/matt-law/picks/13/#pick-n-5a2fd7022778f494a33c918d",
   "match": "SV Werder Bremen v TSG Hoffenheim",
   "match_url": "/football/matches/sv-werder-bremen-vs-tsg-hoffenheim-2026-10-31/",
   "kickoff": "2026-10-31T14:30:00.000Z",
   "competition": "Bundesliga",
   "lead_hours": 13.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: SV Werder Bremen 2-2 TSG Hoffenheim",
   "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-31T00:20:00.000Z",
   "recorded_at": "2026-10-31T01:10:51.457Z",
   "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-5a2fd7022778f494a33c918d",
    "quote_text": "We say: Werder Bremen 2-2 Hoffenheim",
    "fragment_from": 1670,
    "fragment_to": 1706,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "55b7d100f9ea07889b2102bd8e4d92ebefca2ed0fa8bfe2ee43f6e19402abf06",
     "material_removed": false
    },
    "published_at": "2026-10-31T00:20:00.000Z",
    "detected_at": "2026-10-31T01:10:51.457Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-fbb1feeff73d",
     "display_name": "SV Werder Bremen — TSG Hoffenheim",
     "competition_name": "Bundesliga",
     "starts_at": "2026-10-31T14:30:00.000Z",
     "url": "/football/matches/sv-werder-bremen-vs-tsg-hoffenheim-2026-10-31/",
     "scoreline": "2-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "SV Werder Bremen 2-2 TSG Hoffenheim",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-31T00:20:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-31T00:20:00.000Z",
     "detected_at": "2026-10-31T01:10:51.457Z",
     "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": "SV Werder Bremen 2-2 TSG Hoffenheim",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: SV Werder Bremen 2-2 TSG Hoffenheim"
    },
    "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 SV Werder Bremen 2-0 TSG Hoffenheim."
    },
    "settlements": [
     {
      "operation_id": "89fc68c5994c9dbe06bc06349ca4a5f6d00318fb9cceaab56a35555f14bf3a15",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "3.8000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T13:36:34.256Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "SV Werder Bremen 2-2 TSG Hoffenheim"
   }
  },
  {
   "record_id": "n-712102a2f259a3ae5b105d7c",
   "url": "/authors/matt-law/picks/13/#pick-n-712102a2f259a3ae5b105d7c",
   "match": "FC Bayern München v Borussia Dortmund",
   "match_url": "/football/matches/fc-bayern-munchen-vs-borussia-dortmund-2026-10-31/",
   "kickoff": "2026-10-31T17:30:00.000Z",
   "competition": "Bundesliga",
   "lead_hours": 16.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: FC Bayern München 3-2 Borussia Dortmund",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-31T00:20:00.000Z",
   "recorded_at": "2026-10-31T01:10:51.457Z",
   "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.3400",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-712102a2f259a3ae5b105d7c",
    "quote_text": "We say: Bayern Munich 3-2 Borussia Dortmund",
    "fragment_from": 5188,
    "fragment_to": 5231,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "55b7d100f9ea07889b2102bd8e4d92ebefca2ed0fa8bfe2ee43f6e19402abf06",
     "material_removed": false
    },
    "published_at": "2026-10-31T00:20:00.000Z",
    "detected_at": "2026-10-31T01:10:51.457Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-459823b8fd68",
     "display_name": "FC Bayern München — Borussia Dortmund",
     "competition_name": "Bundesliga",
     "starts_at": "2026-10-31T17:30:00.000Z",
     "url": "/football/matches/fc-bayern-munchen-vs-borussia-dortmund-2026-10-31/",
     "scoreline": "2-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "FC Bayern München 3-2 Borussia Dortmund",
    "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-31T00:20:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-31T00:20:00.000Z",
     "detected_at": "2026-10-31T01:10:51.457Z",
     "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": "FC Bayern München 3-2 Borussia Dortmund",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "3-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: FC Bayern München 3-2 Borussia Dortmund"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was FC Bayern München 2-2 Borussia Dortmund."
    },
    "settlements": [
     {
      "operation_id": "06bb25dd6048474022113e3dc98a97566ec157d8bf7e7fc10e35d6184b05199e",
      "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": "FC Bayern München",
      "decimal_odds": "1.3400",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T13:36:56.831Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "FC Bayern München 3-2 Borussia Dortmund"
   }
  },
  {
   "record_id": "n-86ce75a1300f1305ee53d76c",
   "url": "/authors/matt-law/picks/13/#pick-n-86ce75a1300f1305ee53d76c",
   "match": "Bayer 04 Leverkusen v VfB Stuttgart",
   "match_url": "/football/matches/bayer-04-leverkusen-vs-vfb-stuttgart-2026-10-31/",
   "kickoff": "2026-10-31T14:30:00.000Z",
   "competition": "Bundesliga",
   "lead_hours": 13.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Bayer 04 Leverkusen 3-1 VfB Stuttgart",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-4",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-31T00:20:00.000Z",
   "recorded_at": "2026-10-31T01:10:51.457Z",
   "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-86ce75a1300f1305ee53d76c",
    "quote_text": "We say: Bayer Leverkusen 3-1 Stuttgart",
    "fragment_from": 2516,
    "fragment_to": 2554,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "55b7d100f9ea07889b2102bd8e4d92ebefca2ed0fa8bfe2ee43f6e19402abf06",
     "material_removed": false
    },
    "published_at": "2026-10-31T00:20:00.000Z",
    "detected_at": "2026-10-31T01:10:51.457Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-13162f93c610",
     "display_name": "Bayer 04 Leverkusen — VfB Stuttgart",
     "competition_name": "Bundesliga",
     "starts_at": "2026-10-31T14:30:00.000Z",
     "url": "/football/matches/bayer-04-leverkusen-vs-vfb-stuttgart-2026-10-31/",
     "scoreline": "2-4",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Bayer 04 Leverkusen 3-1 VfB Stuttgart",
    "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-31T00:20:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-31T00:20:00.000Z",
     "detected_at": "2026-10-31T01:10:51.457Z",
     "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": "Bayer 04 Leverkusen 3-1 VfB Stuttgart",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "3-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Bayer 04 Leverkusen 3-1 VfB Stuttgart"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-4",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Bayer 04 Leverkusen 2-4 VfB Stuttgart."
    },
    "settlements": [
     {
      "operation_id": "c66291a3946c6b3ff23fcc575169d53b24eb35858717fed3c369b9b667d0867e",
      "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": "Bayer 04 Leverkusen",
      "decimal_odds": "1.7692",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T13:36:43.997Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Bayer 04 Leverkusen 3-1 VfB Stuttgart"
   }
  },
  {
   "record_id": "n-c5bf6b4774bbd1eb2137d470",
   "url": "/authors/matt-law/picks/13/#pick-n-c5bf6b4774bbd1eb2137d470",
   "match": "FC Schalke 04 v RB Leipzig",
   "match_url": "/football/matches/fc-schalke-04-vs-rb-leipzig-2026-10-31/",
   "kickoff": "2026-10-31T14:30:00.000Z",
   "competition": "Bundesliga",
   "lead_hours": 13.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: FC Schalke 04 0-1 RB Leipzig",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-31T00:20:00.000Z",
   "recorded_at": "2026-10-31T01:10:51.457Z",
   "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-c5bf6b4774bbd1eb2137d470",
    "quote_text": "We say: Schalke 04 0-1 RB Leipzig",
    "fragment_from": 4282,
    "fragment_to": 4315,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "55b7d100f9ea07889b2102bd8e4d92ebefca2ed0fa8bfe2ee43f6e19402abf06",
     "material_removed": false
    },
    "published_at": "2026-10-31T00:20:00.000Z",
    "detected_at": "2026-10-31T01:10:51.457Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-0af8ac563359",
     "display_name": "FC Schalke 04 — RB Leipzig",
     "competition_name": "Bundesliga",
     "starts_at": "2026-10-31T14:30:00.000Z",
     "url": "/football/matches/fc-schalke-04-vs-rb-leipzig-2026-10-31/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "FC Schalke 04 0-1 RB Leipzig",
    "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-31T00:20:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-31T00:20:00.000Z",
     "detected_at": "2026-10-31T01:10:51.457Z",
     "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": "FC Schalke 04 0-1 RB Leipzig",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: FC Schalke 04 0-1 RB Leipzig"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was FC Schalke 04 0-2 RB Leipzig."
    },
    "settlements": [
     {
      "operation_id": "fb591a0593b34c0b85a97bcd6d169fe77deceacd58ffe9286396815ca94eafac",
      "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": "RB Leipzig",
      "decimal_odds": "1.8197",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 8197,
      "executed_at": "2026-10-31T13:36:50.607Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/bayern-munich/bundesliga-title-race/feature/can-dortmund-upset-bayern-saturdays-bundesliga-predictions_608056.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "FC Schalke 04 0-1 RB Leipzig"
   }
  },
  {
   "record_id": "n-f58bd7a383678e9e9c3b0c56",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Troyes 2-1 Le Mans",
   "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-31T00:10:00.000Z",
   "recorded_at": "2026-10-31T01:10:53.540Z",
   "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-592744aee62d467271b72192",
   "url": "/authors/matt-law/picks/13/#pick-n-592744aee62d467271b72192",
   "match": "Rayo Vallecano v Celta Vigo",
   "match_url": "/football/matches/rayo-vallecano-vs-celta-vigo-2026-10-31/",
   "kickoff": "2026-10-31T15:15:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 13.1,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Rayo Vallecano 1-1 Celta Vigo",
   "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-31T00:05:00.000Z",
   "recorded_at": "2026-10-31T02:10:24.460Z",
   "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.4000",
    "result": "Won",
    "points_hundredths": 14000,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-592744aee62d467271b72192",
    "quote_text": "We say: Rayo Vallecano 1-1 Celta Vigo",
    "fragment_from": 1443,
    "fragment_to": 1480,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/barcelona/race-for-the-la-liga-title/feature/barca-to-get-back-on-track-saturdays-la-liga-predictions_608016.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "2e40ce949ea2fa63e2149f5e66f779c755cbd9f58e6113ecdcb839ae98d459bf",
     "material_removed": false
    },
    "published_at": "2026-10-31T00:05:00.000Z",
    "detected_at": "2026-10-31T02:10:24.460Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-cc323b5bd7d3",
     "display_name": "Rayo Vallecano — Celta Vigo",
     "competition_name": "LaLiga",
     "starts_at": "2026-10-31T15:15:00.000Z",
     "url": "/football/matches/rayo-vallecano-vs-celta-vigo-2026-10-31/",
     "scoreline": "3-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Rayo Vallecano 1-1 Celta Vigo",
    "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-31T00:05:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-31T00:05:00.000Z",
     "detected_at": "2026-10-31T02:10:24.460Z",
     "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": "Rayo Vallecano 1-1 Celta Vigo",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Rayo Vallecano 1-1 Celta Vigo"
    },
    "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 Rayo Vallecano 3-0 Celta Vigo."
    },
    "settlements": [
     {
      "operation_id": "8c5bfa4e7f54467ed7a0396801c747a7eb056ec10ae827cfd48ce4ff93d505ba",
      "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.2000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T09:41:17.105Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/barcelona/race-for-the-la-liga-title/feature/barca-to-get-back-on-track-saturdays-la-liga-predictions_608016.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Rayo Vallecano 1-1 Celta Vigo"
   }
  },
  {
   "record_id": "n-aa5cc213ef23bc7b3c984752",
   "url": "/authors/matt-law/picks/13/#pick-n-aa5cc213ef23bc7b3c984752",
   "match": "Levante UD v Atlético Madrid",
   "match_url": "/football/matches/levante-ud-vs-atletico-madrid-2026-10-31/",
   "kickoff": "2026-10-31T13:00:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 10.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Levante UD 0-1 Atlético Madrid",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-31T00:05:00.000Z",
   "recorded_at": "2026-10-31T02:10:24.460Z",
   "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-aa5cc213ef23bc7b3c984752",
    "quote_text": "We say: Levante 0-1 Atletico Madrid",
    "fragment_from": 754,
    "fragment_to": 789,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/barcelona/race-for-the-la-liga-title/feature/barca-to-get-back-on-track-saturdays-la-liga-predictions_608016.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "2e40ce949ea2fa63e2149f5e66f779c755cbd9f58e6113ecdcb839ae98d459bf",
     "material_removed": false
    },
    "published_at": "2026-10-31T00:05:00.000Z",
    "detected_at": "2026-10-31T02:10:24.460Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-d4720e9c48e9",
     "display_name": "Levante UD — Atlético Madrid",
     "competition_name": "LaLiga",
     "starts_at": "2026-10-31T13:00:00.000Z",
     "url": "/football/matches/levante-ud-vs-atletico-madrid-2026-10-31/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Levante UD 0-1 Atlético Madrid",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-31T00:05:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-31T00:05:00.000Z",
     "detected_at": "2026-10-31T02:10:24.460Z",
     "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": "Levante UD 0-1 Atlético Madrid",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Levante UD 0-1 Atlético Madrid"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Levante UD 0-2 Atlético Madrid."
    },
    "settlements": [
     {
      "operation_id": "8713c9432f720b7bf0b5af79e75000d549f66d907925b84a00649dc758c1c8a3",
      "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": "Atlético Madrid",
      "decimal_odds": "1.5064",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 5064,
      "executed_at": "2026-10-31T09:38:31.048Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/barcelona/race-for-the-la-liga-title/feature/barca-to-get-back-on-track-saturdays-la-liga-predictions_608016.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Levante UD 0-1 Atlético Madrid"
   }
  },
  {
   "record_id": "n-c33d99d01eb27d06747cfe66",
   "url": "/authors/matt-law/picks/13/#pick-n-c33d99d01eb27d06747cfe66",
   "match": "FC Barcelona v Deportivo Alavés",
   "match_url": "/football/matches/fc-barcelona-vs-deportivo-alaves-2026-10-31/",
   "kickoff": "2026-10-31T20:00:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 17.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: FC Barcelona 3-1 Deportivo Alavés",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "6-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-31T00:05:00.000Z",
   "recorded_at": "2026-10-31T02:10:24.460Z",
   "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.1076",
    "result": "Won",
    "points_hundredths": 1076,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-c33d99d01eb27d06747cfe66",
    "quote_text": "We say: Barcelona 3-1 Alaves",
    "fragment_from": 2929,
    "fragment_to": 2957,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/barcelona/race-for-the-la-liga-title/feature/barca-to-get-back-on-track-saturdays-la-liga-predictions_608016.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "2e40ce949ea2fa63e2149f5e66f779c755cbd9f58e6113ecdcb839ae98d459bf",
     "material_removed": false
    },
    "published_at": "2026-10-31T00:05:00.000Z",
    "detected_at": "2026-10-31T02:10:24.460Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-d7731dc6fd99",
     "display_name": "FC Barcelona — Deportivo Alavés",
     "competition_name": "LaLiga",
     "starts_at": "2026-10-31T20:00:00.000Z",
     "url": "/football/matches/fc-barcelona-vs-deportivo-alaves-2026-10-31/",
     "scoreline": "6-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "FC Barcelona 3-1 Deportivo Alavés",
    "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-31T00:05:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-31T00:05:00.000Z",
     "detected_at": "2026-10-31T02:10:24.460Z",
     "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": "FC Barcelona 3-1 Deportivo Alavés",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "3-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: FC Barcelona 3-1 Deportivo Alavés"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "6-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was FC Barcelona 6-1 Deportivo Alavés."
    },
    "settlements": [
     {
      "operation_id": "b5d94bcc4e0baabc457af5b38f9e1cfddefeed3f550d4b8a2256232664be8f68",
      "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": "FC Barcelona",
      "decimal_odds": "1.1076",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 1076,
      "executed_at": "2026-10-31T09:41:25.871Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/barcelona/race-for-the-la-liga-title/feature/barca-to-get-back-on-track-saturdays-la-liga-predictions_608016.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "FC Barcelona 3-1 Deportivo Alavés"
   }
  },
  {
   "record_id": "n-fa03cfe97dd9bab5df2643a2",
   "url": "/authors/matt-law/picks/13/#pick-n-fa03cfe97dd9bab5df2643a2",
   "match": "Real Betis v Málaga CF",
   "match_url": "/football/matches/real-betis-vs-malaga-cf-2026-10-31/",
   "kickoff": "2026-10-31T17:30:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 15.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Real Betis 2-1 Málaga CF",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "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-31T00:05:00.000Z",
   "recorded_at": "2026-10-31T02:10:24.460Z",
   "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.3016",
    "result": "Won",
    "points_hundredths": 3016,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-fa03cfe97dd9bab5df2643a2",
    "quote_text": "We say: Real Betis 2-1 Malaga",
    "fragment_from": 2222,
    "fragment_to": 2251,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/barcelona/race-for-the-la-liga-title/feature/barca-to-get-back-on-track-saturdays-la-liga-predictions_608016.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "2e40ce949ea2fa63e2149f5e66f779c755cbd9f58e6113ecdcb839ae98d459bf",
     "material_removed": false
    },
    "published_at": "2026-10-31T00:05:00.000Z",
    "detected_at": "2026-10-31T02:10:24.460Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-048fc596302d",
     "display_name": "Real Betis — Málaga CF",
     "competition_name": "LaLiga",
     "starts_at": "2026-10-31T17:30:00.000Z",
     "url": "/football/matches/real-betis-vs-malaga-cf-2026-10-31/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Real Betis 2-1 Málaga 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-31T00:05:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-31T00:05:00.000Z",
     "detected_at": "2026-10-31T02:10:24.460Z",
     "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": "Real Betis 2-1 Málaga CF",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Real Betis 2-1 Málaga CF"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "2-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Real Betis 2-1 Málaga CF."
    },
    "settlements": [
     {
      "operation_id": "5db06e97461b97e8ce03ade810d08bdd4b56a10f6a3a5054743b57e49437d07c",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Real Betis",
      "decimal_odds": "1.3016",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 3016,
      "executed_at": "2026-10-31T09:41:22.237Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/barcelona/race-for-the-la-liga-title/feature/barca-to-get-back-on-track-saturdays-la-liga-predictions_608016.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Real Betis 2-1 Málaga CF"
   }
  },
  {
   "record_id": "n-868711b6b38cff1c0ffcc897",
   "url": "/authors/matt-law/picks/13/#pick-n-868711b6b38cff1c0ffcc897",
   "match": "Borussia Dortmund v Real Betis",
   "match_url": "/football/matches/borussia-dortmund-vs-real-betis-2026-11-04/",
   "kickoff": "2026-11-04T20:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 50.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Borussia Dortmund 2-1 Real Betis",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "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-11-02T16:17:00.000Z",
   "recorded_at": "2026-11-02T17:10:17.845Z",
   "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": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-868711b6b38cff1c0ffcc897",
    "quote_text": "We say: Borussia Dortmund 2-1 Real Betis",
    "fragment_from": 4311,
    "fragment_to": 4351,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/betis/champions-league/preview/dortmund-vs-betis-prediction-team-news-lineups_608279.html",
     "display_name": null,
     "speaker": "Matt Law",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "bf82b07a1ebf61ea168396a581889f5c1422c245d511cf1c9184edaecc82c103",
     "material_removed": false
    },
    "published_at": "2026-11-02T16:17:00.000Z",
    "detected_at": "2026-11-02T17:10:17.845Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-f45b0ac9f3ae",
     "display_name": "Borussia Dortmund — Real Betis",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-11-04T20:00:00.000Z",
     "url": "/football/matches/borussia-dortmund-vs-real-betis-2026-11-04/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Borussia Dortmund 2-1 Real Betis",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "win",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-11-02T16:17:00.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-11-02T16:17:00.000Z",
     "detected_at": "2026-11-02T17:10:17.845Z",
     "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": "Borussia Dortmund 2-1 Real Betis",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Borussia Dortmund 2-1 Real Betis"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "2-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Borussia Dortmund 2-1 Real Betis."
    },
    "settlements": [
     {
      "operation_id": "4d0e9fe5e18b3ce62d9632e084eab1970f9a7718fe5aabe8edbca29a7298e047",
      "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": "Borussia Dortmund",
      "decimal_odds": "1.7500",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 7500,
      "executed_at": "2026-11-03T04:09:23.885Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Matt Law",
     "publisher": "Sports Mole",
     "forecaster": "Matt Law",
     "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/betis/champions-league/preview/dortmund-vs-betis-prediction-team-news-lineups_608279.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Borussia Dortmund 2-1 Real Betis"
   }
  }
 ],
 "pagination": {
  "per_page": 20,
  "total": 292,
  "pages": 16,
  "page_urls": [
   "/authors/matt-law/",
   "/authors/matt-law/picks/2/",
   "/authors/matt-law/picks/3/",
   "/authors/matt-law/picks/4/",
   "/authors/matt-law/picks/5/",
   "/authors/matt-law/picks/6/",
   "/authors/matt-law/picks/7/",
   "/authors/matt-law/picks/8/",
   "/authors/matt-law/picks/9/",
   "/authors/matt-law/picks/10/",
   "/authors/matt-law/picks/11/",
   "/authors/matt-law/picks/12/",
   "/authors/matt-law/picks/13/",
   "/authors/matt-law/picks/14/",
   "/authors/matt-law/picks/15/",
   "/authors/matt-law/picks/16/"
  ],
  "groups": {
   "settled": 13,
   "pending": 1,
   "excluded": 278
  },
  "continuation": "by_time",
  "page": 13,
  "first": 221,
  "last": 240,
  "author_url": "/authors/matt-law/",
  "current": true
 },
 "entity_id": "history:/authors/matt-law/picks/13/",
 "source_revision": 25
}
