{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "author",
 "url": "/authors/jimmy-the-punt-cantrill/",
 "canonical": "/authors/jimmy-the-punt-cantrill/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Jimmy 'The Punt' Cantrill: Football Prediction Record",
 "description": "3 settled picks by Jimmy 'The Punt' Cantrill archived before kick-off across 2 matches, 9 Apr 2026 – 9 May 2026: won 1 of 3.",
 "first_paragraph": {
  "body": "Forecast Record restored 3 settled archived picks by Jimmy 'The Punt' Cantrill from copies archived before kick-off, across 2 matches between 9 April and 9 May 2026. Reconstructed at archived prices: won 1 of 3 settled archived picks. Of the 33 predictions we hold for Jimmy 'The Punt' Cantrill, 3 were archived before kick-off by an independent web archive and 30 from the source’s own history. Figures as of 7 November 2026.",
  "key_number": "3",
  "data": "2026-11-07",
  "source_info": "our own evidence archive and market snapshot",
  "brand": "Forecast Record"
 },
 "indexable": false,
 "noindex_reason": "too_few_settled",
 "indexing_threshold": {
  "settled_count": 3,
  "date_count": 2,
  "required_settled": 10,
  "required_dates": 2,
  "live_count": 0,
  "restored_count": 29,
  "of_them_archived": 3
 },
 "data_date": "2026-11-07T19:52:23.438Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-08T02:12:33.000Z",
 "content_hash": null,
 "meaning_hash": "2cf7cbc47a355db5e904c5390f2e0b0d504b5c2dae890a546fd79515804843b4",
 "dependency_group": "author:e-d54f692ed33daf3c7ff56835",
 "release_id": "20261107-195223",
 "markup": [
  {
   "type_code": "WebPage",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "Organization",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "Person",
   "allowed": true,
   "cause": null
  }
 ],
 "exports": [
  {
   "type_code": "json",
   "url": "/authors/jimmy-the-punt-cantrill/index.json",
   "bytes": null
  },
  {
   "type_code": "csv",
   "url": "/authors/jimmy-the-punt-cantrill/picks.csv",
   "bytes": null
  }
 ],
 "modules": {
  "affiliate": true,
  "api": true,
  "compare_yourself": false
 },
 "affiliate_block": {
  "container": true,
  "request_url": "/partnery/moi",
  "disclosure": "Some links below are affiliate links and are marked as such. They never affect what you see above: the order of any table is computed before any commission is known.",
  "page_category": "author"
 },
 "restrictions": {
  "name_withdrawn": false,
  "tracker_number": null,
  "withdrawn_quotes": [],
  "removed_at": null,
  "cause": null,
  "suspended_records": [],
  "withdrawal_log_number": 0
 },
 "page_links": {
  "methodology": "/methodology/",
  "right_of_reply": "/right-of-reply/",
  "source_coverage": "/coverage/",
  "corrections_log": "/corrections/",
  "api": "/api/",
  "claim": "/claim/"
 },
 "entity": {
  "id": "e-d54f692ed33daf3c7ff56835",
  "public_name": "Jimmy 'The Punt' Cantrill",
  "tracker_number": 3979,
  "status": "active",
  "inactive_since": null,
  "verified_creator": false,
  "observation_period": {
   "since": "2026-10-11",
   "until": "2026-10-12"
  },
  "platform_list": [
   {
    "medium": "website",
    "handle": null,
    "url": null,
    "link_confirmed": false,
    "show": true
   }
  ],
  "comment": null
 },
 "headline_number": {
  "metric": {
   "metric_id": "p-e-d54f692ed33daf3c7ff56835-roi-market-price-90d-z99",
   "code_name": "roi_market_price",
   "display_name": "Return on stakes at an independent odds snapshot",
   "window_kind": "90d",
   "window_from": "2026-08-09",
   "window_to": "2026-11-07",
   "amount": null,
   "unit": "percent",
   "data_status": "unknown",
   "cause": "no pick in this window has been settled",
   "n_bets": 0,
   "n_events": 0,
   "n_void": null,
   "ci_low": null,
   "ci_high": null,
   "ci_method": "not_estimated",
   "price_source": "market_price",
   "coverage_percent": null,
   "breakdown": [],
   "methodology_version": "2.2",
   "data_date": "2026-11-07T19:52:23.438Z",
   "enough_for_ranking": false,
   "series_key": "market_price",
   "series_label": "At an independent odds snapshot"
  },
  "byline": "Return on stakes at an independent odds snapshot over 90 days: 0 settled picks across 0 matches",
  "average_odds": null,
  "odds_from_author": null,
  "odds_from_snapshot": null
 },
 "metrics": [],
 "history": [],
 "simulation": {
  "series_key": null,
  "series_label": "No level stake placed",
  "bankroll_hundredths": 1000000,
  "reserve_hundredths": 0,
  "issued_total_hundredths": 1000000,
  "initial_hundredths": 1000000,
  "stake_hundredths": 10000,
  "top_up_count": 0,
  "profit_hundredths": 0,
  "rewards_off": null,
  "data_points": [],
  "top_ups": [],
  "rule": "Every tracked author starts with 10,000 points and stakes 100 per qualifying pick. This author has 0 settled bets, so the bankroll stands at its starting value."
 },
 "simulations": [],
 "completeness": {
  "detected": 33,
  "recognised": 33,
  "accepted": 30,
  "executed": 30,
  "calculated": 29,
  "gaps": [
   {
    "cause": "read after the match, from archived pages",
    "figure": 3
   }
  ]
 },
 "record_counts": {
  "dictionary_version": "1",
  "statements": 33,
  "of_them_restored": 33,
  "not_predictions": {
   "opinions": 0,
   "not_about_a_match": 0,
   "unclassified": 0
  },
  "predictions": 33,
  "predictions_restored": 33,
  "matches": 1,
  "admitted": 30,
  "qualifying_picks": 30,
  "qualifying_picks_restored": 30,
  "settled_picks": 29,
  "settled_picks_restored": 29,
  "series_list": [
   {
    "code_name": "retro_author_price",
    "derived": false,
    "is_restored": true,
    "qualifying_picks": 1,
    "settled_picks": 1,
    "void": 0,
    "pending_picks": 0,
    "matches": 1,
    "operations_settled": 1,
    "stakes_hundredths": [
     10000
    ],
    "methodologies": [
     "retro-1.0"
    ],
    "display_name": "Restored, at the author's stated price"
   },
   {
    "code_name": "retro_market_closing_sm",
    "derived": false,
    "is_restored": true,
    "qualifying_picks": 30,
    "settled_picks": 29,
    "void": 0,
    "pending_picks": 1,
    "matches": 26,
    "operations_settled": 29,
    "stakes_hundredths": [
     10000
    ],
    "methodologies": [
     "retro-1.1"
    ],
    "display_name": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)"
   }
  ],
  "gaps": [
   {
    "code_name": "after_match",
    "cause": "read after the match, from archived pages",
    "figure": 3
   }
  ],
  "duplicates": 0,
  "junk": {},
  "dictionary_url": "/methodology/#words"
 },
 "evidence_items": [
  {
   "observation_id": "n-8c8045e8b9f1de3862c54e1b",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-8c8045e8b9f1de3862c54e1b",
   "quote_text": "Over 2.5 goals",
   "fragment_from": 321,
   "fragment_to": 335,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/go-against-the-flow-at-riverside/231937",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "86eddfed63ddd1e945312d3818224803d5f9f385a32f32b11d28b6e0c020454b",
    "material_removed": false
   },
   "published_at": null,
   "detected_at": "2026-10-12T21:15:56.399Z",
   "executed_at": "2026-10-13T20:06:20.783Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Middlesbrough v Southampton",
    "competition_name": "EFL Championship",
    "starts_at": "2026-05-09T11:30:00.000Z",
    "url": null,
    "scoreline": "0-0"
   },
   "market_label": "Over/Under 2.5 goals",
   "outcome_label": "over 2.5",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.7500",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "restored_archive",
   "provenance_words": "Archived before kick-off",
   "archive_snapshot_at": "2026-05-08T01:54:40.000Z",
   "dates": {
    "fragment_at": null,
    "fragment_basis": "no",
    "source_page_at": null,
    "detected_at": "2026-10-12T21:15:56.399Z",
    "archive_snapshot_at": "2026-05-08T01:54:40.000Z",
    "flags": [
     "no_date"
    ],
    "flag_words": "The source states no publication date.",
    "rule_version": "1.1"
   },
   "origin": "prematch_web_archive",
   "origin_detail": null,
   "origin_words": "Archived before kick-off",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Over/Under 2.5 goals",
    "choice": "over 2.5",
    "author_odds": null,
    "market_key": "total",
    "choice_key": "over",
    "period": "match",
    "line": "2.5",
    "subject": "goals_total",
    "in_words": "Over/Under 2.5 goals: over 2.5"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "0-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Middlesbrough 0-0 Southampton."
   },
   "settlements": [
    {
     "operation_id": "ce738732f69a60990d492024eeb111ffca2284c8a223b7a303d21e1a0b98ca9a",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Over/Under 2.5 goals",
     "choice": "over 2.5",
     "decimal_odds": "1.7500",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T20:06:20.783Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/go-against-the-flow-at-riverside/231937",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-99999dadf460e242ee05ca64",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-99999dadf460e242ee05ca64",
   "quote_text": "Aston Villa to win to nil",
   "fragment_from": 316,
   "fragment_to": 341,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/nil-problems-for-villans/231320",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "168f9273effe534f1c15ad0ed774a3fe0c62f7477d0d6ef2944239dd95f6e00b",
    "material_removed": false
   },
   "published_at": null,
   "detected_at": "2026-10-12T21:14:26.231Z",
   "executed_at": "2026-10-13T20:04:54.328Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Bologna v Aston Villa",
    "competition_name": "UEFA Europa League",
    "starts_at": "2026-04-09T19:00:00.000Z",
    "url": null,
    "scoreline": "1-3"
   },
   "market_label": "To win to nil",
   "outcome_label": "Aston Villa to win to nil",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "3.1800",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "restored_archive",
   "provenance_words": "Archived before kick-off",
   "archive_snapshot_at": "2026-04-09T06:47:16.000Z",
   "dates": {
    "fragment_at": null,
    "fragment_basis": "no",
    "source_page_at": null,
    "detected_at": "2026-10-12T21:14:26.231Z",
    "archive_snapshot_at": "2026-04-09T06:47:16.000Z",
    "flags": [
     "no_date"
    ],
    "flag_words": "The source states no publication date.",
    "rule_version": "1.1"
   },
   "origin": "prematch_web_archive",
   "origin_detail": null,
   "origin_words": "Archived before kick-off",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "To win to nil",
    "choice": "Aston Villa to win to nil",
    "author_odds": null,
    "market_key": "win_to_nil",
    "choice_key": "2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "To win to nil: Aston Villa to win to nil"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Bologna 1-3 Aston Villa."
   },
   "settlements": [
    {
     "operation_id": "543cd61fd572db66bf6714bc1b3544b7265a61b8298f721a499fb4c9ea13eb68",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "To win to nil",
     "choice": "Aston Villa to win to nil",
     "decimal_odds": "3.1800",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T20:04:54.328Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy",
    "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.sportinglife.com/football/news/nil-problems-for-villans/231320",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-0edbf3e126adc849bc582846",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-0edbf3e126adc849bc582846",
   "quote_text": "Aston Villa to win",
   "fragment_from": 272,
   "fragment_to": 290,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/nil-problems-for-villans/231320",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "168f9273effe534f1c15ad0ed774a3fe0c62f7477d0d6ef2944239dd95f6e00b",
    "material_removed": false
   },
   "published_at": null,
   "detected_at": "2026-10-12T21:14:26.231Z",
   "executed_at": "2026-10-13T20:04:54.311Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Bologna v Aston Villa",
    "competition_name": "UEFA Europa League",
    "starts_at": "2026-04-09T19:00:00.000Z",
    "url": null,
    "scoreline": "1-3"
   },
   "market_label": "1X2, match result",
   "outcome_label": "Aston Villa",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.9900",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 9900,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "restored_archive",
   "provenance_words": "Archived before kick-off",
   "archive_snapshot_at": "2026-04-09T06:47:16.000Z",
   "dates": {
    "fragment_at": null,
    "fragment_basis": "no",
    "source_page_at": null,
    "detected_at": "2026-10-12T21:14:26.231Z",
    "archive_snapshot_at": "2026-04-09T06:47:16.000Z",
    "flags": [
     "no_date"
    ],
    "flag_words": "The source states no publication date.",
    "rule_version": "1.1"
   },
   "origin": "prematch_web_archive",
   "origin_detail": null,
   "origin_words": "Archived before kick-off",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "1X2, match result",
    "choice": "Aston Villa",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: Aston Villa"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "1-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was Bologna 1-3 Aston Villa."
   },
   "settlements": [
    {
     "operation_id": "ec15954807dafc913877ef13ba1f14084a911f906bb49a4cfe421425a6fba0f9",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "Aston Villa",
     "decimal_odds": "1.9900",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 9900,
     "executed_at": "2026-10-13T20:04:54.311Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy",
    "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.sportinglife.com/football/news/nil-problems-for-villans/231320",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-f3a14cefc8a4e74f97cab013",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-f3a14cefc8a4e74f97cab013",
   "quote_text": "Stockport to win",
   "fragment_from": 255,
   "fragment_to": 271,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/stockport-vs-orient-tips-home-comforts/225521",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "5c132c036149dfa90015479e79729c1a7ac50ceaa9367d1e62b35e7dbc4ac1f5",
    "material_removed": false
   },
   "published_at": "2025-05-13T07:42:01.000Z",
   "detected_at": "2026-10-12T20:38:19.080Z",
   "executed_at": "2026-10-13T19:53:07.436Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Stockport County v Leyton Orient",
    "competition_name": "EFL League One",
    "starts_at": "2025-05-14T19:00:00.000Z",
    "url": null,
    "scoreline": "1-1"
   },
   "market_label": "1X2, match result",
   "outcome_label": "Stockport County",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.9050",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2025-05-13T07:42:01.000Z",
    "fragment_basis": "page",
    "source_page_at": "2025-05-13T07:42:01.000Z",
    "detected_at": "2026-10-12T20:38:19.080Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "1X2, match result",
    "choice": "Stockport County",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: Stockport County"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Stockport County 1-1 Leyton Orient."
   },
   "settlements": [
    {
     "operation_id": "f29d48ae885287f1831bcd9912cdfb5269599b92f852be447407ead2d7dab7a5",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "Stockport County",
     "decimal_odds": "1.9050",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T19:53:07.436Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/stockport-vs-orient-tips-home-comforts/225521",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-73783ce1e0f94661ef61365a",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-73783ce1e0f94661ef61365a",
   "quote_text": "West Ham to win",
   "fragment_from": 305,
   "fragment_to": 320,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/get-hammers-onside-at-old-trafford/229037",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "5a41c3f5e786131add39a2d8d7561e83cbbb63d2844f27a7061069ac8b1b79c2",
    "material_removed": false
   },
   "published_at": "2025-12-03T11:51:32.000Z",
   "detected_at": "2026-10-12T20:38:16.455Z",
   "executed_at": null,
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": "disputed_reading",
   "event": {
    "event_id": null,
    "display_name": "Manchester United v West Ham United",
    "competition_name": "Premier League",
    "starts_at": "2025-12-04T20:00:00.000Z",
    "url": null,
    "scoreline": null
   },
   "market_label": "1X2, match result",
   "outcome_label": "West Ham United",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "7.0700",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "unknown",
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2025-12-03T11:51:32.000Z",
    "fragment_basis": "page",
    "source_page_at": "2025-12-03T11:51:32.000Z",
    "detected_at": "2026-10-12T20:38:16.455Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "1X2, match result",
    "choice": "West Ham United",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: West Ham United"
   },
   "author_claim_outcome": {
    "result": "unknown",
    "scoreline": null,
    "data_status": "unknown",
    "cause": "awaiting a final score for this restored pick",
    "methodology_version": "2.2",
    "in_words": "Pending: awaiting a final score for this restored pick."
   },
   "settlements": [
    {
     "operation_id": "389e6c8a293dd3ebfe9b516daecb4848cba65327bc37016ab6ca1f1ed50bcaa9",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "West Ham United",
     "decimal_odds": "7.0700",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "skipped",
     "status_text": "Not executed: ",
     "result": "unknown",
     "result_words": "Pending",
     "change_hundredths": null,
     "executed_at": "2026-10-19T18:51:15.925Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/get-hammers-onside-at-old-trafford/229037",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-1ee059fea81fae693edd9ac8",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-1ee059fea81fae693edd9ac8",
   "quote_text": "Manchester City to win to nil",
   "fragment_from": 272,
   "fragment_to": 301,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/another-defeat-for-red-happy-blues/231379",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "baa789f0a4dcbfebeb37904feba5fcb110563e1a2372dd60179b9712b15cb537",
    "material_removed": false
   },
   "published_at": "2026-04-10T08:51:09.000Z",
   "detected_at": "2026-10-12T20:38:14.350Z",
   "executed_at": "2026-10-13T20:05:06.633Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Chelsea v Manchester City",
    "competition_name": "Premier League",
    "starts_at": "2026-04-12T15:30:00.000Z",
    "url": null,
    "scoreline": "0-3"
   },
   "market_label": "To win to nil",
   "outcome_label": "Manchester City to win to nil",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "4.0000",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 30000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-04-10T08:51:09.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-04-10T08:51:09.000Z",
    "detected_at": "2026-10-12T20:38:14.350Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "To win to nil",
    "choice": "Manchester City to win to nil",
    "author_odds": null,
    "market_key": "win_to_nil",
    "choice_key": "2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "To win to nil: Manchester City to win to nil"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "0-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was Chelsea 0-3 Manchester City."
   },
   "settlements": [
    {
     "operation_id": "adefdf5d7eb1721e33a04196cea027887bbe23dad95de6e755ce22aead46a0d3",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "To win to nil",
     "choice": "Manchester City to win to nil",
     "decimal_odds": "4.0000",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 30000,
     "executed_at": "2026-10-13T20:05:06.633Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/another-defeat-for-red-happy-blues/231379",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-9afc37e8db6b3304007dd887",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-9afc37e8db6b3304007dd887",
   "quote_text": "Manchester City to win",
   "fragment_from": 225,
   "fragment_to": 247,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/another-defeat-for-red-happy-blues/231379",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "baa789f0a4dcbfebeb37904feba5fcb110563e1a2372dd60179b9712b15cb537",
    "material_removed": false
   },
   "published_at": "2026-04-10T08:51:09.000Z",
   "detected_at": "2026-10-12T20:38:14.350Z",
   "executed_at": "2026-10-13T20:05:06.602Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Chelsea v Manchester City",
    "competition_name": "Premier League",
    "starts_at": "2026-04-12T15:30:00.000Z",
    "url": null,
    "scoreline": "0-3"
   },
   "market_label": "1X2, match result",
   "outcome_label": "Manchester City",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.9400",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 9400,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-04-10T08:51:09.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-04-10T08:51:09.000Z",
    "detected_at": "2026-10-12T20:38:14.350Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "1X2, match result",
    "choice": "Manchester City",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: Manchester City"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "0-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was Chelsea 0-3 Manchester City."
   },
   "settlements": [
    {
     "operation_id": "1516672bbb0fd4b25b6ab9c5dedeccacc7e3c8c05f0129c20ed17b98ced83122",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "Manchester City",
     "decimal_odds": "1.9400",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 9400,
     "executed_at": "2026-10-13T20:05:06.602Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/another-defeat-for-red-happy-blues/231379",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-7389cc4ab6a886f625b5d3aa",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-7389cc4ab6a886f625b5d3aa",
   "quote_text": "Wrexham draw no bet",
   "fragment_from": 224,
   "fragment_to": 243,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/efl-tips-blue-monday-for-bluebirds/233744",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "e72660dbab308a42a92fb3bbc9c69c2e5ac8cbe1353a994f9928af3792a50221",
    "material_removed": false
   },
   "published_at": "2026-08-13T23:00:00.000Z",
   "detected_at": "2026-10-12T20:38:11.425Z",
   "executed_at": null,
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "",
   "cause_code": "too_late",
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-08-13T23:00:00.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-08-13T23:00:00.000Z",
    "detected_at": "2026-10-12T20:38:11.425Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-6eab72cb275263191e531393",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-6eab72cb275263191e531393",
   "quote_text": "Under 2.5 goals",
   "fragment_from": 259,
   "fragment_to": 274,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/bayern-vs-leverkusen-tips-tight-cagey/224090",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "f9b4b4b9df78996191ff05db984dbc11fdef83749d015154197851dff4f73e2a",
    "material_removed": false
   },
   "published_at": "2025-03-04T09:47:49.000Z",
   "detected_at": "2026-10-12T20:12:46.256Z",
   "executed_at": "2026-10-13T19:51:04.003Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "FC Bayern München v Bayer 04 Leverkusen",
    "competition_name": "UEFA Champions League",
    "starts_at": "2025-03-05T20:00:00.000Z",
    "url": null,
    "scoreline": "3-0"
   },
   "market_label": "Over/Under 2.5 goals",
   "outcome_label": "under 2.5",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "2.0550",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2025-03-04T09:47:49.000Z",
    "fragment_basis": "page",
    "source_page_at": "2025-03-04T09:47:49.000Z",
    "detected_at": "2026-10-12T20:12:46.256Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Over/Under 2.5 goals",
    "choice": "under 2.5",
    "author_odds": null,
    "market_key": "total",
    "choice_key": "under",
    "period": "match",
    "line": "2.5",
    "subject": "goals_total",
    "in_words": "Over/Under 2.5 goals: under 2.5"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "3-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was FC Bayern München 3-0 Bayer 04 Leverkusen."
   },
   "settlements": [
    {
     "operation_id": "ea8dac3b415714fc9646a9db32810b2f4ba38e0363e1f68e3270c0a6fd6b5efa",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Over/Under 2.5 goals",
     "choice": "under 2.5",
     "decimal_odds": "2.0550",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T19:51:04.003Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/bayern-vs-leverkusen-tips-tight-cagey/224090",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-6d41a80a6c4e5c1258aeb661",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-6d41a80a6c4e5c1258aeb661",
   "quote_text": "Both teams to score",
   "fragment_from": 211,
   "fragment_to": 230,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/rotherham-vs-wycombe-tips-go-for-goals/224402",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "754b853544bf0d8d1ba8a1cc72c6fa75e3d34addea4ff2144e2e76f39ee144a4",
    "material_removed": false
   },
   "published_at": "2025-03-17T13:29:11.000Z",
   "detected_at": "2026-10-12T20:12:43.456Z",
   "executed_at": "2026-10-13T19:51:28.034Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Rotherham United v Wycombe Wanderers",
    "competition_name": "EFL League One",
    "starts_at": "2025-03-18T19:45:00.000Z",
    "url": null,
    "scoreline": "2-3"
   },
   "market_label": "Both teams to score",
   "outcome_label": "yes",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.8500",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 8500,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2025-03-17T13:29:11.000Z",
    "fragment_basis": "page",
    "source_page_at": "2025-03-17T13:29:11.000Z",
    "detected_at": "2026-10-12T20:12:43.456Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Both teams to score",
    "choice": "yes",
    "author_odds": null,
    "market_key": "both_teams_score",
    "choice_key": "yes",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Both teams to score: yes"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "2-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was Rotherham United 2-3 Wycombe Wanderers."
   },
   "settlements": [
    {
     "operation_id": "eb018dafec3d0fe642215e24253246e405c29c23d979edb92bfe606759c0bce7",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Both teams to score",
     "choice": "yes",
     "decimal_odds": "1.8500",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 8500,
     "executed_at": "2026-10-13T19:51:28.034Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/rotherham-vs-wycombe-tips-go-for-goals/224402",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-90acd65b1bf67be499752f3a",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-90acd65b1bf67be499752f3a",
   "quote_text": "Real Madrid to win",
   "fragment_from": 249,
   "fragment_to": 267,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/arsenal-vs-real-tips-kings-of-europe/224786",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "8efe2215929b125b267aec0d7965c4d734270ed83e62dd3d23922dc3c4ea1256",
    "material_removed": false
   },
   "published_at": "2025-04-07T11:05:17.000Z",
   "detected_at": "2026-10-12T20:12:40.569Z",
   "executed_at": "2026-10-13T19:51:49.142Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Arsenal v Real Madrid",
    "competition_name": "UEFA Champions League",
    "starts_at": "2025-04-08T19:00:00.000Z",
    "url": null,
    "scoreline": "3-0"
   },
   "market_label": "1X2, match result",
   "outcome_label": "Real Madrid",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "3.4700",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2025-04-07T11:05:17.000Z",
    "fragment_basis": "page",
    "source_page_at": "2025-04-07T11:05:17.000Z",
    "detected_at": "2026-10-12T20:12:40.569Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "1X2, match result",
    "choice": "Real Madrid",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: Real Madrid"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "3-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Arsenal 3-0 Real Madrid."
   },
   "settlements": [
    {
     "operation_id": "dc719f810219dd40c4718958302d1e696b047844e1b8d86fe7f77edd6ab5b9ba",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "Real Madrid",
     "decimal_odds": "3.4700",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T19:51:49.142Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/arsenal-vs-real-tips-kings-of-europe/224786",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-7e9e6f1204befb7e9f3a8ead",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-7e9e6f1204befb7e9f3a8ead",
   "quote_text": "Fulham to win and both teams to score",
   "fragment_from": 218,
   "fragment_to": 255,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/bournemouth-vs-fulham-tips-cherries-not-on-top/224852",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "5d5c0be1957f5c28eaf6424345a44aac9ff6612e2ffe393b8eb0a2f18ad0d2b0",
    "material_removed": false
   },
   "published_at": "2025-04-10T16:30:09.000Z",
   "detected_at": "2026-10-12T20:12:37.570Z",
   "executed_at": "2026-10-13T19:51:59.770Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "AFC Bournemouth v Fulham",
    "competition_name": "Premier League",
    "starts_at": "2025-04-14T19:00:00.000Z",
    "url": null,
    "scoreline": "1-0"
   },
   "market_label": "Match result and both teams to score",
   "outcome_label": "Fulham win, both teams to score: yes",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "5.8750",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2025-04-10T16:30:09.000Z",
    "fragment_basis": "page",
    "source_page_at": "2025-04-10T16:30:09.000Z",
    "detected_at": "2026-10-12T20:12:37.570Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Match result and both teams to score",
    "choice": "Fulham win, both teams to score: yes",
    "author_odds": null,
    "market_key": "both_teams_score_and_result",
    "choice_key": "2-yes",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Match result and both teams to score: Fulham win, both teams to score: yes"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was AFC Bournemouth 1-0 Fulham."
   },
   "settlements": [
    {
     "operation_id": "782f57b20f1fb0f0173688fe9a093b20a876368db1e0eea647f0393e41572412",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Match result and both teams to score",
     "choice": "Fulham win, both teams to score: yes",
     "decimal_odds": "5.8750",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T19:51:59.770Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/bournemouth-vs-fulham-tips-cherries-not-on-top/224852",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-a70b3840f3a113ad025096e9",
   "url": "/authors/jimmy-the-punt-cantrill/picks/3/#pick-n-a70b3840f3a113ad025096e9",
   "quote_text": "Both teams to score",
   "fragment_from": 252,
   "fragment_to": 271,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/efl-trophy-final-tips-goals-galore/224872",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "7ffef6ac6ab2e6bc781bb72b4c7c660cd6bf6cb03366d8932b2cd81bff9ca599",
    "material_removed": false
   },
   "published_at": "2025-04-11T08:14:01.000Z",
   "detected_at": "2026-10-12T20:12:37.507Z",
   "executed_at": "2026-10-13T19:51:55.212Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Birmingham City v Peterborough United",
    "competition_name": "EFL Trophy",
    "starts_at": "2025-04-13T14:00:00.000Z",
    "url": null,
    "scoreline": "0-2"
   },
   "market_label": "Both teams to score",
   "outcome_label": "yes",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.6200",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2025-04-11T08:14:01.000Z",
    "fragment_basis": "page",
    "source_page_at": "2025-04-11T08:14:01.000Z",
    "detected_at": "2026-10-12T20:12:37.507Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Both teams to score",
    "choice": "yes",
    "author_odds": null,
    "market_key": "both_teams_score",
    "choice_key": "yes",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Both teams to score: yes"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "0-2",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Birmingham City 0-2 Peterborough United."
   },
   "settlements": [
    {
     "operation_id": "b63d88a4113acf1626538d43872c66c62cff1065efed933e0023fac013e14f35",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Both teams to score",
     "choice": "yes",
     "decimal_odds": "1.6200",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T19:51:55.212Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/efl-trophy-final-tips-goals-galore/224872",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-356db0ee97dbc8ce0d8ce605",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-356db0ee97dbc8ce0d8ce605",
   "quote_text": "Under 3.5 Asian total cards",
   "fragment_from": 245,
   "fragment_to": 272,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/barcelona-vs-inter-tips-stalemate/225227",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "437c21e05308da140a2a3101aafdb839759341f1b385271acc632958f200052f",
    "material_removed": false
   },
   "published_at": "2025-04-28T15:24:17.000Z",
   "detected_at": "2026-10-12T20:12:35.069Z",
   "executed_at": "2026-10-13T19:52:31.358Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "FC Barcelona v Inter",
    "competition_name": "UEFA Champions League",
    "starts_at": "2025-04-30T19:00:00.000Z",
    "url": null,
    "scoreline": "3-3"
   },
   "market_label": "Over/Under 3.5 cards",
   "outcome_label": "under 3.5",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.7700",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 7700,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2025-04-28T15:24:17.000Z",
    "fragment_basis": "page",
    "source_page_at": "2025-04-28T15:24:17.000Z",
    "detected_at": "2026-10-12T20:12:35.069Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Over/Under 3.5 cards",
    "choice": "under 3.5",
    "author_odds": null,
    "market_key": "cards_over_under",
    "choice_key": "under",
    "period": "match",
    "line": "3.5",
    "subject": "bookings",
    "in_words": "Over/Under 3.5 cards: under 3.5"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "3-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was FC Barcelona 3-3 Inter."
   },
   "settlements": [
    {
     "operation_id": "f92a356abdc15c7d45dcc0d34f9cb18ead574c27d44fddab0b764d589f36d52b",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Over/Under 3.5 cards",
     "choice": "under 3.5",
     "decimal_odds": "1.7700",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 7700,
     "executed_at": "2026-10-13T19:52:31.358Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/barcelona-vs-inter-tips-stalemate/225227",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-546550e4e04506f67e40da34",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-546550e4e04506f67e40da34",
   "quote_text": "Both teams to score",
   "fragment_from": 258,
   "fragment_to": 277,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/spurs-vs-bodo-glimt-tips-underrated/225244",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "1afee140f74b1794f631c112656f4295405ea1bd8bdaa7e53eb71a45320502b8",
    "material_removed": false
   },
   "published_at": "2025-04-29T15:24:32.000Z",
   "detected_at": "2026-10-12T20:12:34.994Z",
   "executed_at": "2026-10-13T19:52:32.630Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Tottenham Hotspur v Bodø/Glimt",
    "competition_name": "UEFA Europa League",
    "starts_at": "2025-05-01T19:00:00.000Z",
    "url": null,
    "scoreline": "3-1"
   },
   "market_label": "Both teams to score",
   "outcome_label": "yes",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.8000",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 8000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2025-04-29T15:24:32.000Z",
    "fragment_basis": "page",
    "source_page_at": "2025-04-29T15:24:32.000Z",
    "detected_at": "2026-10-12T20:12:34.994Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Both teams to score",
    "choice": "yes",
    "author_odds": null,
    "market_key": "both_teams_score",
    "choice_key": "yes",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Both teams to score: yes"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "3-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was Tottenham Hotspur 3-1 Bodø/Glimt."
   },
   "settlements": [
    {
     "operation_id": "9a9c8c346f20682945fadd10965f120ed522c643f3ba70fde162e6263fce894b",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Both teams to score",
     "choice": "yes",
     "decimal_odds": "1.8000",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 8000,
     "executed_at": "2026-10-13T19:52:32.630Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/spurs-vs-bodo-glimt-tips-underrated/225244",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-1d5e5fe6b286222941b8dd6e",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-1d5e5fe6b286222941b8dd6e",
   "quote_text": "Galatasaray to win",
   "fragment_from": 298,
   "fragment_to": 316,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/back-the-gala-upset/230007",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "35b39186c4dd70e7ea4e39e462cf21d7503025fc981c77b7edd2d1460140d072",
    "material_removed": false
   },
   "published_at": "2026-01-26T13:35:32.000Z",
   "detected_at": "2026-10-12T20:12:12.988Z",
   "executed_at": "2026-10-13T20:01:51.818Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Manchester City v Galatasaray",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-01-28T20:00:00.000Z",
    "url": null,
    "scoreline": "2-0"
   },
   "market_label": "1X2, match result",
   "outcome_label": "Galatasaray",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "10.0000",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-01-26T13:35:32.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-01-26T13:35:32.000Z",
    "detected_at": "2026-10-12T20:12:12.988Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "1X2, match result",
    "choice": "Galatasaray",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: Galatasaray"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "2-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Manchester City 2-0 Galatasaray."
   },
   "settlements": [
    {
     "operation_id": "8defbb4e2930dd7a3c2fb524082000862446ec93abe587b5858d849b8d60196a",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "Galatasaray",
     "decimal_odds": "10.0000",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T20:01:51.818Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/back-the-gala-upset/230007",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-77db1c134224306188a0982d",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-77db1c134224306188a0982d",
   "quote_text": "Both teams to score",
   "fragment_from": 253,
   "fragment_to": 272,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/back-the-gala-upset/230007",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "35b39186c4dd70e7ea4e39e462cf21d7503025fc981c77b7edd2d1460140d072",
    "material_removed": false
   },
   "published_at": "2026-01-26T13:35:32.000Z",
   "detected_at": "2026-10-12T20:12:12.988Z",
   "executed_at": "2026-10-13T20:01:51.778Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Manchester City v Galatasaray",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-01-28T20:00:00.000Z",
    "url": null,
    "scoreline": "2-0"
   },
   "market_label": "Both teams to score",
   "outcome_label": "yes",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.5700",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-01-26T13:35:32.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-01-26T13:35:32.000Z",
    "detected_at": "2026-10-12T20:12:12.988Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Both teams to score",
    "choice": "yes",
    "author_odds": null,
    "market_key": "both_teams_score",
    "choice_key": "yes",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Both teams to score: yes"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "2-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Manchester City 2-0 Galatasaray."
   },
   "settlements": [
    {
     "operation_id": "7a71068809fd00a7526a5ebed487dec5c945a21499caab79f8d7a52414e42fd3",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Both teams to score",
     "choice": "yes",
     "decimal_odds": "1.5700",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T20:01:51.778Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/back-the-gala-upset/230007",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-d163a6dbe570ac2ee6265c8d",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-d163a6dbe570ac2ee6265c8d",
   "quote_text": "PSG to win and both teams to score",
   "fragment_from": 254,
   "fragment_to": 288,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/tough-task-for-the-toon/230025",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "938bf970a8d6116f9ec0e8586e3f5dbddc0d1ee991040e4a83e5ec8f60094b8b",
    "material_removed": false
   },
   "published_at": "2026-01-27T09:49:15.000Z",
   "detected_at": "2026-10-12T20:12:12.797Z",
   "executed_at": "2026-10-13T20:01:51.843Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Paris Saint-Germain v Newcastle United",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-01-28T20:00:00.000Z",
    "url": null,
    "scoreline": "1-1"
   },
   "market_label": "Match result and both teams to score",
   "outcome_label": "Paris Saint-Germain win, both teams to score: yes",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "2.5000",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-01-27T09:49:15.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-01-27T09:49:15.000Z",
    "detected_at": "2026-10-12T20:12:12.797Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Match result and both teams to score",
    "choice": "Paris Saint-Germain win, both teams to score: yes",
    "author_odds": null,
    "market_key": "both_teams_score_and_result",
    "choice_key": "1-yes",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Match result and both teams to score: Paris Saint-Germain win, both teams to score: yes"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Paris Saint-Germain 1-1 Newcastle United."
   },
   "settlements": [
    {
     "operation_id": "e9cb494f8c9966dbd1f5342f17fc48ca1174797e6a1cbcf1d6c81330b94a02ac",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Match result and both teams to score",
     "choice": "Paris Saint-Germain win, both teams to score: yes",
     "decimal_odds": "2.5000",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T20:01:51.843Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/tough-task-for-the-toon/230025",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-7a949ae560807d7b39f3841a",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-7a949ae560807d7b39f3841a",
   "quote_text": "Over 2.5 goals",
   "fragment_from": 232,
   "fragment_to": 246,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/browne-worth-backing-at-bramall-lane/230216",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "3e64160900abae4a6489b6b70265f6326b058b534f7f574875ba1d1070d466fb",
    "material_removed": false
   },
   "published_at": "2026-02-05T14:47:30.000Z",
   "detected_at": "2026-10-12T20:12:12.005Z",
   "executed_at": "2026-10-13T20:02:25.818Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Sheffield United v Middlesbrough",
    "competition_name": "EFL Championship",
    "starts_at": "2026-02-09T20:01:00.000Z",
    "url": null,
    "scoreline": "1-2"
   },
   "market_label": "Over/Under 2.5 goals",
   "outcome_label": "over 2.5",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.7650",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 7650,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-02-05T14:47:30.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-02-05T14:47:30.000Z",
    "detected_at": "2026-10-12T20:12:12.005Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Over/Under 2.5 goals",
    "choice": "over 2.5",
    "author_odds": null,
    "market_key": "total",
    "choice_key": "over",
    "period": "match",
    "line": "2.5",
    "subject": "goals_total",
    "in_words": "Over/Under 2.5 goals: over 2.5"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "1-2",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was Sheffield United 1-2 Middlesbrough."
   },
   "settlements": [
    {
     "operation_id": "f69e982c1c8e80aed12f1eca5ceff66974558ec698f842f3f31c2cec44f768ca",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Over/Under 2.5 goals",
     "choice": "over 2.5",
     "decimal_odds": "1.7650",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 7650,
     "executed_at": "2026-10-13T20:02:25.818Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/browne-worth-backing-at-bramall-lane/230216",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-b6109323414e63c93f77fde5",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-b6109323414e63c93f77fde5",
   "quote_text": "Over 2.5 goals",
   "fragment_from": 223,
   "fragment_to": 237,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/not-so-boring-arsenal/230312",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "b5b3afe392f162a60dbfc1140551b0d539f9333a3b9257e7a5dfa9d345a4c6b8",
    "material_removed": false
   },
   "published_at": "2026-02-11T08:56:45.000Z",
   "detected_at": "2026-10-12T20:12:10.199Z",
   "executed_at": "2026-10-13T20:02:29.074Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Brentford v Arsenal",
    "competition_name": "Premier League",
    "starts_at": "2026-02-12T20:00:00.000Z",
    "url": null,
    "scoreline": "1-1"
   },
   "market_label": "Over/Under 2.5 goals",
   "outcome_label": "over 2.5",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.8700",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-02-11T08:56:45.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-02-11T08:56:45.000Z",
    "detected_at": "2026-10-12T20:12:10.199Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Over/Under 2.5 goals",
    "choice": "over 2.5",
    "author_odds": null,
    "market_key": "total",
    "choice_key": "over",
    "period": "match",
    "line": "2.5",
    "subject": "goals_total",
    "in_words": "Over/Under 2.5 goals: over 2.5"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Brentford 1-1 Arsenal."
   },
   "settlements": [
    {
     "operation_id": "c0f8b82301bf0112d2cc1332e990bc27dbe4b728db8786e4c8907367b45e3c10",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Over/Under 2.5 goals",
     "choice": "over 2.5",
     "decimal_odds": "1.8700",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T20:02:29.074Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/not-so-boring-arsenal/230312",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-e60d5e6ec0a946cccd07281c",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-e60d5e6ec0a946cccd07281c",
   "quote_text": "Middlesbrough draw no bet",
   "fragment_from": 244,
   "fragment_to": 269,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/boro-set-to-give-em-hell/230350",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "78b7991bb9742db21e12795969dd8c8ee604e937ccd10c81162737c28f5233b0",
    "material_removed": false
   },
   "published_at": "2026-02-12T14:25:19.000Z",
   "detected_at": "2026-10-12T20:12:09.818Z",
   "executed_at": null,
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "",
   "cause_code": "too_late",
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-02-12T14:25:19.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-02-12T14:25:19.000Z",
    "detected_at": "2026-10-12T20:12:09.818Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-ec721f3ef6bb6574eec73bef",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-ec721f3ef6bb6574eec73bef",
   "quote_text": "Both teams to score",
   "fragment_from": 233,
   "fragment_to": 252,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/bad-result-on-the-road-again/230415",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "46b83a3482a63c7922fa7c3810735ced809b04c896d51ead42bf30ee40f860c5",
    "material_removed": false
   },
   "published_at": "2026-02-16T17:52:50.000Z",
   "detected_at": "2026-10-12T20:12:07.596Z",
   "executed_at": "2026-10-13T20:02:41.364Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Qarabag v Newcastle United",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-02-18T17:45:00.000Z",
    "url": null,
    "scoreline": "1-6"
   },
   "market_label": "Both teams to score",
   "outcome_label": "yes",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.7000",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 7000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-02-16T17:52:50.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-02-16T17:52:50.000Z",
    "detected_at": "2026-10-12T20:12:07.596Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Both teams to score",
    "choice": "yes",
    "author_odds": null,
    "market_key": "both_teams_score",
    "choice_key": "yes",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Both teams to score: yes"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "1-6",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was Qarabag 1-6 Newcastle United."
   },
   "settlements": [
    {
     "operation_id": "dbd6508a47520bd80e81bc014d9511acb284626bff782346e3deda07eca029f4",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Both teams to score",
     "choice": "yes",
     "decimal_odds": "1.7000",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 7000,
     "executed_at": "2026-10-13T20:02:41.364Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/bad-result-on-the-road-again/230415",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-b72cf9b3377e71d5cc73fe68",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-b72cf9b3377e71d5cc73fe68",
   "quote_text": "Arsenal to win to nil at evens (William Hill)\n\n2",
   "fragment_from": 236,
   "fragment_to": 284,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/nil-problems-at-the-molineux/230419",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "b74cfca66d4a3dad91466eec684572bb8c2d02faa165aab167ea57ee3ce788e6",
    "material_removed": false
   },
   "published_at": "2026-02-17T10:12:46.000Z",
   "detected_at": "2026-10-12T20:12:07.471Z",
   "executed_at": "2026-10-13T20:02:42.007Z",
   "statement_class": "priced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Wolverhampton Wanderers v Arsenal",
    "competition_name": "Premier League",
    "starts_at": "2026-02-18T20:00:00.000Z",
    "url": null,
    "scoreline": "2-2"
   },
   "market_label": "To win to nil",
   "outcome_label": "Arsenal to win to nil",
   "odds_set": {
    "by_author": "2.0",
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.8400",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-02-17T10:12:46.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-02-17T10:12:46.000Z",
    "detected_at": "2026-10-12T20:12:07.471Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "To win to nil",
    "choice": "Arsenal to win to nil",
    "author_odds": "2.0",
    "market_key": "win_to_nil",
    "choice_key": "2",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "To win to nil: Arsenal to win to nil at 2.0"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "2-2",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.0",
    "in_words": "Lost: the final score was Wolverhampton Wanderers 2-2 Arsenal."
   },
   "settlements": [
    {
     "operation_id": "2eb347110c726befd3e46e7719eda2af1a8c210147dfb3d7b41d2b9213f28c82",
     "series_key": "retro_author_price",
     "series_label": "Restored, at the author's stated price",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "To win to nil",
     "choice": "Arsenal to win to nil",
     "decimal_odds": "2.0",
     "odds_role": "author_price",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T20:02:42.007Z",
     "methodology_version": "retro-1.0",
     "on_claim_market": true,
     "replaced": false
    },
    {
     "operation_id": "d9519d6b8306e039b77c19c56893432f657c93ca5f01df261a58ebfe9c6fd0c5",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "To win to nil",
     "choice": "Arsenal to win to nil",
     "decimal_odds": "1.8400",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T20:02:42.007Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/nil-problems-at-the-molineux/230419",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-a66824a03dd00ed86a6d2e49",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-a66824a03dd00ed86a6d2e49",
   "quote_text": "Over 2.5 goals",
   "fragment_from": 214,
   "fragment_to": 228,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/st-andrew-s-the-home-of-goals/230627",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "1df7ade29fecb592250daaef4b1cde2a05355bf6bfc3921a93a5acd1d519855e",
    "material_removed": false
   },
   "published_at": "2026-02-27T13:46:10.000Z",
   "detected_at": "2026-10-12T20:12:06.662Z",
   "executed_at": "2026-10-13T20:03:17.385Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Birmingham City v Middlesbrough",
    "competition_name": "EFL Championship",
    "starts_at": "2026-03-02T20:00:00.000Z",
    "url": null,
    "scoreline": "1-3"
   },
   "market_label": "Over/Under 2.5 goals",
   "outcome_label": "over 2.5",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.8850",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 8850,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-02-27T13:46:10.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-02-27T13:46:10.000Z",
    "detected_at": "2026-10-12T20:12:06.662Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Over/Under 2.5 goals",
    "choice": "over 2.5",
    "author_odds": null,
    "market_key": "total",
    "choice_key": "over",
    "period": "match",
    "line": "2.5",
    "subject": "goals_total",
    "in_words": "Over/Under 2.5 goals: over 2.5"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "1-3",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was Birmingham City 1-3 Middlesbrough."
   },
   "settlements": [
    {
     "operation_id": "ae1594b9d26618876bf6208907948290424c98c5d71bb00bc1f7984f671858aa",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Over/Under 2.5 goals",
     "choice": "over 2.5",
     "decimal_odds": "1.8850",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 8850,
     "executed_at": "2026-10-13T20:03:17.385Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/st-andrew-s-the-home-of-goals/230627",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-8e304e93466458eeba9bb76a",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-8e304e93466458eeba9bb76a",
   "quote_text": "Draw",
   "fragment_from": 243,
   "fragment_to": 247,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/leeds-in-a-sharing-mood-once-again/231982",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "641ebcc8cf389a9c96d46da20fb06cdb3c70b471339d75bdd8af8486fff354fd",
    "material_removed": false
   },
   "published_at": "2026-05-07T23:00:00.000Z",
   "detected_at": "2026-10-12T20:11:50.496Z",
   "executed_at": "2026-10-13T20:06:37.269Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Tottenham Hotspur v Leeds United",
    "competition_name": "Premier League",
    "starts_at": "2026-05-11T19:00:00.000Z",
    "url": null,
    "scoreline": "1-1"
   },
   "market_label": "1X2, match result",
   "outcome_label": "draw",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "3.7500",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 27500,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-05-07T23:00:00.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-05-07T23:00:00.000Z",
    "detected_at": "2026-10-12T20:11:50.496Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "1X2, match result",
    "choice": "draw",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "X",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: draw"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "1-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was Tottenham Hotspur 1-1 Leeds United."
   },
   "settlements": [
    {
     "operation_id": "95f5120e3061f4db36e8d63a33ef80882e880d3d5f3bcaab236bbe6192c17d8b",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "draw",
     "decimal_odds": "3.7500",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 27500,
     "executed_at": "2026-10-13T20:06:37.269Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/leeds-in-a-sharing-mood-once-again/231982",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-4fad61f69b28ce92e2ff27d8",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-4fad61f69b28ce92e2ff27d8",
   "quote_text": "Arsenal to win and under 3.5 goals",
   "fragment_from": 197,
   "fragment_to": 231,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/boring-boring-arsenal/232115",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "b1c0824cccad14889d86d24e9fb43c029c83e75b35e0bf3de7b890d232fe42a9",
    "material_removed": false
   },
   "published_at": "2026-05-14T23:00:00.000Z",
   "detected_at": "2026-10-12T20:11:48.847Z",
   "executed_at": "2026-10-13T20:06:59.997Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Arsenal v Burnley",
    "competition_name": "Premier League",
    "starts_at": "2026-05-18T19:00:00.000Z",
    "url": null,
    "scoreline": "1-0"
   },
   "market_label": "Match result and over/under 3.5 goals",
   "outcome_label": "Arsenal to win and under 3.5 goals",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "2.1000",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 11000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-05-14T23:00:00.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-05-14T23:00:00.000Z",
    "detected_at": "2026-10-12T20:11:48.847Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Match result and over/under 3.5 goals",
    "choice": "Arsenal to win and under 3.5 goals",
    "author_odds": null,
    "market_key": "result_and_total",
    "choice_key": "1-under",
    "period": "match",
    "line": "3.5",
    "subject": "goals_total",
    "in_words": "Match result and over/under 3.5 goals: Arsenal to win and under 3.5 goals"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "1-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was Arsenal 1-0 Burnley."
   },
   "settlements": [
    {
     "operation_id": "3d5b2368675e568c6ce00ebfe74218db729dea2d4964dd10022f9a02d6d20643",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Match result and over/under 3.5 goals",
     "choice": "Arsenal to win and under 3.5 goals",
     "decimal_odds": "2.1000",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 11000,
     "executed_at": "2026-10-13T20:06:59.997Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/boring-boring-arsenal/232115",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-946d3411b7968b2c877c28b4",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-946d3411b7968b2c877c28b4",
   "quote_text": "Draw",
   "fragment_from": 428,
   "fragment_to": 432,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/backed-into-a-corner/232248",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "242d815b414f6fdd2d90bd49d91545925fc4a0cc58f77df1b7d6e8676465c7fb",
    "material_removed": false
   },
   "published_at": "2026-05-21T23:00:00.000Z",
   "detected_at": "2026-10-12T20:11:48.640Z",
   "executed_at": "2026-10-13T20:07:09.668Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Tottenham Hotspur v Everton",
    "competition_name": "Premier League",
    "starts_at": "2026-05-24T15:00:00.000Z",
    "url": null,
    "scoreline": "1-0"
   },
   "market_label": "1X2, match result",
   "outcome_label": "draw",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "3.4800",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-05-21T23:00:00.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-05-21T23:00:00.000Z",
    "detected_at": "2026-10-12T20:11:48.640Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "1X2, match result",
    "choice": "draw",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "X",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: draw"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Tottenham Hotspur 1-0 Everton."
   },
   "settlements": [
    {
     "operation_id": "02d6a7f3e43eb8ca7d99fb8a30b715683ea68e3ad99994b7047f0a9e26c3cf1c",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "draw",
     "decimal_odds": "3.4800",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T20:07:09.668Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/backed-into-a-corner/232248",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-4368ea9549ff5c03e539d144",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-4368ea9549ff5c03e539d144",
   "quote_text": "England to win and under 3.5 goals",
   "fragment_from": 288,
   "fragment_to": 322,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/first-look-at-england-in-the-states/232505",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "32251fa9b65a04b5cb6c975a1f95d672ad08b941081402e307cf43ac442e7edd",
    "material_removed": false
   },
   "published_at": "2026-06-04T23:00:00.000Z",
   "detected_at": "2026-10-12T20:11:46.401Z",
   "executed_at": "2026-10-13T20:07:25.867Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "England v New Zealand",
    "competition_name": "International Soccer",
    "starts_at": "2026-06-06T20:00:00.000Z",
    "url": null,
    "scoreline": "1-0"
   },
   "market_label": "Match result and over/under 3.5 goals",
   "outcome_label": "England to win and under 3.5 goals",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "2.0250",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 10250,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-06-04T23:00:00.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-06-04T23:00:00.000Z",
    "detected_at": "2026-10-12T20:11:46.401Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Match result and over/under 3.5 goals",
    "choice": "England to win and under 3.5 goals",
    "author_odds": null,
    "market_key": "result_and_total",
    "choice_key": "1-under",
    "period": "match",
    "line": "3.5",
    "subject": "goals_total",
    "in_words": "Match result and over/under 3.5 goals: England to win and under 3.5 goals"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "1-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was England 1-0 New Zealand."
   },
   "settlements": [
    {
     "operation_id": "cf7e1652315ffd6047badf1d7be3ecc97f97a11d0f61a94612bc765fd1213e3c",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Match result and over/under 3.5 goals",
     "choice": "England to win and under 3.5 goals",
     "decimal_odds": "2.0250",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 10250,
     "executed_at": "2026-10-13T20:07:25.867Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/first-look-at-england-in-the-states/232505",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-ce56878245d9b73f2a299f41",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-ce56878245d9b73f2a299f41",
   "quote_text": "England to win and under 3.5 goals",
   "fragment_from": 277,
   "fragment_to": 311,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/last-look-at-england-before-world-cup/232572",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "74319cfd7173d4a8a7fabe3cf1090d49712942f5c156d49c311e91ff7d25f166",
    "material_removed": false
   },
   "published_at": "2026-06-08T23:00:00.000Z",
   "detected_at": "2026-10-12T20:11:46.299Z",
   "executed_at": "2026-10-13T20:07:28.686Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "England v Costa Rica",
    "competition_name": "International Soccer",
    "starts_at": "2026-06-10T21:00:00.000Z",
    "url": null,
    "scoreline": "3-0"
   },
   "market_label": "Match result and over/under 3.5 goals",
   "outcome_label": "England to win and under 3.5 goals",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.9250",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 9250,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-06-08T23:00:00.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-06-08T23:00:00.000Z",
    "detected_at": "2026-10-12T20:11:46.299Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Match result and over/under 3.5 goals",
    "choice": "England to win and under 3.5 goals",
    "author_odds": null,
    "market_key": "result_and_total",
    "choice_key": "1-under",
    "period": "match",
    "line": "3.5",
    "subject": "goals_total",
    "in_words": "Match result and over/under 3.5 goals: England to win and under 3.5 goals"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "3-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was England 3-0 Costa Rica."
   },
   "settlements": [
    {
     "operation_id": "bf88ca6ac16a235c58b398bdcdc07ad00021c85d5da0a7de70ff94ab7348c115",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Match result and over/under 3.5 goals",
     "choice": "England to win and under 3.5 goals",
     "decimal_odds": "1.9250",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 9250,
     "executed_at": "2026-10-13T20:07:28.686Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/last-look-at-england-before-world-cup/232572",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-2bfd22c8ca7bdc773517bb54",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-2bfd22c8ca7bdc773517bb54",
   "quote_text": "Bristol City to win to nil",
   "fragment_from": 229,
   "fragment_to": 255,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/carabao-cup-nil-problems-for-robins/233613",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "7b7901f997f4d0efc7bab5082183ffcd54a4ae042c05e51e31534ce96f3370d6",
    "material_removed": false
   },
   "published_at": "2026-08-04T23:00:00.000Z",
   "detected_at": "2026-10-12T20:11:42.291Z",
   "executed_at": "2026-10-13T20:08:15.043Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Bristol City v Walsall",
    "competition_name": "EFL Cup (Carabao)",
    "starts_at": "2026-08-06T18:45:00.000Z",
    "url": null,
    "scoreline": "0-1"
   },
   "market_label": "To win to nil",
   "outcome_label": "Bristol City to win to nil",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "2.2500",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-08-04T23:00:00.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-08-04T23:00:00.000Z",
    "detected_at": "2026-10-12T20:11:42.291Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "To win to nil",
    "choice": "Bristol City to win to nil",
    "author_odds": null,
    "market_key": "win_to_nil",
    "choice_key": "1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "To win to nil: Bristol City to win to nil"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "0-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Bristol City 0-1 Walsall."
   },
   "settlements": [
    {
     "operation_id": "4b7be42aecd5e266e236fbfb49e662f5e30f5fddfc50acaf4597da38dbc2a295",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "To win to nil",
     "choice": "Bristol City to win to nil",
     "decimal_odds": "2.2500",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T20:08:15.043Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/carabao-cup-nil-problems-for-robins/233613",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-0a393ab738f0d2c01ef6f3e4",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-0a393ab738f0d2c01ef6f3e4",
   "quote_text": "Wrexham draw no bet",
   "fragment_from": 211,
   "fragment_to": 230,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/new-sheriff-in-tinseltown/233952",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "f287d554e55571c8a1905a47106a15eb79c05e8dde2bcbd75e3c97ade701fa57",
    "material_removed": false
   },
   "published_at": "2026-08-26T23:00:00.000Z",
   "detected_at": "2026-10-12T20:11:39.625Z",
   "executed_at": null,
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "",
   "cause_code": "too_late",
   "event": null,
   "market_label": null,
   "outcome_label": null,
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": null,
    "closing_source": null
   },
   "stake_hundredths": null,
   "result": null,
   "simulation_change_hundredths": null,
   "bankroll_after_hundredths": null,
   "executed_by": null,
   "series_label": null,
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-08-26T23:00:00.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-08-26T23:00:00.000Z",
    "detected_at": "2026-10-12T20:11:39.625Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": null,
   "late_publication": null,
   "author_claim": null,
   "author_claim_outcome": {
    "result": null,
    "scoreline": null,
    "data_status": "unknown",
    "cause": "the statement was not read as a pick that can be settled",
    "methodology_version": "2.2",
    "in_words": "No outcome: the statement was not read as a pick that can be settled."
   },
   "settlements": [],
   "corrections": [],
   "funnel_stage": "prediction",
   "authorship": null,
   "correction": null
  },
  {
   "observation_id": "n-8e73ed8cc064ba987cc38f0f",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-8e73ed8cc064ba987cc38f0f",
   "quote_text": "Arsenal to win and under 4.5 goals",
   "fragment_from": 227,
   "fragment_to": 261,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/champions-league-tips-gunning-for-arsenal/234178",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "8293327ba512ef3a42e9475676607787d08accd23c57b517ccefae2ac000df8f",
    "material_removed": false
   },
   "published_at": "2026-09-07T23:00:00.000Z",
   "detected_at": "2026-10-12T20:11:34.592Z",
   "executed_at": "2026-10-13T20:09:53.735Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": "s-b87fb733afb8",
    "display_name": "SSC Napoli v Arsenal",
    "competition_name": "UEFA Champions League",
    "starts_at": "2026-09-09T19:00:00.000Z",
    "url": "/football/matches/ssc-napoli-vs-arsenal-2026-09-09/",
    "scoreline": "0-1"
   },
   "market_label": "Match result and over/under 4.5 goals",
   "outcome_label": "Arsenal to win and under 4.5 goals",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.8500",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 8500,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-09-07T23:00:00.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-09-07T23:00:00.000Z",
    "detected_at": "2026-10-12T20:11:34.592Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Match result and over/under 4.5 goals",
    "choice": "Arsenal to win and under 4.5 goals",
    "author_odds": null,
    "market_key": "result_and_total",
    "choice_key": "2-under",
    "period": "match",
    "line": "4.5",
    "subject": "goals_total",
    "in_words": "Match result and over/under 4.5 goals: Arsenal to win and under 4.5 goals"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "0-1",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Won: the final score was SSC Napoli 0-1 Arsenal."
   },
   "settlements": [
    {
     "operation_id": "7943b98ae3b5e415be61d6cf8a939615199055aa6217a083d32d77bedcd3a386",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Match result and over/under 4.5 goals",
     "choice": "Arsenal to win and under 4.5 goals",
     "decimal_odds": "1.8500",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 8500,
     "executed_at": "2026-10-13T20:09:53.735Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/champions-league-tips-gunning-for-arsenal/234178",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  },
  {
   "observation_id": "n-ea2ede26c6519cfedcb59d0e",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-ea2ede26c6519cfedcb59d0e",
   "quote_text": "Both teams to score",
   "fragment_from": 261,
   "fragment_to": 280,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.sportinglife.com/football/news/chelsea-vs-djurgardens-tips-consolation/225414",
    "display_name": null,
    "speaker": "Jimmy 'The Punt' Cantrill",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "173e04b264f1731a52547dccc77a417515a9a88dc1f4595e1b1631bb718f8b09",
    "material_removed": false
   },
   "published_at": "2025-05-07T09:13:55.000Z",
   "detected_at": "2026-10-11T22:08:21.332Z",
   "executed_at": "2026-10-13T19:52:44.832Z",
   "statement_class": "unpriced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": null,
    "display_name": "Chelsea v Djurgården",
    "competition_name": "UEFA Conference League",
    "starts_at": "2025-05-08T19:00:00.000Z",
    "url": null,
    "scoreline": "1-0"
   },
   "market_label": "Both teams to score",
   "outcome_label": "yes",
   "odds_set": {
    "by_author": null,
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.8800",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "loss",
   "simulation_change_hundredths": -10000,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2025-05-07T09:13:55.000Z",
    "fragment_basis": "page",
    "source_page_at": "2025-05-07T09:13:55.000Z",
    "detected_at": "2026-10-11T22:08:21.332Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 11 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Both teams to score",
    "choice": "yes",
    "author_odds": null,
    "market_key": "both_teams_score",
    "choice_key": "yes",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Both teams to score: yes"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "1-0",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.1",
    "in_words": "Lost: the final score was Chelsea 1-0 Djurgården."
   },
   "settlements": [
    {
     "operation_id": "aa9e84422b1425684c82c86abe9595c821477da1c23a37da7586529b66b25513",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Both teams to score",
     "choice": "yes",
     "decimal_odds": "1.8800",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-13T19:52:44.832Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "Jimmy 'The Punt' Cantrill",
    "publisher": "Sporting Life",
    "forecaster": "Jimmy 'The Punt' Cantrill",
    "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.sportinglife.com/football/news/chelsea-vs-djurgardens-tips-consolation/225414",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  }
 ],
 "standing": null,
 "retro": {
  "restored_total": 29,
  "of_them_archived_pre_match": 3,
  "found_post_match": 0,
  "of_them_source_reported": 26,
  "live_count": 0,
  "date_count": 24,
  "span_from": "2025-03-05",
  "span_to": "2026-09-09",
  "line_text": "restored history: 29, of which pre-match archive 3",
  "body": "We re-read what this author published before Premier League, Championship, League Cup, Champions League, Europa League, League One, EFL Trophy, Conference League and International Soccer matches between 5 March 2025 and 9 September 2026 and settled it against the final score. Restored picks: 29. Backed by a copy of the page in an independent web archive taken before kick-off: 3. Taken from the source’s own published history, published before kick-off by the source’s own date: 26. Found after the match, with the publication date as stated by the source: 0. The market price at the moment of publication cannot be reconstructed, so restored picks are shown as reconstructed at archived prices (~8–15 h before kick-off), not at the closing price, for the pre-match archive and the later finds separately; the author's quoted price and, where it exists, the aggregator closing price are compared with it on the same picks. Authors can delete losing picks, so restored history may look better than it was.",
  "precision": {
   "n": 29,
   "share": "0.4828"
  },
  "series_list": [
   {
    "code_name": "retro_author_price",
    "display_name": "Restored, at the author's stated price",
    "n": 1,
    "roi": "-100.0000",
    "ci_low": null,
    "ci_high": null,
    "data_status": "calculated",
    "methodology_version": "retro-1.0",
    "cause": null
   },
   {
    "code_name": "retro_market_closing",
    "display_name": "Restored, at the closing market price",
    "n": 0,
    "roi": null,
    "ci_low": null,
    "ci_high": null,
    "data_status": "unknown",
    "methodology_version": "retro-1.0",
    "cause": "no restored pick with this price"
   },
   {
    "code_name": "retro_market_closing_sm",
    "display_name": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
    "n": 29,
    "roi": "4.6552",
    "ci_low": "-38.9815",
    "ci_high": "52.6833",
    "data_status": "calculated",
    "methodology_version": "retro-1.1",
    "cause": null
   }
  ],
  "clv": {
   "data_status": "unknown",
   "cause": "the market price at the moment of publication is unknown for restored picks; the author's quoted price against the aggregator closing price is compared on the same picks in each part of the record above"
  },
  "methodology_version": "retro-1.0",
  "leagues": [
   "Premier League",
   "Championship",
   "League Cup",
   "Champions League",
   "Europa League",
   "League One",
   "EFL Trophy",
   "Conference League",
   "International Soccer"
  ],
  "source_list": "Results: the official regulation-time score, checked against a second data provider for 0 settled restored picks and forecasts, and the two agree; 29 come from one provider only. Prices: the aggregator closing price and the second data provider's last pre-match price in archive (~8–15 h before kick-off), as a separate series; each provider is its own series and they are never averaged."
 },
 "late": null,
 "price_vs_market": null,
 "record_summary": {
  "contract_version": "1",
  "entity_type": "person",
  "entity_words": "Individual author",
  "source": {
   "name": "sportinglife.com",
   "url": "https://www.sportinglife.com/football/news/go-against-the-flow-at-riverside/231937"
  },
  "observed_from": "2026-10-11",
  "observed_to": "2026-10-12",
  "data_as_of": "2026-11-07",
  "state": "settled",
  "series_code": "retro_market_closing_sm",
  "series": "Archived before kick-off, reconstructed at archived prices (~8–15 h before kick-off)",
  "restored": true,
  "headline_kind": "historical_simulation",
  "headline_part": "archived",
  "settled_picks": 3,
  "matches": 2,
  "void": 0,
  "net_points_hundredths": -10100,
  "staked_hundredths": 30000,
  "return_percent": "-33.67",
  "stake_per_pick_hundredths": 10000,
  "period_from": "2026-04-09",
  "period_to": "2026-05-09",
  "status": "calculated",
  "method_version": "retro-1.1",
  "short_history": true,
  "reason": null,
  "reasons": [],
  "sentence": "Forecast Record restored 3 settled archived picks by Jimmy 'The Punt' Cantrill from copies archived before kick-off, across 2 matches between 9 April and 9 May 2026. Reconstructed at archived prices: won 1 of 3 settled archived picks. Of the 33 predictions we hold for Jimmy 'The Punt' Cantrill, 3 were archived before kick-off by an independent web archive and 30 from the source’s own history. Figures as of 7 November 2026.",
  "numbers": [
   {
    "label": "Settled archived picks",
    "value": "3",
    "anchor": "/methodology/#settled-pick",
    "note": null
   },
   {
    "label": "Matches",
    "value": "2",
    "anchor": "/methodology/#match",
    "note": null
   },
   {
    "label": "Net result",
    "value": "−101 points",
    "anchor": "/methodology/#settlement",
    "note": "100 points per pick"
   },
   {
    "label": "Reconstructed at archived prices",
    "value": "−33.7%",
    "anchor": "/methodology/#roi",
    "note": null
   }
  ],
  "limitations": [
   "Most of this history comes from the source’s own published record: 30 predictions dated by the source. 26 of them are settled in a historical price series; titles and rankings use the live record.",
   "Reconstructed at archived prices: these picks were restored from copies of the author’s pages that an independent web archive saved before kick-off, at the last pre-match archive prices, bookmaker margin included."
  ],
  "other_series": [],
  "return_over_time": [],
  "return_over_time_parts": {
   "live": null,
   "archived": {
    "part": "archived",
    "label": "Reconstructed at archived prices",
    "series_code": "retro_market_closing_sm",
    "price_rule": "Reconstructed at archived prices",
    "x_axis": "match_date",
    "dated_note": "Dated by match day. These picks were restored from copies an independent web archive saved before kick-off; the line shows how they settled at archived prices.",
    "settled_picks": 3,
    "matches": 2,
    "match_dates": 2,
    "period_from": "2026-04-09",
    "period_to": "2026-05-09",
    "stake_per_pick_hundredths": 10000,
    "final_points_hundredths": -10100,
    "low": {
     "date": "2026-05-09",
     "cumulative_points_hundredths": -10100,
     "after_picks": 3
    },
    "high": {
     "date": "2026-04-09",
     "cumulative_points_hundredths": -100,
     "after_picks": 2
    },
    "line_drawn": false,
    "steps": [
     {
      "date": "2026-04-09",
      "cumulative_points_hundredths": -100,
      "n": 2,
      "picks": 2
     },
     {
      "date": "2026-05-09",
      "cumulative_points_hundredths": -10100,
      "n": 3,
      "picks": 1
     }
    ]
   }
  },
  "author_response": null,
  "cite": {
   "text": "Forecast Record restored 3 settled archived picks by Jimmy 'The Punt' Cantrill from copies archived before kick-off, across 2 matches between 9 April and 9 May 2026. Reconstructed at archived prices: won 1 of 3 settled archived picks. Of the 33 predictions we hold for Jimmy 'The Punt' Cantrill, 3 were archived before kick-off by an independent web archive and 30 from the source’s own history. Figures as of 7 November 2026.",
   "url": "https://forecastrecord.com/authors/jimmy-the-punt-cantrill/",
   "data_as_of": "2026-11-07",
   "method_version": "retro-1.1"
  },
  "origin": {
   "contract_version": "1",
   "predictions": 33,
   "under_review": 0,
   "no_match_linked": 0,
   "proven_predictions": 3,
   "proven_checked": 3,
   "proven_measured": 3,
   "proven_dates": 2,
   "parts": [
    {
     "code": "live",
     "title": "Recorded before kick-off",
     "explanation": "Saved by us from the source before kick-off.",
     "predictions": 0,
     "checked": 0,
     "price_rule": "Return at our recorded market price",
     "series_code": "market_price",
     "main": null,
     "same_picks": [],
     "score": {
      "score_forecasts": 0,
      "exact_hits": 0,
      "exact_rate": null,
      "outcome_checked": 0,
      "outcome_hits": 0,
      "outcome_rate": null,
      "baseline_matches": 0,
      "baseline_distinct_matches": 0,
      "outcome_hits_on_baseline": 0,
      "outcome_rate_on_baseline": null,
      "favourite_hits": 0,
      "favourite_rate": null,
      "price_basis": null,
      "pending": 0,
      "void": 0,
      "recorded_after_kickoff": 0,
      "lines": []
     },
     "eligible": {
      "checked": 0,
      "priced": 0
     },
     "accuracy": null
    },
    {
     "code": "archived",
     "title": "Archived before kick-off",
     "explanation": "Restored from a copy saved by an independent web archive before kick-off.",
     "predictions": 3,
     "checked": 3,
     "price_rule": "Reconstructed at archived prices",
     "series_code": "retro_market_closing_sm",
     "main": {
      "settled_picks": 3,
      "void": 0,
      "matches": 2,
      "net_points_hundredths": -10100,
      "staked_hundredths": 30000,
      "return_percent": "-33.67",
      "interval_low": null,
      "interval_high": null,
      "interval_note": "too few independent matches to estimate an interval",
      "period_from": "2026-04-09",
      "period_to": "2026-05-09",
      "method_version": "retro-1.1"
     },
     "same_picks": [],
     "score": {
      "score_forecasts": 0,
      "exact_hits": 0,
      "exact_rate": null,
      "outcome_checked": 0,
      "outcome_hits": 0,
      "outcome_rate": null,
      "baseline_matches": 0,
      "baseline_distinct_matches": 0,
      "outcome_hits_on_baseline": 0,
      "outcome_rate_on_baseline": null,
      "favourite_hits": 0,
      "favourite_rate": null,
      "price_basis": null,
      "pending": 0,
      "void": 0,
      "recorded_after_kickoff": 0,
      "lines": []
     },
     "eligible": {
      "checked": 3,
      "priced": 3
     },
     "accuracy": {
      "picks": 3,
      "won": 1,
      "won_percent": "33.3",
      "implied_percent": "46.3",
      "left_out": 0,
      "by_market": [
       {
        "market": "Match result",
        "won": 1,
        "picks": 1,
        "implied_percent": "50.3"
       },
       {
        "market": "Over/under goals",
        "won": 0,
        "picks": 1,
        "implied_percent": "57.1"
       },
       {
        "market": "Win to nil",
        "won": 0,
        "picks": 1,
        "implied_percent": "31.4"
       }
      ]
     }
    },
    {
     "code": "found_after",
     "title": "Found after the match",
     "explanation": "First found after the match; the date is the one the source states.",
     "predictions": 0,
     "checked": 0,
     "price_rule": "Reconstructed at archived prices",
     "series_code": "retro_market_closing_sm",
     "main": null,
     "same_picks": [],
     "score": {
      "score_forecasts": 0,
      "exact_hits": 0,
      "exact_rate": null,
      "outcome_checked": 0,
      "outcome_hits": 0,
      "outcome_rate": null,
      "baseline_matches": 0,
      "baseline_distinct_matches": 0,
      "outcome_hits_on_baseline": 0,
      "outcome_rate_on_baseline": null,
      "favourite_hits": 0,
      "favourite_rate": null,
      "price_basis": null,
      "pending": 0,
      "void": 0,
      "recorded_after_kickoff": 0,
      "lines": []
     },
     "eligible": {
      "checked": 0,
      "priced": 0
     },
     "accuracy": null
    },
    {
     "code": "source_reported",
     "title": "Source-reported history",
     "explanation": "The time and the pick are known only from the source’s own history; it is the basis of the record check and never part of the evidenced total.",
     "predictions": 30,
     "checked": 26,
     "price_rule": "Reconstructed at archived prices",
     "series_code": "retro_market_closing_sm",
     "main": {
      "settled_picks": 26,
      "void": 0,
      "matches": 24,
      "net_points_hundredths": 23600,
      "staked_hundredths": 260000,
      "return_percent": "9.08",
      "interval_low": "-38.66",
      "interval_high": "59.32",
      "interval_note": null,
      "period_from": "2025-03-05",
      "period_to": "2026-09-09",
      "method_version": "retro-1.1"
     },
     "same_picks": [
      {
       "price": "Author-quoted price",
       "series_code": "retro_author_price",
       "picks": 1,
       "return_main_percent": "-100.00",
       "return_other_percent": "-100.00",
       "settled_excluding_void": 1,
       "net_main_points_hundredths": -10000,
       "net_other_points_hundredths": -10000,
       "period_from": "2026-02-18",
       "period_to": "2026-02-18"
      }
     ],
     "score": {
      "score_forecasts": 0,
      "exact_hits": 0,
      "exact_rate": null,
      "outcome_checked": 0,
      "outcome_hits": 0,
      "outcome_rate": null,
      "baseline_matches": 0,
      "baseline_distinct_matches": 0,
      "outcome_hits_on_baseline": 0,
      "outcome_rate_on_baseline": null,
      "favourite_hits": 0,
      "favourite_rate": null,
      "price_basis": null,
      "pending": 0,
      "void": 0,
      "recorded_after_kickoff": 0,
      "lines": []
     },
     "eligible": {
      "checked": 26,
      "priced": 26
     },
     "accuracy": {
      "picks": 26,
      "won": 13,
      "won_percent": "50.0",
      "implied_percent": "46.1",
      "left_out": 0,
      "by_market": [
       {
        "market": "Both teams to score",
        "won": 3,
        "picks": 6,
        "implied_percent": "57.8"
       },
       {
        "market": "Match result",
        "won": 2,
        "picks": 6,
        "implied_percent": "33.0"
       },
       {
        "market": "Over/under goals",
        "won": 2,
        "picks": 4,
        "implied_percent": "53.0"
       },
       {
        "market": "Result and total goals",
        "won": 4,
        "picks": 4,
        "implied_percent": "50.8"
       },
       {
        "market": "Win to nil",
        "won": 1,
        "picks": 3,
        "implied_percent": "41.3"
       },
       {
        "market": "Other markets",
        "won": 1,
        "picks": 3,
        "implied_percent": "37.8"
       }
      ]
     }
    }
   ]
  },
  "live_alongside": null,
  "headline_record_ids": [
   "n-0edbf3e126adc849bc582846",
   "n-8c8045e8b9f1de3862c54e1b",
   "n-99999dadf460e242ee05ca64"
  ],
  "interval_low": null,
  "interval_high": null,
  "caption": "Archived before kick-off, reconstructed at archived prices (~8–15 h before kick-off) · 100 points per pick · 9 April – 9 May 2026 · Calculated · picks settled under reconstruction method 1.1",
  "record_from": "2025-03-05",
  "record_to": "2026-09-09"
 },
 "recorded_picks": [
  {
   "record_id": "n-8e73ed8cc064ba987cc38f0f",
   "url": "/authors/jimmy-the-punt-cantrill/picks/2/#pick-n-8e73ed8cc064ba987cc38f0f",
   "match": "SSC Napoli v Arsenal",
   "match_url": "/football/matches/ssc-napoli-vs-arsenal-2026-09-09/",
   "kickoff": "2026-09-09T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": -793.2,
   "market_code": "result_and_total",
   "author_said": "Match result and over/under 4.5 goals: Arsenal to win and under 4.5 goals",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "0-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 8500,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.8500",
   "published_at": "2026-09-07T23:00:00.000Z",
   "recorded_at": "2026-10-12T20:11:34.592Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-8e73ed8cc064ba987cc38f0f",
    "quote_text": "Arsenal to win and under 4.5 goals",
    "fragment_from": 227,
    "fragment_to": 261,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://www.sportinglife.com/football/news/champions-league-tips-gunning-for-arsenal/234178",
     "display_name": null,
     "speaker": "Jimmy 'The Punt' Cantrill",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "8293327ba512ef3a42e9475676607787d08accd23c57b517ccefae2ac000df8f",
     "material_removed": false
    },
    "published_at": "2026-09-07T23:00:00.000Z",
    "detected_at": "2026-10-12T20:11:34.592Z",
    "executed_at": "2026-10-13T20:09:53.735Z",
    "statement_class": "unpriced",
    "status": "too_late",
    "cause": "counted in the restored-history series",
    "cause_code": null,
    "event": {
     "event_id": "s-b87fb733afb8",
     "display_name": "SSC Napoli v Arsenal",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-09-09T19:00:00.000Z",
     "url": "/football/matches/ssc-napoli-vs-arsenal-2026-09-09/",
     "scoreline": "0-1"
    },
    "market_label": "Match result and over/under 4.5 goals",
    "outcome_label": "Arsenal to win and under 4.5 goals",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": "1.8500",
     "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
    },
    "stake_hundredths": 10000,
    "result": "win",
    "simulation_change_hundredths": 8500,
    "bankroll_after_hundredths": null,
    "executed_by": "ours",
    "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
    "withdrawn": false,
    "provenance": "source_reported_history",
    "provenance_words": "Source-reported history",
    "dates": {
     "fragment_at": "2026-09-07T23:00:00.000Z",
     "fragment_basis": "page",
     "source_page_at": "2026-09-07T23:00:00.000Z",
     "detected_at": "2026-10-12T20:11:34.592Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "source_stated_date",
    "origin_detail": "source_reported_history",
    "origin_words": "Source-reported history",
    "added_on": "Added to our record on 12 Oct 2026",
    "late_publication": null,
    "author_claim": {
     "market_label": "Match result and over/under 4.5 goals",
     "choice": "Arsenal to win and under 4.5 goals",
     "author_odds": null,
     "market_key": "result_and_total",
     "choice_key": "2-under",
     "period": "match",
     "line": "4.5",
     "subject": "goals_total",
     "in_words": "Match result and over/under 4.5 goals: Arsenal to win and under 4.5 goals"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "0-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "retro-1.1",
     "in_words": "Won: the final score was SSC Napoli 0-1 Arsenal."
    },
    "settlements": [
     {
      "operation_id": "7943b98ae3b5e415be61d6cf8a939615199055aa6217a083d32d77bedcd3a386",
      "series_key": "retro_market_closing_sm",
      "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Match result and over/under 4.5 goals",
      "choice": "Arsenal to win and under 4.5 goals",
      "decimal_odds": "1.8500",
      "odds_role": "closing_odds",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 8500,
      "executed_at": "2026-10-13T20:09:53.735Z",
      "methodology_version": "retro-1.1",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Jimmy 'The Punt' Cantrill",
     "publisher": "Sporting Life",
     "forecaster": "Jimmy 'The Punt' Cantrill",
     "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.sportinglife.com/football/news/champions-league-tips-gunning-for-arsenal/234178",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Arsenal to win and under 4.5 goals"
   }
  },
  {
   "record_id": "n-2bfd22c8ca7bdc773517bb54",
   "url": null,
   "match": "Bristol City v Walsall",
   "match_url": null,
   "kickoff": "2026-08-06T18:45:00.000Z",
   "competition": "EFL Cup (Carabao)",
   "lead_hours": -1609.4,
   "market_code": "win_to_nil",
   "author_said": "To win to nil: Bristol City to win to nil",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "2.2500",
   "published_at": "2026-08-04T23:00:00.000Z",
   "recorded_at": "2026-10-12T20:11:42.291Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-ce56878245d9b73f2a299f41",
   "url": null,
   "match": "England v Costa Rica",
   "match_url": null,
   "kickoff": "2026-06-10T21:00:00.000Z",
   "competition": "International Soccer",
   "lead_hours": -2975.2,
   "market_code": "result_and_total",
   "author_said": "Match result and over/under 3.5 goals: England to win and under 3.5 goals",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "3-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 9250,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.9250",
   "published_at": "2026-06-08T23:00:00.000Z",
   "recorded_at": "2026-10-12T20:11:46.299Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-4368ea9549ff5c03e539d144",
   "url": null,
   "match": "England v New Zealand",
   "match_url": null,
   "kickoff": "2026-06-06T20:00:00.000Z",
   "competition": "International Soccer",
   "lead_hours": -3072.2,
   "market_code": "result_and_total",
   "author_said": "Match result and over/under 3.5 goals: England to win and under 3.5 goals",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 10250,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "2.0250",
   "published_at": "2026-06-04T23:00:00.000Z",
   "recorded_at": "2026-10-12T20:11:46.401Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-946d3411b7968b2c877c28b4",
   "url": null,
   "match": "Tottenham Hotspur v Everton",
   "match_url": null,
   "kickoff": "2026-05-24T15:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": -3389.2,
   "market_code": "1x2",
   "author_said": "1X2, match result: draw",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "1-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "3.4800",
   "published_at": "2026-05-21T23:00:00.000Z",
   "recorded_at": "2026-10-12T20:11:48.640Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-4fad61f69b28ce92e2ff27d8",
   "url": null,
   "match": "Arsenal v Burnley",
   "match_url": null,
   "kickoff": "2026-05-18T19:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": -3529.2,
   "market_code": "result_and_total",
   "author_said": "Match result and over/under 3.5 goals: Arsenal to win and under 3.5 goals",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 11000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "2.1000",
   "published_at": "2026-05-14T23:00:00.000Z",
   "recorded_at": "2026-10-12T20:11:48.847Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-8e304e93466458eeba9bb76a",
   "url": null,
   "match": "Tottenham Hotspur v Leeds United",
   "match_url": null,
   "kickoff": "2026-05-11T19:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": -3697.2,
   "market_code": "1x2",
   "author_said": "1X2, match result: draw",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 27500,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "3.7500",
   "published_at": "2026-05-07T23:00:00.000Z",
   "recorded_at": "2026-10-12T20:11:50.496Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-8c8045e8b9f1de3862c54e1b",
   "url": null,
   "match": "Middlesbrough v Southampton",
   "match_url": null,
   "kickoff": "2026-05-09T11:30:00.000Z",
   "competition": "EFL Championship",
   "lead_hours": -3753.8,
   "market_code": "total",
   "author_said": "Over/Under 2.5 goals: over 2.5",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "0-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.7500",
   "published_at": null,
   "recorded_at": "2026-10-12T21:15:56.399Z",
   "origin": "Archived before kick-off",
   "record_part": "archived",
   "record_part_words": "Archived before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-1ee059fea81fae693edd9ac8",
   "url": null,
   "match": "Chelsea v Manchester City",
   "match_url": null,
   "kickoff": "2026-04-12T15:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": -4397.1,
   "market_code": "win_to_nil",
   "author_said": "To win to nil: Manchester City to win to nil",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "0-3",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 30000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "4.0000",
   "published_at": "2026-04-10T08:51:09.000Z",
   "recorded_at": "2026-10-12T20:38:14.350Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-9afc37e8db6b3304007dd887",
   "url": null,
   "match": "Chelsea v Manchester City",
   "match_url": null,
   "kickoff": "2026-04-12T15:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": -4397.1,
   "market_code": "1x2",
   "author_said": "1X2, match result: Manchester City",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "0-3",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 9400,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.9400",
   "published_at": "2026-04-10T08:51:09.000Z",
   "recorded_at": "2026-10-12T20:38:14.350Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-99999dadf460e242ee05ca64",
   "url": null,
   "match": "Bologna v Aston Villa",
   "match_url": null,
   "kickoff": "2026-04-09T19:00:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": -4466.2,
   "market_code": "win_to_nil",
   "author_said": "To win to nil: Aston Villa to win to nil",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "1-3",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "3.1800",
   "published_at": null,
   "recorded_at": "2026-10-12T21:14:26.231Z",
   "origin": "Archived before kick-off",
   "record_part": "archived",
   "record_part_words": "Archived before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-0edbf3e126adc849bc582846",
   "url": null,
   "match": "Bologna v Aston Villa",
   "match_url": null,
   "kickoff": "2026-04-09T19:00:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": -4466.2,
   "market_code": "1x2",
   "author_said": "1X2, match result: Aston Villa",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-3",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 9900,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.9900",
   "published_at": null,
   "recorded_at": "2026-10-12T21:14:26.231Z",
   "origin": "Archived before kick-off",
   "record_part": "archived",
   "record_part_words": "Archived before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-a66824a03dd00ed86a6d2e49",
   "url": null,
   "match": "Birmingham City v Middlesbrough",
   "match_url": null,
   "kickoff": "2026-03-02T20:00:00.000Z",
   "competition": "EFL Championship",
   "lead_hours": -5376.2,
   "market_code": "total",
   "author_said": "Over/Under 2.5 goals: over 2.5",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-3",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 8850,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.8850",
   "published_at": "2026-02-27T13:46:10.000Z",
   "recorded_at": "2026-10-12T20:12:06.662Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-b72cf9b3377e71d5cc73fe68",
   "url": null,
   "match": "Wolverhampton Wanderers v Arsenal",
   "match_url": null,
   "kickoff": "2026-02-18T20:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": -5664.2,
   "market_code": "win_to_nil",
   "author_said": "To win to nil: Arsenal to win to nil at 2.0",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "2-2",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": "2.0",
   "settled_price": "1.8400",
   "published_at": "2026-02-17T10:12:46.000Z",
   "recorded_at": "2026-10-12T20:12:07.471Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-ec721f3ef6bb6574eec73bef",
   "url": null,
   "match": "Qarabag v Newcastle United",
   "match_url": null,
   "kickoff": "2026-02-18T17:45:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": -5666.5,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-6",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 7000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.7000",
   "published_at": "2026-02-16T17:52:50.000Z",
   "recorded_at": "2026-10-12T20:12:07.596Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-b6109323414e63c93f77fde5",
   "url": null,
   "match": "Brentford v Arsenal",
   "match_url": null,
   "kickoff": "2026-02-12T20:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": -5808.2,
   "market_code": "total",
   "author_said": "Over/Under 2.5 goals: over 2.5",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "1-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.8700",
   "published_at": "2026-02-11T08:56:45.000Z",
   "recorded_at": "2026-10-12T20:12:10.199Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-7a949ae560807d7b39f3841a",
   "url": null,
   "match": "Sheffield United v Middlesbrough",
   "match_url": null,
   "kickoff": "2026-02-09T20:01:00.000Z",
   "competition": "EFL Championship",
   "lead_hours": -5880.2,
   "market_code": "total",
   "author_said": "Over/Under 2.5 goals: over 2.5",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-2",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 7650,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.7650",
   "published_at": "2026-02-05T14:47:30.000Z",
   "recorded_at": "2026-10-12T20:12:12.005Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-1d5e5fe6b286222941b8dd6e",
   "url": null,
   "match": "Manchester City v Galatasaray",
   "match_url": null,
   "kickoff": "2026-01-28T20:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": -6168.2,
   "market_code": "1x2",
   "author_said": "1X2, match result: Galatasaray",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "2-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "10.0000",
   "published_at": "2026-01-26T13:35:32.000Z",
   "recorded_at": "2026-10-12T20:12:12.988Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-77db1c134224306188a0982d",
   "url": null,
   "match": "Manchester City v Galatasaray",
   "match_url": null,
   "kickoff": "2026-01-28T20:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": -6168.2,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "2-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.5700",
   "published_at": "2026-01-26T13:35:32.000Z",
   "recorded_at": "2026-10-12T20:12:12.988Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-d163a6dbe570ac2ee6265c8d",
   "url": null,
   "match": "Paris Saint-Germain v Newcastle United",
   "match_url": null,
   "kickoff": "2026-01-28T20:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": -6168.2,
   "market_code": "both_teams_score_and_result",
   "author_said": "Match result and both teams to score: Paris Saint-Germain win, both teams to score: yes",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "1-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "2.5000",
   "published_at": "2026-01-27T09:49:15.000Z",
   "recorded_at": "2026-10-12T20:12:12.797Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-f3a14cefc8a4e74f97cab013",
   "url": null,
   "match": "Stockport County v Leyton Orient",
   "match_url": null,
   "kickoff": "2025-05-14T19:00:00.000Z",
   "competition": "EFL League One",
   "lead_hours": -12385.6,
   "market_code": "1x2",
   "author_said": "1X2, match result: Stockport County",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "1-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.9050",
   "published_at": "2025-05-13T07:42:01.000Z",
   "recorded_at": "2026-10-12T20:38:19.080Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-ea2ede26c6519cfedcb59d0e",
   "url": null,
   "match": "Chelsea v Djurgården",
   "match_url": null,
   "kickoff": "2025-05-08T19:00:00.000Z",
   "competition": "UEFA Conference League",
   "lead_hours": -12507.1,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "1-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.8800",
   "published_at": "2025-05-07T09:13:55.000Z",
   "recorded_at": "2026-10-11T22:08:21.332Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-546550e4e04506f67e40da34",
   "url": null,
   "match": "Tottenham Hotspur v Bodø/Glimt",
   "match_url": null,
   "kickoff": "2025-05-01T19:00:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": -12697.2,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "3-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 8000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.8000",
   "published_at": "2025-04-29T15:24:32.000Z",
   "recorded_at": "2026-10-12T20:12:34.994Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-356db0ee97dbc8ce0d8ce605",
   "url": null,
   "match": "FC Barcelona v Inter",
   "match_url": null,
   "kickoff": "2025-04-30T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": -12721.2,
   "market_code": "cards_over_under",
   "author_said": "Over/Under 3.5 cards: under 3.5",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "3-3",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 7700,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.7700",
   "published_at": "2025-04-28T15:24:17.000Z",
   "recorded_at": "2026-10-12T20:12:35.069Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-7e9e6f1204befb7e9f3a8ead",
   "url": null,
   "match": "AFC Bournemouth v Fulham",
   "match_url": null,
   "kickoff": "2025-04-14T19:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": -13105.2,
   "market_code": "both_teams_score_and_result",
   "author_said": "Match result and both teams to score: Fulham win, both teams to score: yes",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "1-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "5.8750",
   "published_at": "2025-04-10T16:30:09.000Z",
   "recorded_at": "2026-10-12T20:12:37.570Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-a70b3840f3a113ad025096e9",
   "url": null,
   "match": "Birmingham City v Peterborough United",
   "match_url": null,
   "kickoff": "2025-04-13T14:00:00.000Z",
   "competition": "EFL Trophy",
   "lead_hours": -13134.2,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "0-2",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.6200",
   "published_at": "2025-04-11T08:14:01.000Z",
   "recorded_at": "2026-10-12T20:12:37.507Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-90acd65b1bf67be499752f3a",
   "url": null,
   "match": "Arsenal v Real Madrid",
   "match_url": null,
   "kickoff": "2025-04-08T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": -13249.2,
   "market_code": "1x2",
   "author_said": "1X2, match result: Real Madrid",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "3-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "3.4700",
   "published_at": "2025-04-07T11:05:17.000Z",
   "recorded_at": "2026-10-12T20:12:40.569Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-6d41a80a6c4e5c1258aeb661",
   "url": null,
   "match": "Rotherham United v Wycombe Wanderers",
   "match_url": null,
   "kickoff": "2025-03-18T19:45:00.000Z",
   "competition": "EFL League One",
   "lead_hours": -13752.5,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "2-3",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 8500,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "1.8500",
   "published_at": "2025-03-17T13:29:11.000Z",
   "recorded_at": "2026-10-12T20:12:43.456Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-6eab72cb275263191e531393",
   "url": null,
   "match": "FC Bayern München v Bayer 04 Leverkusen",
   "match_url": null,
   "kickoff": "2025-03-05T20:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": -14064.2,
   "market_code": "total",
   "author_said": "Over/Under 2.5 goals: under 2.5",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "3-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "2.0550",
   "published_at": "2025-03-04T09:47:49.000Z",
   "recorded_at": "2026-10-12T20:12:46.256Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-73783ce1e0f94661ef61365a",
   "url": null,
   "match": "Manchester United v West Ham United",
   "match_url": null,
   "kickoff": "2025-12-04T20:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": -7488.6,
   "market_code": "1x2",
   "author_said": "1X2, match result: West Ham United",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "counted in the restored-history series",
   "reason_code": "disputed_reading",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2025-12-03T11:51:32.000Z",
   "recorded_at": "2026-10-12T20:38:16.455Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-0a393ab738f0d2c01ef6f3e4",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "Wrexham draw no bet",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "",
   "reason_code": "after_match",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-08-26T23:00:00.000Z",
   "recorded_at": "2026-10-12T20:11:39.625Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-7389cc4ab6a886f625b5d3aa",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "Wrexham draw no bet",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "",
   "reason_code": "after_match",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-08-13T23:00:00.000Z",
   "recorded_at": "2026-10-12T20:38:11.425Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  },
  {
   "record_id": "n-e60d5e6ec0a946cccd07281c",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "Middlesbrough draw no bet",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "",
   "reason_code": "after_match",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-02-12T14:25:19.000Z",
   "recorded_at": "2026-10-12T20:12:09.818Z",
   "origin": "Source-reported history",
   "record_part": "source_reported",
   "record_part_words": "Source-reported history",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "correction": null
  }
 ],
 "lead_time": {
  "contract_version": 1,
  "threshold_hours": 2.0,
  "picks": 30,
  "before_kickoff": 0,
  "after_kickoff": 30,
  "at_least_2h": 0,
  "share_2h_plus": 0.0,
  "median_hours": null,
  "min_hours": null,
  "max_hours": null,
  "words": "Hours between the moment we recorded the pick and kick-off; the share counts picks recorded at least two hours before kick-off."
 },
 "baseline": {
  "contract_version": 1,
  "series_code": "market_price",
  "rule": "recorded-line-1.0",
  "state": "none",
  "picks": 0,
  "settled_picks_all": 0,
  "excluded": {
   "market_without_favourite": 0,
   "no_recorded_line": 0,
   "favourite_not_settled": 0
  },
  "staked_hundredths": 0,
  "author_net_hundredths": 0,
  "favourite_net_hundredths": 0,
  "difference_hundredths": 0,
  "author_return_percent": null,
  "favourite_return_percent": null,
  "author_hit_rate": null,
  "favourite_hit_rate": null,
  "picked_favourite_share": null,
  "by_market": [],
  "return_over_time": [],
  "words": "Same stakes, same matches, same recorded moment: the author’s picks against backing the market favourite by the recorded line. Only markets with a single shortest price count (match result, over/under, both teams to score, handicap); correct score and combined markets are left out."
 },
 "pagination": {
  "per_page": 20,
  "total": 33,
  "pages": 3,
  "page_urls": [
   "/authors/jimmy-the-punt-cantrill/",
   "/authors/jimmy-the-punt-cantrill/picks/2/",
   "/authors/jimmy-the-punt-cantrill/picks/3/"
  ],
  "groups": {
   "settled": 29,
   "pending": 0,
   "excluded": 4
  },
  "continuation": "by_time",
  "page": 1,
  "first": 1,
  "last": 20,
  "author_url": "/authors/jimmy-the-punt-cantrill/",
  "current": false
 },
 "title_tag": "Jimmy 'The Punt' Cantrill Predictions: Verified Record",
 "calculator": null,
 "person": {
  "person_id": "o-d54f692ed33daf3c7ff56835",
  "type_code": "individual",
  "name_shown": "Jimmy 'The Punt' Cantrill",
  "main_entity": "e-d54f692ed33daf3c7ff56835",
  "identity": {
   "status": "not_verified",
   "is_verified": false,
   "when": null,
   "source_list": []
  },
  "platform_list": [
   {
    "entity_ref": "e-d54f692ed33daf3c7ff56835",
    "medium": "Sporting Life",
    "channel": "section pages",
    "domain": "sportinglife.com",
    "source_info": "sporting-life",
    "byline": "Jimmy 'The Punt' Cantrill",
    "url": "/sources/sporting-life/",
    "summary": {
     "statements": 33,
     "predictions": 33,
     "settled_picks": 3,
     "headline_kind": "historical_simulation",
     "return_percent": -33.67,
     "headline_part": "archived",
     "period_from": "2026-10-11",
     "period_to": "2026-10-12"
    }
   }
  ],
  "previously": [],
  "trust_tier": "probation"
 },
 "data_revision": {
  "data_version": "2026-10-13.5",
  "updated": "2026-10-13",
  "current_release": "2026-11-07.2",
  "data_as_of": "2026-11-07",
  "method_version": "retro-1.1",
  "price_rule": "reconstructed at archived prices (~8–15 h before kick-off), archived before kick-off only",
  "series_code": "retro_market_closing_sm:archived",
  "sample": {
   "settled_picks": 3,
   "matches": 2,
   "void": 0,
   "period_from": "2026-04-09",
   "period_to": "2026-05-09",
   "composition_hash": "96e417daf0ef131b8ecd93f3020624571eb5dce186b57aad3ac15d9649ac082c"
  },
  "changes_url": "#changes",
  "corrections_url": "/corrections/"
 },
 "number_changes": [
  {
   "id": "zc-ee827a11e4ea392540f8",
   "at": "2026-10-13T20:21:18.065Z",
   "data_version": "2026-10-13.5",
   "previous_data_version": "2026-10-13.4",
   "url": "/authors/jimmy-the-punt-cantrill/",
   "category": "coverage_extended",
   "category_words": "Coverage extended",
   "before": null,
   "after": {
    "data_version": "2026-10-13.5",
    "return_percent": "-33.67",
    "settled_picks": 3,
    "matches": 2,
    "void": 0,
    "series_code": "retro_market_closing_sm:archived",
    "price_rule": "historical simulation at the last pre-match price in archive (~8–15 h before kick-off), archived before kick-off only",
    "method_version": "retro-1.1",
    "composition_hash": "96e417daf0ef131b8ecd93f3020624571eb5dce186b57aad3ac15d9649ac082c",
    "text": "−101.00 points on 3 settled picks across 2 matches · historical simulation at the last pre-match price in archive (~8–15 h before kick-off), archived before kick-off only · method retro-1.1"
   },
   "reason": "First headline number for this record: 3 settled picks in the series “historical simulation at the last pre-match price in archive (~8–15 h before kick-off), archived before kick-off only”.",
   "checked_by": "comparison of data versions",
   "affected_records": {
    "added": 3,
    "removed": 0,
    "changed": 0
   },
   "correction_id": null
  }
 ],
 "counts_by_slice": {
  "portions": [
   {
    "code": "archived",
    "title": "Archived before kick-off",
    "price_rule": "Reconstructed at archived prices",
    "settled_picks": 3,
    "total_check": true,
    "market_list": [
     {
      "code_name": "1x2",
      "in_words": "Match result",
      "url": null,
      "settled_picks": 1,
      "won": 1,
      "void": 0,
      "net_points_hundredths": 9900,
      "return_percent": "99.0",
      "period_from": "2026-04-09",
      "period_to": "2026-04-09",
      "small_sample": true,
      "average_odds": "1.99",
      "odds_from_author": 0,
      "odds_from_snapshot": 1
     },
     {
      "code_name": "total",
      "in_words": "Over/under goals",
      "url": null,
      "settled_picks": 1,
      "won": 0,
      "void": 0,
      "net_points_hundredths": -10000,
      "return_percent": "-100.0",
      "period_from": "2026-05-09",
      "period_to": "2026-05-09",
      "small_sample": true,
      "average_odds": "1.75",
      "odds_from_author": 0,
      "odds_from_snapshot": 1
     },
     {
      "code_name": "win_to_nil",
      "in_words": "Win to nil",
      "url": null,
      "settled_picks": 1,
      "won": 0,
      "void": 0,
      "net_points_hundredths": -10000,
      "return_percent": "-100.0",
      "period_from": "2026-04-09",
      "period_to": "2026-04-09",
      "small_sample": true,
      "average_odds": "3.18",
      "odds_from_author": 0,
      "odds_from_snapshot": 1
     }
    ],
    "leagues": [
     {
      "code_name": "UEFA Europa League",
      "in_words": "UEFA Europa League",
      "url": "/football/competitions/uefa-europa-league/",
      "settled_picks": 2,
      "won": 1,
      "void": 0,
      "net_points_hundredths": -100,
      "return_percent": "-0.5",
      "period_from": "2026-04-09",
      "period_to": "2026-04-09",
      "small_sample": true,
      "average_odds": "2.58",
      "odds_from_author": 0,
      "odds_from_snapshot": 2,
      "league_markets": [
       {
        "code_name": "1x2",
        "in_words": "Match result",
        "settled_picks": 1,
        "won": 1,
        "void": 0,
        "net_points_hundredths": 9900,
        "return_percent": null,
        "period_from": "2026-04-09",
        "period_to": "2026-04-09",
        "small_sample": true,
        "average_odds": "1.99",
        "odds_from_author": 0,
        "odds_from_snapshot": 1
       },
       {
        "code_name": "win_to_nil",
        "in_words": "Win to nil",
        "settled_picks": 1,
        "won": 0,
        "void": 0,
        "net_points_hundredths": -10000,
        "return_percent": null,
        "period_from": "2026-04-09",
        "period_to": "2026-04-09",
        "small_sample": true,
        "average_odds": "3.18",
        "odds_from_author": 0,
        "odds_from_snapshot": 1
       }
      ]
     },
     {
      "code_name": "EFL Championship",
      "in_words": "EFL Championship",
      "url": "/football/competitions/efl-championship/",
      "settled_picks": 1,
      "won": 0,
      "void": 0,
      "net_points_hundredths": -10000,
      "return_percent": "-100.0",
      "period_from": "2026-05-09",
      "period_to": "2026-05-09",
      "small_sample": true,
      "average_odds": "1.75",
      "odds_from_author": 0,
      "odds_from_snapshot": 1,
      "league_markets": [
       {
        "code_name": "total",
        "in_words": "Over/under goals",
        "settled_picks": 1,
        "won": 0,
        "void": 0,
        "net_points_hundredths": -10000,
        "return_percent": null,
        "period_from": "2026-05-09",
        "period_to": "2026-05-09",
        "small_sample": true,
        "average_odds": "1.75",
        "odds_from_author": 0,
        "odds_from_snapshot": 1
       }
      ]
     }
    ],
    "best_slice": null
   }
  ],
  "best_slice": null
 },
 "author_card": {
  "body": "Record tracked by Forecast Record since 11 October 2026 · 33 predictions · last change 12 October 2026",
  "url": "https://forecastrecord.com/authors/jimmy-the-punt-cantrill/",
  "s": "2026-10-11",
  "prediction_count": 33,
  "refreshed_at": "2026-10-12",
  "html": "<a href=\"https://forecastrecord.com/authors/jimmy-the-punt-cantrill/\">Record tracked by Forecast Record since 11 October 2026 · 33 predictions · last change 12 October 2026</a>"
 },
 "trust": {
  "tier": "probation",
  "in_words": "Probation",
  "settled_count": 3,
  "days": 31,
  "weeks": 2,
  "archive": false,
  "in_review": false,
  "own_page": false,
  "won_count": 1,
  "first_settled_on": "2026-04-09",
  "products_in_level": 1,
  "rule": {
   "tracked": {
    "min_settled": 30,
    "min_days": 30,
    "min_distinct_weeks": 2,
    "no_violations": true
   },
   "established": {
    "min_settled": 100,
    "min_days": 90
   }
  },
  "show": true
 },
 "colleagues": [
  {
   "source_code": "sporting-life",
   "source_name": "Sporting Life",
   "source_url": "/sources/sporting-life/",
   "label": "Also at Sporting Life",
   "authors_total": 3,
   "authors": [
    {
     "name": "Jake Osgathorpe",
     "url": "/authors/jake-osgathorpe/",
     "headline_part": "archived",
     "settled_picks": 24,
     "return_percent": "29.3",
     "small_sample": false,
     "average_odds": "2.58",
     "odds_from_author": 20,
     "odds_from_snapshot": 4
    },
    {
     "name": "Joe Townsend",
     "url": "/authors/joe-townsend/",
     "headline_part": "archived",
     "settled_picks": 15,
     "return_percent": null,
     "small_sample": true,
     "average_odds": null,
     "odds_from_author": null,
     "odds_from_snapshot": null
    },
    {
     "name": "Tom Carnduff",
     "url": "/authors/tom-carnduff/",
     "headline_part": "archived",
     "settled_picks": 3,
     "return_percent": null,
     "small_sample": true,
     "average_odds": "1.93",
     "odds_from_author": 3,
     "odds_from_snapshot": 0
    }
   ]
  }
 ],
 "author_type": "Pundit",
 "data_changes": {
  "added_later": "1 record added on 11 Oct 2026 from the source's own history; 3 records added on 12 Oct 2026 from archived copies; 26 records added on 12 Oct 2026 from the source's own history. The current numbers include them; numbers published earlier, including the record before each match, do not change.",
  "records_corrected": 0,
  "last_correction_at": null,
  "corrections_url": "/corrections/"
 },
 "entity_id": "person:o-d54f692ed33daf3c7ff56835",
 "source_revision": 159,
 "related": [
  {
   "url": "/cards/e-d54f692ed33daf3c7ff56835-bank/",
   "name": "Bankroll card — Jimmy 'The Punt' Cantrill",
   "detail": null,
   "source_group": "cards"
  },
  {
   "url": "/cards/e-d54f692ed33daf3c7ff56835-said-vs-happened/",
   "name": "Said → happened — Jimmy 'The Punt' Cantrill",
   "detail": null,
   "source_group": "cards"
  }
 ],
 "number_sets": [
  {
   "set": "profile.settled",
   "entity": "e-d54f692ed33daf3c7ff56835",
   "value": 29,
   "where": "coverage",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.predictions",
   "entity": "e-d54f692ed33daf3c7ff56835",
   "value": 33,
   "where": "coverage",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.predictions",
   "entity": "e-d54f692ed33daf3c7ff56835",
   "value": 33,
   "where": "picks",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.part.live",
   "entity": "e-d54f692ed33daf3c7ff56835",
   "value": 0,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.part.archived",
   "entity": "e-d54f692ed33daf3c7ff56835",
   "value": 3,
   "where": "origin-archived",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.part.found_after",
   "entity": "e-d54f692ed33daf3c7ff56835",
   "value": 0,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.part.source_reported",
   "entity": "e-d54f692ed33daf3c7ff56835",
   "value": 26,
   "where": "origin",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.checked.live",
   "entity": "e-d54f692ed33daf3c7ff56835",
   "value": 0,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.checked.archived",
   "entity": "e-d54f692ed33daf3c7ff56835",
   "value": 3,
   "where": "origin-archived",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "profile.checked",
   "entity": "e-d54f692ed33daf3c7ff56835",
   "value": 3,
   "where": "trust-level",
   "as_of": "2026-11-07T19:52:23.438Z",
   "label": true
  }
 ]
}
