{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "history",
 "url": "/authors/joe-townsend/picks/9/",
 "canonical": "/authors/joe-townsend/picks/9/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Joe Townsend — football predictions, page 9 of 11",
 "description": "Predictions 141–160 of 199 by Joe Townsend, with outcomes in words and links to the evidence.",
 "first_paragraph": {
  "body": "Page 9 of 11 of the predictions by Joe Townsend recorded by Forecast Record: predictions 141–160 of 199 in the order we recorded them, earliest first; as of 7 November 2026. Each row links to its evidence, and the summary of the record is on the profile page.",
  "key_number": "199",
  "data": "2026-11-07",
  "source_info": "our own evidence archive",
  "brand": "Forecast Record"
 },
 "indexable": false,
 "noindex_reason": "technical",
 "indexing_threshold": {
  "settled_count": 0,
  "date_count": 0,
  "required_settled": 0,
  "required_dates": 0
 },
 "data_date": "2026-11-07T19:52:23.438Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-07T07:23:48.684Z",
 "content_hash": null,
 "meaning_hash": "3ee21038923180108bee80b64d912eb160ac9ca1ec9eb3e279781a5cdafbbd79",
 "dependency_group": "author:e-3f54b4e41ee5a00fa7f17af7",
 "release_id": "20261107-195223",
 "markup": [
  {
   "type_code": "WebPage",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "Organization",
   "allowed": true,
   "cause": null
  }
 ],
 "exports": [
  {
   "type_code": "json",
   "url": "/authors/joe-townsend/picks/9/index.json",
   "bytes": null
  }
 ],
 "modules": {
  "affiliate": false,
  "api": true,
  "compare_yourself": false
 },
 "affiliate_block": null,
 "restrictions": {
  "name_withdrawn": false,
  "tracker_number": null,
  "withdrawn_quotes": [],
  "removed_at": null,
  "cause": null,
  "suspended_records": [],
  "withdrawal_log_number": 0
 },
 "page_links": {
  "methodology": "/methodology/",
  "right_of_reply": "/right-of-reply/",
  "source_coverage": "/coverage/",
  "corrections_log": "/corrections/",
  "api": "/api/",
  "claim": "/claim/"
 },
 "entity": {
  "id": "e-3f54b4e41ee5a00fa7f17af7",
  "public_name": "Joe Townsend",
  "tracker_number": 1973,
  "status": "active",
  "inactive_since": null,
  "verified_creator": false,
  "observation_period": {
   "since": "2026-09-28",
   "until": "2026-11-06"
  },
  "platform_list": [
   {
    "medium": "website",
    "handle": null,
    "url": null,
    "link_confirmed": false,
    "show": true
   }
  ],
  "comment": null
 },
 "recorded_picks": [
  {
   "record_id": "n-070f76b92ef244957bc1b5a4",
   "url": null,
   "match": "Aston Villa v Manchester United",
   "match_url": null,
   "kickoff": "2025-12-21T16:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": -7084.1,
   "market_code": "1x2",
   "author_said": "1X2, match result: Aston Villa",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "2-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 10200,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "2.0200",
   "published_at": "2025-12-18T18:59:22.000Z",
   "recorded_at": "2026-10-12T20:37:48.157Z",
   "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,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-91390129c933e6ed7c750d11",
   "url": null,
   "match": "Leicester City v Liverpool",
   "match_url": null,
   "kickoff": "2025-04-20T15:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": -12965.1,
   "market_code": "win_to_nil",
   "author_said": "To win to nil: Liverpool to win to nil",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "0-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 12300,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "2.2300",
   "published_at": "2025-04-19T14:00:37.000Z",
   "recorded_at": "2026-10-12T20:37:50.620Z",
   "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,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-aa925dff3dcd1a97aefa08b1",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "Wolves to win (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": null,
   "recorded_at": "2026-10-12T21:12:22.027Z",
   "origin": "Archived before kick-off",
   "record_part": "archived",
   "record_part_words": "Archived before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-975aa6b8b040ce670afe4bb2",
   "url": null,
   "match": "Newcastle United v Sunderland",
   "match_url": null,
   "kickoff": "2026-03-22T12:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": -4905.2,
   "market_code": "cards_over_under",
   "author_said": "Over/Under 5.5 cards: over 5.5",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-2",
   "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": null,
   "recorded_at": "2026-10-12T21:12:48.815Z",
   "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,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-de8ddfec818dec19ab6af57a",
   "url": null,
   "match": "Newcastle United v Sunderland",
   "match_url": null,
   "kickoff": "2026-03-22T12:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": -4905.2,
   "market_code": "result_and_total",
   "author_said": "Match result and over/under 2.5 goals: Newcastle United to win and under 2.5 goals at 4.0",
   "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": null,
   "recorded_at": "2026-10-12T21:12:48.815Z",
   "origin": "Archived before kick-off",
   "record_part": "archived",
   "record_part_words": "Archived before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-5167d6df9e83eabd108512b2",
   "url": null,
   "match": "Liverpool v Chelsea",
   "match_url": null,
   "kickoff": "2026-05-09T11:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": -3753.8,
   "market_code": "win_to_nil",
   "author_said": "To win to nil: Liverpool to win to nil",
   "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": "3.7750",
   "published_at": null,
   "recorded_at": "2026-10-12T21:15:23.763Z",
   "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,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-c026c6714f973dbb3a952acb",
   "url": null,
   "match": "Bradford City v Bolton Wanderers",
   "match_url": null,
   "kickoff": "2026-05-14T19:00:00.000Z",
   "competition": "EFL League One",
   "lead_hours": -3626.3,
   "market_code": "1x2",
   "author_said": "1X2, match result: Bolton Wanderers",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "0-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 17600,
   "series_code": "retro_market_closing_sm",
   "series_short": "last pre-match archive price, restored",
   "author_price": null,
   "settled_price": "2.7600",
   "published_at": null,
   "recorded_at": "2026-10-12T21:16:28.897Z",
   "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,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-73a6a7c9a6107a9b0b3e1365",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "Leeds to win (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": null,
   "recorded_at": "2026-10-12T21:16:57.948Z",
   "origin": "Archived before kick-off",
   "record_part": "archived",
   "record_part_words": "Archived before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-42198f2f28be3baea1d68788",
   "url": "/authors/joe-townsend/picks/9/#pick-n-42198f2f28be3baea1d68788",
   "match": "Manchester City v Paris Saint-Germain",
   "match_url": "/football/matches/manchester-city-vs-paris-saint-germain-2026-10-14/",
   "kickoff": "2026-10-14T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 31.3,
   "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 at 4.5",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "2-4",
   "reason": "",
   "reason_code": "disputed_reading",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-13T11:39:24.000Z",
   "recorded_at": "2026-10-13T11:44:33.666Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null,
   "evidence": {
    "observation_id": "n-42198f2f28be3baea1d68788",
    "quote_text": "1pt PSG to win and both teams to score at 7/2 (Betfair, bet365, William Hill)",
    "fragment_from": 244,
    "fragment_to": 321,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://www.sportinglife.com/football/news/man-city-vs-psg-tips-holders-overpriced/234801",
     "display_name": null,
     "speaker": "Joe Townsend",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "82824dae34d2763d666ad43d90a2f27fdb69f5ec40720c27bdc93e49dc00a760",
     "material_removed": false
    },
    "published_at": "2026-10-13T11:39:24.000Z",
    "detected_at": "2026-10-13T11:44:33.666Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "recognised",
    "cause": "",
    "cause_code": "disputed_reading",
    "event": {
     "event_id": "s-29ba3bb2f092",
     "display_name": "Manchester City — Paris Saint-Germain",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-10-14T19:00:00.000Z",
     "url": "/football/matches/manchester-city-vs-paris-saint-germain-2026-10-14/",
     "scoreline": "2-4",
     "condition": "finished"
    },
    "market_label": "Match result and both teams to score",
    "outcome_label": "Paris Saint-Germain win, both teams to score: yes",
    "odds_set": {
     "by_author": "4.5",
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "win",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-13T11:39:24.000Z",
     "fragment_basis": "page",
     "source_page_at": "2026-10-13T11:39:24.000Z",
     "detected_at": "2026-10-13T11:44:33.666Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Match result and both teams to score",
     "choice": "Paris Saint-Germain win, both teams to score: yes",
     "author_odds": "4.5",
     "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: Paris Saint-Germain win, both teams to score: yes at 4.5"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "2-4",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Manchester City 2-4 Paris Saint-Germain."
    },
    "settlements": [
     {
      "operation_id": "bc63a558e67552bd64cf5e02d7a2d8c32216ed56a2b12acb3d66db092c986a59",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "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": "4.5",
      "odds_role": "author_price",
      "stake_hundredths": null,
      "status": "cancelled",
      "status_text": "Cancelled: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": "2026-10-13T11:45:34.666Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "e562bafe9d110fef1a84ecc4103f83ed27c5d1cdbace7b41a3b85f80a4881a46",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "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": "4.5000",
      "odds_role": "market_price",
      "stake_hundredths": null,
      "status": "cancelled",
      "status_text": "Cancelled: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": "2026-10-13T11:45:35.850Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joe Townsend",
     "publisher": "sportinglife.com",
     "forecaster": "Joe Townsend",
     "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/man-city-vs-psg-tips-holders-overpriced/234801",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Paris Saint-Germain win, both teams to score: yes"
   }
  },
  {
   "record_id": "n-da49e2a13b3b833c04af854e",
   "url": "/authors/joe-townsend/picks/9/#pick-n-da49e2a13b3b833c04af854e",
   "match": "Manchester City v Paris Saint-Germain",
   "match_url": "/football/matches/manchester-city-vs-paris-saint-germain-2026-10-14/",
   "kickoff": "2026-10-14T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 31.3,
   "market_code": "both_teams_score_and_result",
   "author_said": "Match result and both teams to score: draw, both teams to score: yes at 4.5",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-4",
   "reason": "",
   "reason_code": "disputed_reading",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-13T11:39:24.000Z",
   "recorded_at": "2026-10-13T11:44:33.666Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null,
   "evidence": {
    "observation_id": "n-da49e2a13b3b833c04af854e",
    "quote_text": "1pt Draw and both teams to score at 7/2 (Betfair, BetVictor)",
    "fragment_from": 323,
    "fragment_to": 383,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://www.sportinglife.com/football/news/man-city-vs-psg-tips-holders-overpriced/234801",
     "display_name": null,
     "speaker": "Joe Townsend",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "82824dae34d2763d666ad43d90a2f27fdb69f5ec40720c27bdc93e49dc00a760",
     "material_removed": false
    },
    "published_at": "2026-10-13T11:39:24.000Z",
    "detected_at": "2026-10-13T11:44:33.666Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "recognised",
    "cause": "",
    "cause_code": "disputed_reading",
    "event": {
     "event_id": "s-29ba3bb2f092",
     "display_name": "Manchester City — Paris Saint-Germain",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-10-14T19:00:00.000Z",
     "url": "/football/matches/manchester-city-vs-paris-saint-germain-2026-10-14/",
     "scoreline": "2-4",
     "condition": "finished"
    },
    "market_label": "Match result and both teams to score",
    "outcome_label": "draw, both teams to score: yes",
    "odds_set": {
     "by_author": "4.5",
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-13T11:39:24.000Z",
     "fragment_basis": "page",
     "source_page_at": "2026-10-13T11:39:24.000Z",
     "detected_at": "2026-10-13T11:44:33.666Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Match result and both teams to score",
     "choice": "draw, both teams to score: yes",
     "author_odds": "4.5",
     "market_key": "both_teams_score_and_result",
     "choice_key": "X-yes",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Match result and both teams to score: draw, both teams to score: yes at 4.5"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-4",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was Manchester City 2-4 Paris Saint-Germain."
    },
    "settlements": [
     {
      "operation_id": "62fa29bcc69b8b4eee5988dce9f3423392037201f21854643ba2c6d4729f7145",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Match result and both teams to score",
      "choice": "draw, both teams to score: yes",
      "decimal_odds": "4.5",
      "odds_role": "author_price",
      "stake_hundredths": null,
      "status": "cancelled",
      "status_text": "Cancelled: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": "2026-10-13T11:45:35.917Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "df9845be3256168a62bb91645ef52a090a3df71e99b6c31a8ea6072d46a1ebb6",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Match result and both teams to score",
      "choice": "draw, both teams to score: yes",
      "decimal_odds": "4.3650",
      "odds_role": "market_price",
      "stake_hundredths": null,
      "status": "cancelled",
      "status_text": "Cancelled: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": "2026-10-13T11:45:36.987Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joe Townsend",
     "publisher": "sportinglife.com",
     "forecaster": "Joe Townsend",
     "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/man-city-vs-psg-tips-holders-overpriced/234801",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "draw, both teams to score: yes"
   }
  },
  {
   "record_id": "n-fad6eb13dbc7211a6f179b2a",
   "url": "/authors/joe-townsend/picks/9/#pick-n-fad6eb13dbc7211a6f179b2a",
   "match": "Manchester City v Paris Saint-Germain",
   "match_url": "/football/matches/manchester-city-vs-paris-saint-germain-2026-10-14/",
   "kickoff": "2026-10-14T19:00:00.000Z",
   "competition": "UEFA Champions League",
   "lead_hours": 31.3,
   "market_code": "player_card",
   "author_said": "Player to be carded: Gianluigi Donnarumma to be carded at 10",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-4",
   "reason": "graded against the result: wrong",
   "reason_code": "not_checked",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-13T11:39:24.000Z",
   "recorded_at": "2026-10-13T11:44:33.666Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null,
   "evidence": {
    "observation_id": "n-fad6eb13dbc7211a6f179b2a",
    "quote_text": "0.5pt Gianluigi Donnarumma to be shown a card at 9/1 (Coral, Ladbrokes)",
    "fragment_from": 385,
    "fragment_to": 456,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://www.sportinglife.com/football/news/man-city-vs-psg-tips-holders-overpriced/234801",
     "display_name": null,
     "speaker": "Joe Townsend",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "82824dae34d2763d666ad43d90a2f27fdb69f5ec40720c27bdc93e49dc00a760",
     "material_removed": false
    },
    "published_at": "2026-10-13T11:39:24.000Z",
    "detected_at": "2026-10-13T11:44:33.666Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-29ba3bb2f092",
     "display_name": "Manchester City — Paris Saint-Germain",
     "competition_name": "UEFA Champions League",
     "starts_at": "2026-10-14T19:00:00.000Z",
     "url": "/football/matches/manchester-city-vs-paris-saint-germain-2026-10-14/",
     "scoreline": "2-4",
     "condition": "finished"
    },
    "market_label": "Player to be carded",
    "outcome_label": "Gianluigi Donnarumma to be carded",
    "odds_set": {
     "by_author": "10",
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-13T11:39:24.000Z",
     "fragment_basis": "page",
     "source_page_at": "2026-10-13T11:39:24.000Z",
     "detected_at": "2026-10-13T11:44:33.666Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Player to be carded",
     "choice": "Gianluigi Donnarumma to be carded",
     "author_odds": "10",
     "market_key": "player_card",
     "choice_key": "yes",
     "period": "match",
     "line": null,
     "subject": null,
     "in_words": "Player to be carded: Gianluigi Donnarumma to be carded at 10"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-4",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was Manchester City 2-4 Paris Saint-Germain."
    },
    "settlements": [
     {
      "operation_id": "4a2137f619c9a1dac81cba7eb91bba9669379efea2b08610cbaf9811058193f9",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Player to be carded",
      "choice": "Gianluigi Donnarumma to be carded",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "ff809e879ad817769222b960868a097784cf3a03822bd387effdfe4729c9690a",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Player to be carded",
      "choice": "Gianluigi Donnarumma to be carded",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joe Townsend",
     "publisher": "sportinglife.com",
     "forecaster": "Joe Townsend",
     "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/man-city-vs-psg-tips-holders-overpriced/234801",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Gianluigi Donnarumma to be carded"
   }
  },
  {
   "record_id": "n-98f525e658a6711157347eff",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "0.5pt Lenglet 1+ assists at 14/1 (Coral, Ladbrokes)",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "",
   "reason_code": "not_supported",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-14T12:27:24.000Z",
   "recorded_at": "2026-10-14T12:34:33.511Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-bd92e21bc8a6a5d676ef7eb7",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "0.5pt Liam Scales to score anytime at 30/1 (Betfair, Paddy Power)",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "",
   "reason_code": "ambiguous",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-14T12:27:24.000Z",
   "recorded_at": "2026-10-14T12:34:33.511Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-c5f35989cd696d539b0a50d2",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "2pts Benfica to win and both teams to score at 17/10 (General)",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "",
   "reason_code": "ambiguous",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-14T12:27:24.000Z",
   "recorded_at": "2026-10-14T12:34:33.511Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-e2523e703c0b1f39a5c8d3e8",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "0.5pt Clement Lenglet to score anytime at 17/2 (Betfair, Paddy Power, Sky Bet)",
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": null,
   "final_score": null,
   "reason": "",
   "reason_code": "ambiguous",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-14T12:27:24.000Z",
   "recorded_at": "2026-10-14T12:34:33.511Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null
  },
  {
   "record_id": "n-9bf84d30757a6ce6288292fe",
   "url": "/authors/joe-townsend/picks/9/#pick-n-9bf84d30757a6ce6288292fe",
   "match": "Benfica v Celtic",
   "match_url": "/football/matches/benfica-vs-celtic-2026-10-15/",
   "kickoff": "2026-10-15T19:00:00.000Z",
   "competition": "UEFA Europa League",
   "lead_hours": 29.6,
   "market_code": "player_shots",
   "author_said": "Player shots on target over/under 1: Liam Scales over 1.0 shot on target at 41",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Void",
   "final_score": "4-1",
   "reason": "",
   "reason_code": "not_checked",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-14T12:27:24.000Z",
   "recorded_at": "2026-10-14T13:24:33.541Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null,
   "evidence": {
    "observation_id": "n-9bf84d30757a6ce6288292fe",
    "quote_text": "0.5pt Scales 1+ shots on target outside the box at 40/1 (bet365)",
    "fragment_from": 491,
    "fragment_to": 555,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://www.sportinglife.com/football/news/men-against-bhoys-but-scales-tip-in-our-favour/234821",
     "display_name": null,
     "speaker": "Joe Townsend",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "f4d089446d0bb32675ac5d38bb137d323b7b75cca66f2d5627425fb881c0af63",
     "material_removed": false
    },
    "published_at": "2026-10-14T12:27:24.000Z",
    "detected_at": "2026-10-14T13:24:33.541Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-5c28a1856964",
     "display_name": "Benfica — Celtic",
     "competition_name": "UEFA Europa League",
     "starts_at": "2026-10-15T19:00:00.000Z",
     "url": "/football/matches/benfica-vs-celtic-2026-10-15/",
     "scoreline": "4-1",
     "condition": "finished"
    },
    "market_label": "Player shots on target over/under 1",
    "outcome_label": "Liam Scales over 1.0 shot on target",
    "odds_set": {
     "by_author": "41",
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "void",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-14T12:27:24.000Z",
     "fragment_basis": "page",
     "source_page_at": "2026-10-14T12:27:24.000Z",
     "detected_at": "2026-10-14T13:24:33.541Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Player shots on target over/under 1",
     "choice": "Liam Scales over 1.0 shot on target",
     "author_odds": "41",
     "market_key": "player_shots",
     "choice_key": "over",
     "period": "match",
     "line": "1.0",
     "subject": "shots",
     "in_words": "Player shots on target over/under 1: Liam Scales over 1.0 shot on target at 41"
    },
    "author_claim_outcome": {
     "result": "void",
     "scoreline": "4-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Void — Liam Scales did not play; the final score was Benfica 4-1 Celtic."
    },
    "settlements": [
     {
      "operation_id": "5e8b8cdbf839cf0bd5c19a3eabcdab8c4cac3d506aad150c464c7a92e03c89ce",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Player shots on target over/under 1",
      "choice": "Liam Scales over 1.0 shot on target",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "8f0da1abb9da6bf5227424b9ccf53ae5cacf4fb621c989e467bf1d5ab969fe98",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Player shots on target over/under 1",
      "choice": "Liam Scales over 1.0 shot on target",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joe Townsend",
     "publisher": "sportinglife.com",
     "forecaster": "Joe Townsend",
     "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/men-against-bhoys-but-scales-tip-in-our-favour/234821",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Liam Scales over 1.0 shot on target"
   }
  },
  {
   "record_id": "n-006f7e2862e0b6b852117b59",
   "url": "/authors/joe-townsend/picks/9/#pick-n-006f7e2862e0b6b852117b59",
   "match": "Stockport County v Bromley",
   "match_url": "/football/matches/stockport-county-vs-bromley-2026-10-17/",
   "kickoff": "2026-10-17T14:00:00.000Z",
   "competition": "EFL League One",
   "lead_hours": 70.3,
   "market_code": "1x2",
   "author_said": "1X2, match result: Stockport County at 1.22",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-0",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 2250,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": "1.22",
   "settled_price": "1.2250",
   "published_at": "2026-10-14T15:39:38.000Z",
   "recorded_at": "2026-10-14T15:44:33.766Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null,
   "evidence": {
    "observation_id": "n-006f7e2862e0b6b852117b59",
    "quote_text": "STOCKPORT 2/9 vs Bromley\n\nThere are two big mismatches in League One as promotion chasers SHEFFIELD WEDNESDAY and STOCKPORT host relegation candidates AFC Wimbledon and Bromley respectively, with there no reason to overthink backing either team.",
    "fragment_from": 2791,
    "fragment_to": 3036,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://www.sportinglife.com/football/news/last-man-standing-far-too-many-favs/234815",
     "display_name": null,
     "speaker": "Joe Townsend",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "0750d93f975fffc1d4e37745dbdcede0078c49a303574176ac1b01177dd44575",
     "material_removed": false
    },
    "published_at": "2026-10-14T15:39:38.000Z",
    "detected_at": "2026-10-14T15:44:33.766Z",
    "executed_at": "2026-10-22T11:02:14.679Z",
    "statement_class": "priced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-ff28915f6f29",
     "display_name": "Stockport County — Bromley",
     "competition_name": "EFL League One",
     "starts_at": "2026-10-17T14:00:00.000Z",
     "url": "/football/matches/stockport-county-vs-bromley-2026-10-17/",
     "scoreline": "1-0",
     "condition": "finished"
    },
    "market_label": "1X2, match result",
    "outcome_label": "Stockport County",
    "odds_set": {
     "by_author": "1.22",
     "our_snapshot": "1.2250",
     "our_snapshot_at": "2026-10-14T15:40:36.000Z",
     "our_snapshot_source": "market snapshot",
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "win",
    "simulation_change_hundredths": 2250,
    "bankroll_after_hundredths": null,
    "executed_by": "ours",
    "series_label": "At an independent odds snapshot",
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-14T15:39:38.000Z",
     "fragment_basis": "page",
     "source_page_at": "2026-10-14T15:39:38.000Z",
     "detected_at": "2026-10-14T15:44:33.766Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "1X2, match result",
     "choice": "Stockport County",
     "author_odds": "1.22",
     "market_key": "1x2",
     "choice_key": "1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: Stockport County at 1.22"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Stockport County 1-0 Bromley."
    },
    "settlements": [
     {
      "operation_id": "48ab4e641894afdbf375496c78e2f35355c413837c068f91fafa1cdadf3bfd95",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "1X2, match result",
      "choice": "Stockport County",
      "decimal_odds": "1.22",
      "odds_role": "author_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 2200,
      "executed_at": "2026-10-15T16:41:06.398Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "a7816bf1c3090c2ad4d9180219606ca243bd1e4232ff00e5e8bc4b66f13073cc",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "1X2, match result",
      "choice": "Stockport County",
      "decimal_odds": "1.2250",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 2250,
      "executed_at": "2026-10-22T11:02:14.679Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Joe Townsend",
     "publisher": "sportinglife.com",
     "forecaster": "Joe Townsend",
     "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-man-standing-far-too-many-favs/234815",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Stockport County to win"
   }
  },
  {
   "record_id": "n-2faeae5b278912a43c254b43",
   "url": "/authors/joe-townsend/picks/9/#pick-n-2faeae5b278912a43c254b43",
   "match": "Manchester City v Ipswich Town",
   "match_url": "/football/matches/manchester-city-vs-ipswich-town-2026-10-17/",
   "kickoff": "2026-10-17T14:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 70.3,
   "market_code": "1x2",
   "author_said": "1X2, match result: Manchester City at 1.2",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "3-2",
   "reason": "",
   "reason_code": "disputed_reading",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-14T15:39:38.000Z",
   "recorded_at": "2026-10-14T15:44:33.766Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null,
   "evidence": {
    "observation_id": "n-2faeae5b278912a43c254b43",
    "quote_text": "MANCHESTER CITY 1/5 vs Ipswich\n\nMAN CITY are the obvious Last Man pick with no explanation needed.",
    "fragment_from": 953,
    "fragment_to": 1051,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://www.sportinglife.com/football/news/last-man-standing-far-too-many-favs/234815",
     "display_name": null,
     "speaker": "Joe Townsend",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "0750d93f975fffc1d4e37745dbdcede0078c49a303574176ac1b01177dd44575",
     "material_removed": false
    },
    "published_at": "2026-10-14T15:39:38.000Z",
    "detected_at": "2026-10-14T15:44:33.766Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "recognised",
    "cause": "",
    "cause_code": "disputed_reading",
    "event": {
     "event_id": "s-6ad9a71a98c6",
     "display_name": "Manchester City — Ipswich Town",
     "competition_name": "Premier League",
     "starts_at": "2026-10-17T14:00:00.000Z",
     "url": "/football/matches/manchester-city-vs-ipswich-town-2026-10-17/",
     "scoreline": "3-2",
     "condition": "finished"
    },
    "market_label": "1X2, match result",
    "outcome_label": "Manchester City",
    "odds_set": {
     "by_author": "1.2",
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "win",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-14T15:39:38.000Z",
     "fragment_basis": "page",
     "source_page_at": "2026-10-14T15:39:38.000Z",
     "detected_at": "2026-10-14T15:44:33.766Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "1X2, match result",
     "choice": "Manchester City",
     "author_odds": "1.2",
     "market_key": "1x2",
     "choice_key": "1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: Manchester City at 1.2"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "3-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Manchester City 3-2 Ipswich Town."
    },
    "settlements": [
     {
      "operation_id": "e8ebd630f7ff9418a538f1691a493f6c2606e7e9ee1aa623f2a9e74b862e3424",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "1X2, match result",
      "choice": "Manchester City",
      "decimal_odds": "1.2",
      "odds_role": "author_price",
      "stake_hundredths": null,
      "status": "cancelled",
      "status_text": "Cancelled: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": "2026-10-15T16:41:06.873Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "1742816f64cc35f9e336eca913a7f9ca5d93460faf796a7f994b626889ee4d70",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "1X2, match result",
      "choice": "Manchester City",
      "decimal_odds": "1.2198",
      "odds_role": "market_price",
      "stake_hundredths": null,
      "status": "cancelled",
      "status_text": "Cancelled: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": "2026-10-15T16:41:07.939Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joe Townsend",
     "publisher": "sportinglife.com",
     "forecaster": "Joe Townsend",
     "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-man-standing-far-too-many-favs/234815",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Manchester City to win"
   }
  },
  {
   "record_id": "n-759781511ffbd861404bfa69",
   "url": "/authors/joe-townsend/picks/9/#pick-n-759781511ffbd861404bfa69",
   "match": "Bradford City v Stevenage",
   "match_url": "/football/matches/bradford-city-vs-stevenage-2026-10-17/",
   "kickoff": "2026-10-17T14:00:00.000Z",
   "competition": "EFL League One",
   "lead_hours": 70.3,
   "market_code": "1x2",
   "author_said": "1X2, match result: Bradford City at 1.83",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "2-0",
   "reason": "graded against the result: right",
   "reason_code": "not_checked",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-14T15:39:38.000Z",
   "recorded_at": "2026-10-14T15:44:33.766Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null,
   "evidence": {
    "observation_id": "n-759781511ffbd861404bfa69",
    "quote_text": "Dodgy picks and coupon busters\n\nBRADFORD (5/6) have a new manager in charge and are struggling to create chances while Stevenage are back to resembling the side who finished in the play-offs last term, losing just one of their last eight.",
    "fragment_from": 3038,
    "fragment_to": 3276,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://www.sportinglife.com/football/news/last-man-standing-far-too-many-favs/234815",
     "display_name": null,
     "speaker": "Joe Townsend",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "0750d93f975fffc1d4e37745dbdcede0078c49a303574176ac1b01177dd44575",
     "material_removed": false
    },
    "published_at": "2026-10-14T15:39:38.000Z",
    "detected_at": "2026-10-14T15:44:33.766Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-36215012697f",
     "display_name": "Bradford City — Stevenage",
     "competition_name": "EFL League One",
     "starts_at": "2026-10-17T14:00:00.000Z",
     "url": "/football/matches/bradford-city-vs-stevenage-2026-10-17/",
     "scoreline": "2-0",
     "condition": "finished"
    },
    "market_label": "1X2, match result",
    "outcome_label": "Bradford City",
    "odds_set": {
     "by_author": "1.83",
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "win",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-14T15:39:38.000Z",
     "fragment_basis": "page",
     "source_page_at": "2026-10-14T15:39:38.000Z",
     "detected_at": "2026-10-14T15:44:33.766Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "1X2, match result",
     "choice": "Bradford City",
     "author_odds": "1.83",
     "market_key": "1x2",
     "choice_key": "1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: Bradford City at 1.83"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "2-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Bradford City 2-0 Stevenage."
    },
    "settlements": [
     {
      "operation_id": "95ff488d75167280f269048cd57753b5ac3917e040282d49bef1529ae0ba3d59",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "1X2, match result",
      "choice": "Bradford City",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "27e70f5927b769946f1f982c0b8477cf5e2a0b49d4af434375073a91cf759d8f",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "1X2, match result",
      "choice": "Bradford City",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joe Townsend",
     "publisher": "sportinglife.com",
     "forecaster": "Joe Townsend",
     "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-man-standing-far-too-many-favs/234815",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Bradford City to win"
   }
  },
  {
   "record_id": "n-91f141811436b4a202f1efc3",
   "url": "/authors/joe-townsend/picks/9/#pick-n-91f141811436b4a202f1efc3",
   "match": "Salford City v Crawley Town",
   "match_url": null,
   "kickoff": "2026-10-17T14:00:00.000Z",
   "competition": "EFL League Two",
   "lead_hours": 70.3,
   "market_code": "1x2",
   "author_said": "1X2, match result: Salford City at 1.33",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "2-1",
   "reason": "graded against the result: right",
   "reason_code": "not_checked",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-14T15:39:38.000Z",
   "recorded_at": "2026-10-14T15:44:33.766Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sporting Life, author pages",
   "correction": null,
   "evidence": {
    "observation_id": "n-91f141811436b4a202f1efc3",
    "quote_text": "SALFORD 1/3 vs Crawley\n\nAfter a slow start SALFORD are rolling (W6 D1) and top of League Two. Crawley are bottom with one win and five points from eight games.",
    "fragment_from": 3407,
    "fragment_to": 3566,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://www.sportinglife.com/football/news/last-man-standing-far-too-many-favs/234815",
     "display_name": null,
     "speaker": "Joe Townsend",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "0750d93f975fffc1d4e37745dbdcede0078c49a303574176ac1b01177dd44575",
     "material_removed": false
    },
    "published_at": "2026-10-14T15:39:38.000Z",
    "detected_at": "2026-10-14T15:44:33.766Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-e4c74cb0315e",
     "display_name": "Salford City — Crawley Town",
     "competition_name": "EFL League Two",
     "starts_at": "2026-10-17T14:00:00.000Z",
     "url": null,
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "1X2, match result",
    "outcome_label": "Salford City",
    "odds_set": {
     "by_author": "1.33",
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "win",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-14T15:39:38.000Z",
     "fragment_basis": "page",
     "source_page_at": "2026-10-14T15:39:38.000Z",
     "detected_at": "2026-10-14T15:44:33.766Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "1X2, match result",
     "choice": "Salford City",
     "author_odds": "1.33",
     "market_key": "1x2",
     "choice_key": "1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: Salford City at 1.33"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "2-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Salford City 2-1 Crawley Town."
    },
    "settlements": [
     {
      "operation_id": "26918d76e8245de6870be703b27fa26027ead7f56ac9bdd3c062f44d265cf9b1",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "1X2, match result",
      "choice": "Salford City",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "363745710bd48b9fb2b1a3eb6c94a9ee8b5cd95aa5d968b7bd87457efc194249",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "1X2, match result",
      "choice": "Salford City",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joe Townsend",
     "publisher": "sportinglife.com",
     "forecaster": "Joe Townsend",
     "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-man-standing-far-too-many-favs/234815",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Salford City to win"
   }
  }
 ],
 "pagination": {
  "per_page": 20,
  "total": 199,
  "pages": 11,
  "page_urls": [
   "/authors/joe-townsend/",
   "/authors/joe-townsend/picks/2/",
   "/authors/joe-townsend/picks/3/",
   "/authors/joe-townsend/picks/4/",
   "/authors/joe-townsend/picks/5/",
   "/authors/joe-townsend/picks/6/",
   "/authors/joe-townsend/picks/7/",
   "/authors/joe-townsend/picks/8/",
   "/authors/joe-townsend/picks/9/",
   "/authors/joe-townsend/picks/10/",
   "/authors/joe-townsend/picks/11/"
  ],
  "groups": {
   "settled": 83,
   "pending": 2,
   "excluded": 114
  },
  "continuation": "by_time",
  "page": 9,
  "first": 141,
  "last": 160,
  "author_url": "/authors/joe-townsend/",
  "current": false
 },
 "entity_id": "history:/authors/joe-townsend/picks/9/",
 "source_revision": 45
}
