{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "history",
 "url": "/authors/joshua-ojele/picks/5/",
 "canonical": "/authors/joshua-ojele/picks/5/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Joshua Ojele — football predictions, page 5 of 8",
 "description": "Predictions 61–80 of 121 by Joshua Ojele, with outcomes in words and links to the evidence.",
 "first_paragraph": {
  "body": "Page 5 of 8 of the predictions by Joshua Ojele recorded by Forecast Record: predictions 61–80 of 121 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": "121",
  "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-07T17:47:35.538Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-07T19:52:23.438Z",
 "content_hash": null,
 "meaning_hash": "e46a07e7c1138c65308186092ee1039e3660ce9651ee2b14a173c6465a247832",
 "dependency_group": "author:e-039bcef343c50ba1d22f8e19",
 "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/joshua-ojele/picks/5/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-039bcef343c50ba1d22f8e19",
  "public_name": "Joshua Ojele",
  "tracker_number": 1407,
  "status": "active",
  "inactive_since": null,
  "verified_creator": false,
  "observation_period": {
   "since": "2026-09-28",
   "until": "2026-11-07"
  },
  "platform_list": [
   {
    "medium": "website",
    "handle": null,
    "url": null,
    "link_confirmed": false,
    "show": true
   }
  ],
  "comment": null
 },
 "recorded_picks": [
  {
   "record_id": "n-9fab97ace7277e3164888ab9",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-9fab97ace7277e3164888ab9",
   "match": "Monaco v SC Freiburg",
   "match_url": "/football/matches/monaco-vs-sc-freiburg-2026-10-22/",
   "kickoff": "2026-10-22T19:00:00.000Z",
   "competition": "UEFA Conference League",
   "lead_hours": 36.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Monaco 3-1 SC Freiburg at 17",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-0",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-21T06:35:16.000Z",
   "recorded_at": "2026-10-21T06:44:17.235Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-9fab97ace7277e3164888ab9",
    "quote_text": "Correct score: 3-1 at 16/1 (17.00)",
    "fragment_from": 5133,
    "fragment_to": 5167,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/monaco-vs-freiburg-prediction-22-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "9ceb01db3d0b0cb07ca674591c9079fd8ab73c742d6ba25be535754a71db16fd",
     "material_removed": false
    },
    "published_at": "2026-10-21T06:35:16.000Z",
    "detected_at": "2026-10-21T06:44:17.235Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": "",
    "cause_code": "no_price_at_capture",
    "event": {
     "event_id": "s-1215c796ece7",
     "display_name": "Monaco — SC Freiburg",
     "competition_name": "UEFA Conference League",
     "starts_at": "2026-10-22T19:00:00.000Z",
     "url": "/football/matches/monaco-vs-sc-freiburg-2026-10-22/",
     "scoreline": "3-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Monaco 3-1 SC Freiburg",
    "odds_set": {
     "by_author": "17",
     "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-21T06:35:16.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-21T06:35:16.000Z",
     "detected_at": "2026-10-21T06:44:17.235Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Monaco 3-1 SC Freiburg",
     "author_odds": "17",
     "market_key": "correct_score_market",
     "choice_key": "3-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Monaco 3-1 SC Freiburg at 17"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "3-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Monaco 3-0 SC Freiburg."
    },
    "settlements": [
     {
      "operation_id": "8f02be8b5805dbedc3430ab3bab92b73b80bacd49a7fc66dc0eec8329ca95a31",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Correct score",
      "choice": "Monaco 3-1 SC Freiburg",
      "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": "ac3af144b721afd69d78ef1c5d33c107ed79fd433333f2683d5cfa696dc15692",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Monaco",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/monaco-vs-freiburg-prediction-22-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Monaco 3-1 SC Freiburg"
   }
  },
  {
   "record_id": "n-175a3480aafac7a87761819d",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-175a3480aafac7a87761819d",
   "match": "Estrela Amadora v Casa Pia",
   "match_url": "/football/matches/estrela-amadora-vs-casa-pia-2026-10-24/",
   "kickoff": "2026-10-24T14:30:00.000Z",
   "competition": "Primeira Liga",
   "lead_hours": 41.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Estrela Amadora 2-1 Casa Pia",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": "2026-10-22T20:18:02.000Z",
   "recorded_at": "2026-10-22T21:10:07.648Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "1.7500",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": "Sports Mole",
   "correction": null,
   "evidence": {
    "observation_id": "n-175a3480aafac7a87761819d",
    "quote_text": "We say: Estrela Amadora 2-1 Casa Pia",
    "fragment_from": 4695,
    "fragment_to": 4731,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://www.sportsmole.co.uk/football/estrela-amadora/preview/estrela-amadora-vs-casa-pia-prediction-team-news-lineups_607491.html",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "f6127e9333b12ac0d43f299fd354319816905d91628769e073bbd2d838745da2",
     "material_removed": false
    },
    "published_at": "2026-10-22T20:18:02.000Z",
    "detected_at": "2026-10-22T21:10:07.648Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-0807a814d512",
     "display_name": "Estrela Amadora — Casa Pia",
     "competition_name": "Primeira Liga",
     "starts_at": "2026-10-24T14:30:00.000Z",
     "url": "/football/matches/estrela-amadora-vs-casa-pia-2026-10-24/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Estrela Amadora 2-1 Casa Pia",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-22T20:18:02.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-22T20:18:02.000Z",
     "detected_at": "2026-10-22T21:10:07.648Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Estrela Amadora 2-1 Casa Pia",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Estrela Amadora 2-1 Casa Pia"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Estrela Amadora 0-2 Casa Pia."
    },
    "settlements": [
     {
      "operation_id": "ec5a5f7b026a8ca929b745546163c6a72bec1657ba0bfce346c4cac108d6f2c6",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Estrela Amadora",
      "decimal_odds": "1.7500",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-24T00:47:54.407Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Sports Mole",
     "forecaster": "Joshua Ojele",
     "forecaster_named_in_text": false,
     "basis": null,
     "status": "not_named",
     "status_words": "Attributed by the byline",
     "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
     "evidence_fragment": null,
     "material_url": "https://www.sportsmole.co.uk/football/estrela-amadora/preview/estrela-amadora-vs-casa-pia-prediction-team-news-lineups_607491.html",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Estrela Amadora 2-1 Casa Pia"
   }
  },
  {
   "record_id": "n-1383406545198b7b266ced7f",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-1383406545198b7b266ced7f",
   "match": "Gil Vicente v FC Porto",
   "match_url": "/football/matches/gil-vicente-vs-fc-porto-2026-10-24/",
   "kickoff": "2026-10-24T19:30:00.000Z",
   "competition": "Primeira Liga",
   "lead_hours": 38.4,
   "market_code": "total",
   "author_said": "Over/Under 2.5 goals: over 2.5 at 1.85",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": "1.85",
   "settled_price": "1.8200",
   "published_at": "2026-10-23T04:54:02.000Z",
   "recorded_at": "2026-10-23T05:04:17.221Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-1383406545198b7b266ced7f",
    "quote_text": "Over 2.5 goals – Yes at 17/20 (1.85)",
    "fragment_from": 5093,
    "fragment_to": 5129,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/gil-vicente-vs-porto-prediction-24-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "ed1358477f94e724b9e897d03e8c99ec9cae2a472ae5654cdb71888fd417bedf",
     "material_removed": false
    },
    "published_at": "2026-10-23T04:54:02.000Z",
    "detected_at": "2026-10-23T05:04:17.221Z",
    "executed_at": "2026-10-23T06:46:02.548Z",
    "statement_class": "priced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-63275223a897",
     "display_name": "Gil Vicente — FC Porto",
     "competition_name": "Primeira Liga",
     "starts_at": "2026-10-24T19:30:00.000Z",
     "url": "/football/matches/gil-vicente-vs-fc-porto-2026-10-24/",
     "scoreline": "0-1",
     "condition": "finished"
    },
    "market_label": "Over/Under 2.5 goals",
    "outcome_label": "over 2.5",
    "odds_set": {
     "by_author": "1.85",
     "our_snapshot": "1.8200",
     "our_snapshot_at": "2026-10-23T05:07:27.765Z",
     "our_snapshot_source": "market snapshot",
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "loss",
    "simulation_change_hundredths": -10000,
    "bankroll_after_hundredths": null,
    "executed_by": "ours",
    "series_label": "At an independent odds snapshot",
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-23T04:54:02.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-23T04:54:02.000Z",
     "detected_at": "2026-10-23T05:04:17.221Z",
     "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": "Over/Under 2.5 goals",
     "choice": "over 2.5",
     "author_odds": "1.85",
     "market_key": "total",
     "choice_key": "over",
     "period": "match",
     "line": "2.5",
     "subject": "goals_total",
     "in_words": "Over/Under 2.5 goals: over 2.5 at 1.85"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was Gil Vicente 0-1 FC Porto."
    },
    "settlements": [
     {
      "operation_id": "8b2e2a2f410965d5fb1f39ceb7a1ae519ea0ab3b746660d4fd8bead7fda88824",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Over/Under 2.5 goals",
      "choice": "over 2.5",
      "decimal_odds": "1.85",
      "odds_role": "author_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-23T06:46:00.548Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "cb16295f66695daf523a3b182eb5fb2ae7fcd97914f320595b2a42ae01d81edc",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Over/Under 2.5 goals",
      "choice": "over 2.5",
      "decimal_odds": "1.8200",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-23T06:46:02.548Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/gil-vicente-vs-porto-prediction-24-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "over 2.5 (Over/Under 2.5 goals)"
   }
  },
  {
   "record_id": "n-94227a5b3b1e3031f139004c",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-94227a5b3b1e3031f139004c",
   "match": "Gil Vicente v FC Porto",
   "match_url": "/football/matches/gil-vicente-vs-fc-porto-2026-10-24/",
   "kickoff": "2026-10-24T19:30:00.000Z",
   "competition": "Primeira Liga",
   "lead_hours": 38.4,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Gil Vicente 1-3 FC Porto at 13",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "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-23T04:54:02.000Z",
   "recorded_at": "2026-10-23T05:04:17.221Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-94227a5b3b1e3031f139004c",
    "quote_text": "Correct score: 1-3 at 12/1 (13.00)",
    "fragment_from": 5207,
    "fragment_to": 5241,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/gil-vicente-vs-porto-prediction-24-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "ed1358477f94e724b9e897d03e8c99ec9cae2a472ae5654cdb71888fd417bedf",
     "material_removed": false
    },
    "published_at": "2026-10-23T04:54:02.000Z",
    "detected_at": "2026-10-23T05:04:17.221Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-63275223a897",
     "display_name": "Gil Vicente — FC Porto",
     "competition_name": "Primeira Liga",
     "starts_at": "2026-10-24T19:30:00.000Z",
     "url": "/football/matches/gil-vicente-vs-fc-porto-2026-10-24/",
     "scoreline": "0-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Gil Vicente 1-3 FC Porto",
    "odds_set": {
     "by_author": "13",
     "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-23T04:54:02.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-23T04:54:02.000Z",
     "detected_at": "2026-10-23T05:04:17.221Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Gil Vicente 1-3 FC Porto",
     "author_odds": "13",
     "market_key": "correct_score_market",
     "choice_key": "1-3",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Gil Vicente 1-3 FC Porto at 13"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Gil Vicente 0-1 FC Porto."
    },
    "settlements": [
     {
      "operation_id": "77335bae99b2583393dca4d8bda7e1f7902970bac6def8eb9fae4eb6da241bd6",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Correct score",
      "choice": "Gil Vicente 1-3 FC Porto",
      "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": "790070fbaaee449b82d04a1183c78f05c59c4c0312ff18034d4b683a8631a40a",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Correct score",
      "choice": "Gil Vicente 1-3 FC Porto",
      "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": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/gil-vicente-vs-porto-prediction-24-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Gil Vicente 1-3 FC Porto"
   }
  },
  {
   "record_id": "n-c3d4fd0ad62032033c5fe95c",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-c3d4fd0ad62032033c5fe95c",
   "match": "Gil Vicente v FC Porto",
   "match_url": "/football/matches/gil-vicente-vs-fc-porto-2026-10-24/",
   "kickoff": "2026-10-24T19:30:00.000Z",
   "competition": "Primeira Liga",
   "lead_hours": 38.4,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes at 2",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": "2",
   "settled_price": "2.0250",
   "published_at": "2026-10-23T04:54:02.000Z",
   "recorded_at": "2026-10-23T05:04:17.221Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "no",
    "price": "1.6950",
    "result": "Won",
    "points_hundredths": 6950,
    "picked_favourite": false
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-c3d4fd0ad62032033c5fe95c",
    "quote_text": "BTTS – Yes at 1/1 (2.00)",
    "fragment_from": 4923,
    "fragment_to": 4947,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/gil-vicente-vs-porto-prediction-24-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "ed1358477f94e724b9e897d03e8c99ec9cae2a472ae5654cdb71888fd417bedf",
     "material_removed": false
    },
    "published_at": "2026-10-23T04:54:02.000Z",
    "detected_at": "2026-10-23T05:04:17.221Z",
    "executed_at": "2026-10-23T06:46:00.522Z",
    "statement_class": "priced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-63275223a897",
     "display_name": "Gil Vicente — FC Porto",
     "competition_name": "Primeira Liga",
     "starts_at": "2026-10-24T19:30:00.000Z",
     "url": "/football/matches/gil-vicente-vs-fc-porto-2026-10-24/",
     "scoreline": "0-1",
     "condition": "finished"
    },
    "market_label": "Both teams to score",
    "outcome_label": "yes",
    "odds_set": {
     "by_author": "2",
     "our_snapshot": "2.0250",
     "our_snapshot_at": "2026-10-23T05:02:08.169Z",
     "our_snapshot_source": "market snapshot",
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "loss",
    "simulation_change_hundredths": -10000,
    "bankroll_after_hundredths": null,
    "executed_by": "ours",
    "series_label": "At an independent odds snapshot",
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-23T04:54:02.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-23T04:54:02.000Z",
     "detected_at": "2026-10-23T05:04:17.221Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Both teams to score",
     "choice": "yes",
     "author_odds": "2",
     "market_key": "both_teams_score",
     "choice_key": "yes",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Both teams to score: yes at 2"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was Gil Vicente 0-1 FC Porto."
    },
    "settlements": [
     {
      "operation_id": "e768cc8ae2c197e00b5362a0d12fc8e922fcad59466d77eda5b6a7166f003904",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Both teams to score",
      "choice": "yes",
      "decimal_odds": "2",
      "odds_role": "author_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-23T06:45:59.060Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "73887163075477526f6fff84318ef2465972ce12ef3e0f66f9f6e671955f1e6d",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Both teams to score",
      "choice": "yes",
      "decimal_odds": "2.0250",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-23T06:46:00.522Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/gil-vicente-vs-porto-prediction-24-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "yes (Both teams to score)"
   }
  },
  {
   "record_id": "n-2e1622fe556a39c6e01d1e36",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "We say: Estoril Praia 2-2 Moreirense",
   "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-23T20:33:41.000Z",
   "recorded_at": "2026-10-23T21:10:06.262Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": "Sports Mole",
   "correction": null
  },
  {
   "record_id": "n-2e7c6cea8514ad6d8eed23a1",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-2e7c6cea8514ad6d8eed23a1",
   "match": "PSV Eindhoven v Feyenoord",
   "match_url": "/football/matches/psv-eindhoven-vs-feyenoord-2026-10-25/",
   "kickoff": "2026-10-25T13:30:00.000Z",
   "competition": "Eredivisie",
   "lead_hours": 33.1,
   "market_code": "double_chance",
   "author_said": "Double chance: draw or Feyenoord at 1.8",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 7634,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": "1.8",
   "settled_price": "1.7634",
   "published_at": "2026-10-24T04:11:35.000Z",
   "recorded_at": "2026-10-24T04:24:26.319Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-2e7c6cea8514ad6d8eed23a1",
    "quote_text": "Double Chance – Draw or Feyenoord at 4/5 (1.80) is the low-risk value bet for us",
    "fragment_from": 5457,
    "fragment_to": 5537,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/psv-eindhoven-vs-feyenoord-prediction-25-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "a9f1aabccfee05dc62aa924f094fe8f5e7f6ebb613a30f31caf2f8a7b326ccde",
     "material_removed": false
    },
    "published_at": "2026-10-24T04:11:35.000Z",
    "detected_at": "2026-10-24T04:24:26.319Z",
    "executed_at": "2026-10-25T13:13:15.125Z",
    "statement_class": "priced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-63c4f1691fb8",
     "display_name": "PSV Eindhoven — Feyenoord",
     "competition_name": "Eredivisie",
     "starts_at": "2026-10-25T13:30:00.000Z",
     "url": "/football/matches/psv-eindhoven-vs-feyenoord-2026-10-25/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Double chance",
    "outcome_label": "draw or Feyenoord",
    "odds_set": {
     "by_author": "1.8",
     "our_snapshot": "1.7634",
     "our_snapshot_at": "2026-10-24T04:20:46.746Z",
     "our_snapshot_source": "market snapshot",
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "win",
    "simulation_change_hundredths": 7634,
    "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-24T04:11:35.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-24T04:11:35.000Z",
     "detected_at": "2026-10-24T04:24:26.319Z",
     "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": "Double chance",
     "choice": "draw or Feyenoord",
     "author_odds": "1.8",
     "market_key": "double_chance",
     "choice_key": "X2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Double chance: draw or Feyenoord at 1.8"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was PSV Eindhoven 1-1 Feyenoord."
    },
    "settlements": [
     {
      "operation_id": "2a43cfd89004782d1c2ddeb277c0389d58282ea4612f49f53622a6e0eb37b5b6",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Double chance",
      "choice": "draw or Feyenoord",
      "decimal_odds": "1.8",
      "odds_role": "author_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 8000,
      "executed_at": "2026-10-25T13:13:10.688Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "9201eaa87674d651c32d1c7800b064c35a1f2dc8fc6da8c2653373e6d5b52f36",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Double chance",
      "choice": "draw or Feyenoord",
      "decimal_odds": "1.7634",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 7634,
      "executed_at": "2026-10-25T13:13:15.125Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/psv-eindhoven-vs-feyenoord-prediction-25-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "draw or Feyenoord"
   }
  },
  {
   "record_id": "n-3a24e913c4e83a7d532028f0",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-3a24e913c4e83a7d532028f0",
   "match": "PSV Eindhoven v Feyenoord",
   "match_url": "/football/matches/psv-eindhoven-vs-feyenoord-2026-10-25/",
   "kickoff": "2026-10-25T13:30:00.000Z",
   "competition": "Eredivisie",
   "lead_hours": 33.1,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes at 1.3",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 2700,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": "1.3",
   "settled_price": "1.2700",
   "published_at": "2026-10-24T04:11:35.000Z",
   "recorded_at": "2026-10-24T04:24:26.319Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-3a24e913c4e83a7d532028f0",
    "quote_text": "making BTTS – Yes at 3/10 (1.30) another favourable option",
    "fragment_from": 5391,
    "fragment_to": 5449,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/psv-eindhoven-vs-feyenoord-prediction-25-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "a9f1aabccfee05dc62aa924f094fe8f5e7f6ebb613a30f31caf2f8a7b326ccde",
     "material_removed": false
    },
    "published_at": "2026-10-24T04:11:35.000Z",
    "detected_at": "2026-10-24T04:24:26.319Z",
    "executed_at": "2026-11-07T12:03:44.010Z",
    "statement_class": "priced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-63c4f1691fb8",
     "display_name": "PSV Eindhoven — Feyenoord",
     "competition_name": "Eredivisie",
     "starts_at": "2026-10-25T13:30:00.000Z",
     "url": "/football/matches/psv-eindhoven-vs-feyenoord-2026-10-25/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Both teams to score",
    "outcome_label": "yes",
    "odds_set": {
     "by_author": "1.3",
     "our_snapshot": "1.2700",
     "our_snapshot_at": "2026-10-24T04:22:57.490Z",
     "our_snapshot_source": "market snapshot",
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "win",
    "simulation_change_hundredths": 2700,
    "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-24T04:11:35.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-24T04:11:35.000Z",
     "detected_at": "2026-10-24T04:24:26.319Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Both teams to score",
     "choice": "yes",
     "author_odds": "1.3",
     "market_key": "both_teams_score",
     "choice_key": "yes",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Both teams to score: yes at 1.3"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was PSV Eindhoven 1-1 Feyenoord."
    },
    "settlements": [
     {
      "operation_id": "236407024e9db3a61f8980935208ec3c2a317c273ea8f598b00be32c8b7e8542",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Both teams to score",
      "choice": "yes",
      "decimal_odds": "1.3",
      "odds_role": "author_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 3000,
      "executed_at": "2026-11-07T12:03:42.928Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "39b761e3bc25683ffb76ecb3a0cab0ad1667fcb2e6031d867ae1c8f0410c3ace",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Both teams to score",
      "choice": "yes",
      "decimal_odds": "1.2700",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 2700,
      "executed_at": "2026-11-07T12:03:44.010Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/psv-eindhoven-vs-feyenoord-prediction-25-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "yes (Both teams to score)"
   }
  },
  {
   "record_id": "n-b1c4e028c4359d9a709c271b",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-b1c4e028c4359d9a709c271b",
   "match": "PSV Eindhoven v Feyenoord",
   "match_url": "/football/matches/psv-eindhoven-vs-feyenoord-2026-10-25/",
   "kickoff": "2026-10-25T13:30:00.000Z",
   "competition": "Eredivisie",
   "lead_hours": 33.1,
   "market_code": "total",
   "author_said": "Over/Under 2.5 goals: over 2.5 at 1.3",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-1",
   "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-24T04:11:35.000Z",
   "recorded_at": "2026-10-24T04:24:26.319Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-b1c4e028c4359d9a709c271b",
    "quote_text": "we predict over 2.5 goals at 3/10 (1.30)",
    "fragment_from": 5277,
    "fragment_to": 5317,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/psv-eindhoven-vs-feyenoord-prediction-25-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "a9f1aabccfee05dc62aa924f094fe8f5e7f6ebb613a30f31caf2f8a7b326ccde",
     "material_removed": false
    },
    "published_at": "2026-10-24T04:11:35.000Z",
    "detected_at": "2026-10-24T04:24:26.319Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-63c4f1691fb8",
     "display_name": "PSV Eindhoven — Feyenoord",
     "competition_name": "Eredivisie",
     "starts_at": "2026-10-25T13:30:00.000Z",
     "url": "/football/matches/psv-eindhoven-vs-feyenoord-2026-10-25/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Over/Under 2.5 goals",
    "outcome_label": "over 2.5",
    "odds_set": {
     "by_author": "1.3",
     "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-24T04:11:35.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-24T04:11:35.000Z",
     "detected_at": "2026-10-24T04:24:26.319Z",
     "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": "Over/Under 2.5 goals",
     "choice": "over 2.5",
     "author_odds": "1.3",
     "market_key": "total",
     "choice_key": "over",
     "period": "match",
     "line": "2.5",
     "subject": "goals_total",
     "in_words": "Over/Under 2.5 goals: over 2.5 at 1.3"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was PSV Eindhoven 1-1 Feyenoord."
    },
    "settlements": [
     {
      "operation_id": "508ee5b372bb50b557d015cb3212c9d9f1ebd051a0e99b5e1782cd08c4f52450",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Over/Under 2.5 goals",
      "choice": "over 2.5",
      "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": "5d9ee5513c75d7a70f6c38853b0082baaf016331493e6ecf93d10e32320bf814",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Over/Under 2.5 goals",
      "choice": "over 2.5",
      "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": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/psv-eindhoven-vs-feyenoord-prediction-25-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "over 2.5 (Over/Under 2.5 goals)"
   }
  },
  {
   "record_id": "n-ccd7741d63be9da9fe860a91",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-ccd7741d63be9da9fe860a91",
   "match": "PSV Eindhoven v Feyenoord",
   "match_url": "/football/matches/psv-eindhoven-vs-feyenoord-2026-10-25/",
   "kickoff": "2026-10-25T13:30:00.000Z",
   "competition": "Eredivisie",
   "lead_hours": 33.1,
   "market_code": "correct_score_market",
   "author_said": "Correct score: PSV Eindhoven 2-2 Feyenoord",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-1",
   "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-24T04:11:35.000Z",
   "recorded_at": "2026-10-24T04:24:26.319Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-ccd7741d63be9da9fe860a91",
    "quote_text": "Whispers’ prediction: PSV Eindhoven 2-2 Feyenoord",
    "fragment_from": 5059,
    "fragment_to": 5108,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/psv-eindhoven-vs-feyenoord-prediction-25-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "a9f1aabccfee05dc62aa924f094fe8f5e7f6ebb613a30f31caf2f8a7b326ccde",
     "material_removed": false
    },
    "published_at": "2026-10-24T04:11:35.000Z",
    "detected_at": "2026-10-24T04:24:26.319Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-63c4f1691fb8",
     "display_name": "PSV Eindhoven — Feyenoord",
     "competition_name": "Eredivisie",
     "starts_at": "2026-10-25T13:30:00.000Z",
     "url": "/football/matches/psv-eindhoven-vs-feyenoord-2026-10-25/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "PSV Eindhoven 2-2 Feyenoord",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-24T04:11:35.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-24T04:11:35.000Z",
     "detected_at": "2026-10-24T04:24:26.319Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "PSV Eindhoven 2-2 Feyenoord",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: PSV Eindhoven 2-2 Feyenoord"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was PSV Eindhoven 1-1 Feyenoord."
    },
    "settlements": [
     {
      "operation_id": "df601802a40a72dccc50a5031a48846578b88ee4a8a7e6cf6415bcd52fa91cbf",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Correct score",
      "choice": "PSV Eindhoven 2-2 Feyenoord",
      "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": "2f1536dcc231ac243c35aa8f814cad47af556f52bc8dd611b548987c0258b49e",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/psv-eindhoven-vs-feyenoord-prediction-25-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "PSV Eindhoven 2-2 Feyenoord"
   }
  },
  {
   "record_id": "n-0cf3430fcca3bfbab3d61007",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-0cf3430fcca3bfbab3d61007",
   "match": "Sparta Rotterdam v AFC Ajax",
   "match_url": "/football/matches/sparta-rotterdam-vs-afc-ajax-2026-10-25/",
   "kickoff": "2026-10-25T15:45:00.000Z",
   "competition": "Eredivisie",
   "lead_hours": 34.0,
   "market_code": "1x2",
   "author_said": "1X2, match result: AFC Ajax at 1.44",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "1-2",
   "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-24T05:34:37.000Z",
   "recorded_at": "2026-10-24T05:44:17.473Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-0cf3430fcca3bfbab3d61007",
    "quote_text": "which is currently priced at 11/25 (1.44) by the bookmakers.",
    "fragment_from": 4299,
    "fragment_to": 4359,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/sparta-rotterdam-vs-ajax-prediction-25-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "ed343dd35ee41d02d53dfc0b7b373f7322403a06c4fb2acdb3dfb9af5849b9c2",
     "material_removed": false
    },
    "published_at": "2026-10-24T05:34:37.000Z",
    "detected_at": "2026-10-24T05:44:17.473Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "recognised",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-2f7a600f8a8b",
     "display_name": "Sparta Rotterdam — AFC Ajax",
     "competition_name": "Eredivisie",
     "starts_at": "2026-10-25T15:45:00.000Z",
     "url": "/football/matches/sparta-rotterdam-vs-afc-ajax-2026-10-25/",
     "scoreline": "1-2",
     "condition": "finished"
    },
    "market_label": "1X2, match result",
    "outcome_label": "AFC Ajax",
    "odds_set": {
     "by_author": "1.44",
     "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-24T05:34:37.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-24T05:34:37.000Z",
     "detected_at": "2026-10-24T05:44:17.473Z",
     "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": "AFC Ajax",
     "author_odds": "1.44",
     "market_key": "1x2",
     "choice_key": "2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: AFC Ajax at 1.44"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Sparta Rotterdam 1-2 AFC Ajax."
    },
    "settlements": [
     {
      "operation_id": "f8f1d9b0636693a949bb3019b83f56a1b532fe87d44cf3b68ff7f9dec9a4a88a",
      "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": "AFC Ajax",
      "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": "748da6cecda3e55fb99cb121e012ff497d98a5242d81ba278226fd9e24f18e3b",
      "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": "AFC Ajax",
      "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": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/sparta-rotterdam-vs-ajax-prediction-25-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "AFC Ajax to win"
   }
  },
  {
   "record_id": "n-2f9d005ce4feeffd458f9037",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-2f9d005ce4feeffd458f9037",
   "match": "Sparta Rotterdam v AFC Ajax",
   "match_url": "/football/matches/sparta-rotterdam-vs-afc-ajax-2026-10-25/",
   "kickoff": "2026-10-25T15:45:00.000Z",
   "competition": "Eredivisie",
   "lead_hours": 34.0,
   "market_code": "both_teams_score",
   "author_said": "Both teams to score: yes at 1.5",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-2",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 4400,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": "1.5",
   "settled_price": "1.4400",
   "published_at": "2026-10-24T05:34:37.000Z",
   "recorded_at": "2026-10-24T05:44:17.473Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-2f9d005ce4feeffd458f9037",
    "quote_text": "We also fancy BTTS – Yes at 1/2 (1.50)",
    "fragment_from": 4576,
    "fragment_to": 4614,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/sparta-rotterdam-vs-ajax-prediction-25-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "ed343dd35ee41d02d53dfc0b7b373f7322403a06c4fb2acdb3dfb9af5849b9c2",
     "material_removed": false
    },
    "published_at": "2026-10-24T05:34:37.000Z",
    "detected_at": "2026-10-24T05:44:17.473Z",
    "executed_at": "2026-11-07T12:03:11.756Z",
    "statement_class": "priced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-2f7a600f8a8b",
     "display_name": "Sparta Rotterdam — AFC Ajax",
     "competition_name": "Eredivisie",
     "starts_at": "2026-10-25T15:45:00.000Z",
     "url": "/football/matches/sparta-rotterdam-vs-afc-ajax-2026-10-25/",
     "scoreline": "1-2",
     "condition": "finished"
    },
    "market_label": "Both teams to score",
    "outcome_label": "yes",
    "odds_set": {
     "by_author": "1.5",
     "our_snapshot": "1.4400",
     "our_snapshot_at": "2026-10-24T05:43:56.156Z",
     "our_snapshot_source": "market snapshot",
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "win",
    "simulation_change_hundredths": 4400,
    "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-24T05:34:37.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-24T05:34:37.000Z",
     "detected_at": "2026-10-24T05:44:17.473Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Both teams to score",
     "choice": "yes",
     "author_odds": "1.5",
     "market_key": "both_teams_score",
     "choice_key": "yes",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Both teams to score: yes at 1.5"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Sparta Rotterdam 1-2 AFC Ajax."
    },
    "settlements": [
     {
      "operation_id": "1a012cf99adade1887e0b014233ab84ef0659649ce671ad32818a3e98b505ff6",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Both teams to score",
      "choice": "yes",
      "decimal_odds": "1.5",
      "odds_role": "author_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 5000,
      "executed_at": "2026-11-07T12:03:10.188Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "af3489db601baf9b0d4f0513eca35bffa54b0cd349273eaa2370eddbb5c2d494",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Both teams to score",
      "choice": "yes",
      "decimal_odds": "1.4400",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 4400,
      "executed_at": "2026-11-07T12:03:11.756Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/sparta-rotterdam-vs-ajax-prediction-25-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "yes (Both teams to score)"
   }
  },
  {
   "record_id": "n-8394ba5253c0286cfa6e1e95",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-8394ba5253c0286cfa6e1e95",
   "match": "Sparta Rotterdam v AFC Ajax",
   "match_url": "/football/matches/sparta-rotterdam-vs-afc-ajax-2026-10-25/",
   "kickoff": "2026-10-25T15:45:00.000Z",
   "competition": "Eredivisie",
   "lead_hours": 34.0,
   "market_code": "total",
   "author_said": "Over/Under 2.5 goals: over 2.5 at 1.36",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "1-2",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 3400,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": "1.36",
   "settled_price": "1.3400",
   "published_at": "2026-10-24T05:34:37.000Z",
   "recorded_at": "2026-10-24T05:44:17.473Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-8394ba5253c0286cfa6e1e95",
    "quote_text": "making over 2.5 goals at 9/25 (1.36) a favourable punt",
    "fragment_from": 4454,
    "fragment_to": 4508,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/sparta-rotterdam-vs-ajax-prediction-25-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "ed343dd35ee41d02d53dfc0b7b373f7322403a06c4fb2acdb3dfb9af5849b9c2",
     "material_removed": false
    },
    "published_at": "2026-10-24T05:34:37.000Z",
    "detected_at": "2026-10-24T05:44:17.473Z",
    "executed_at": "2026-11-07T12:03:10.144Z",
    "statement_class": "priced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-2f7a600f8a8b",
     "display_name": "Sparta Rotterdam — AFC Ajax",
     "competition_name": "Eredivisie",
     "starts_at": "2026-10-25T15:45:00.000Z",
     "url": "/football/matches/sparta-rotterdam-vs-afc-ajax-2026-10-25/",
     "scoreline": "1-2",
     "condition": "finished"
    },
    "market_label": "Over/Under 2.5 goals",
    "outcome_label": "over 2.5",
    "odds_set": {
     "by_author": "1.36",
     "our_snapshot": "1.3400",
     "our_snapshot_at": "2026-10-24T05:43:56.156Z",
     "our_snapshot_source": "market snapshot",
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "win",
    "simulation_change_hundredths": 3400,
    "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-24T05:34:37.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-24T05:34:37.000Z",
     "detected_at": "2026-10-24T05:44:17.473Z",
     "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": "Over/Under 2.5 goals",
     "choice": "over 2.5",
     "author_odds": "1.36",
     "market_key": "total",
     "choice_key": "over",
     "period": "match",
     "line": "2.5",
     "subject": "goals_total",
     "in_words": "Over/Under 2.5 goals: over 2.5 at 1.36"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "1-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Sparta Rotterdam 1-2 AFC Ajax."
    },
    "settlements": [
     {
      "operation_id": "85ccfdab9e6fae28f0261a4bd0e097ae19df929bdd4d8d5872678e5aa8ae5e37",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Over/Under 2.5 goals",
      "choice": "over 2.5",
      "decimal_odds": "1.36",
      "odds_role": "author_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 3600,
      "executed_at": "2026-11-07T12:03:08.511Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "4b22d4da706daa2cd059499199c0942a80e8e9d6ca5dea41a98442098518251d",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Over/Under 2.5 goals",
      "choice": "over 2.5",
      "decimal_odds": "1.3400",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 3400,
      "executed_at": "2026-11-07T12:03:10.144Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/sparta-rotterdam-vs-ajax-prediction-25-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "over 2.5 (Over/Under 2.5 goals)"
   }
  },
  {
   "record_id": "n-b4d006ba17e92ba7a12b44f9",
   "url": null,
   "match": null,
   "match_url": null,
   "kickoff": null,
   "competition": null,
   "lead_hours": null,
   "market_code": null,
   "author_said": null,
   "quote": "while HT/FT – 2/2 at 21/20 (2.05) is our third pick of the game.",
   "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-24T05:34:37.000Z",
   "recorded_at": "2026-10-24T05:44:17.473Z",
   "origin": "Date as stated by the source; no match is linked to this statement",
   "record_part": "unlinked",
   "record_part_words": "Without a match page",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null
  },
  {
   "record_id": "n-c52b689357755df33e1fec3a",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-c52b689357755df33e1fec3a",
   "match": "Sparta Rotterdam v AFC Ajax",
   "match_url": "/football/matches/sparta-rotterdam-vs-afc-ajax-2026-10-25/",
   "kickoff": "2026-10-25T15:45:00.000Z",
   "competition": "Eredivisie",
   "lead_hours": 34.0,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Sparta Rotterdam 1-3 AFC Ajax at 11",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-2",
   "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-24T05:34:37.000Z",
   "recorded_at": "2026-10-24T05:44:17.473Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-c52b689357755df33e1fec3a",
    "quote_text": "correct score market has a correct score of 1-3 at 10/1 (11.00).",
    "fragment_from": 4695,
    "fragment_to": 4759,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/sparta-rotterdam-vs-ajax-prediction-25-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "ed343dd35ee41d02d53dfc0b7b373f7322403a06c4fb2acdb3dfb9af5849b9c2",
     "material_removed": false
    },
    "published_at": "2026-10-24T05:34:37.000Z",
    "detected_at": "2026-10-24T05:44:17.473Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-2f7a600f8a8b",
     "display_name": "Sparta Rotterdam — AFC Ajax",
     "competition_name": "Eredivisie",
     "starts_at": "2026-10-25T15:45:00.000Z",
     "url": "/football/matches/sparta-rotterdam-vs-afc-ajax-2026-10-25/",
     "scoreline": "1-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Sparta Rotterdam 1-3 AFC Ajax",
    "odds_set": {
     "by_author": "11",
     "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-24T05:34:37.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-24T05:34:37.000Z",
     "detected_at": "2026-10-24T05:44:17.473Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Sparta Rotterdam 1-3 AFC Ajax",
     "author_odds": "11",
     "market_key": "correct_score_market",
     "choice_key": "1-3",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Sparta Rotterdam 1-3 AFC Ajax at 11"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Sparta Rotterdam 1-2 AFC Ajax."
    },
    "settlements": [
     {
      "operation_id": "fff24c9592c3f8e6fae096d45f5dc822ab7f9c5f9e0908f6b5c628bcc28fa12d",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Correct score",
      "choice": "Sparta Rotterdam 1-3 AFC Ajax",
      "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": "91f5fe194f6d29e5711babcf39752783697b2c37e0de04264d713597ce17aec5",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "AFC Ajax",
      "decimal_odds": null,
      "odds_role": null,
      "stake_hundredths": null,
      "status": "skipped",
      "status_text": "Not executed: ",
      "result": null,
      "result_words": null,
      "change_hundredths": null,
      "executed_at": null,
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/sparta-rotterdam-vs-ajax-prediction-25-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Sparta Rotterdam 1-3 AFC Ajax"
   }
  },
  {
   "record_id": "n-16445903202c880718196b9f",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-16445903202c880718196b9f",
   "match": "Casa Pia v Sporting CP",
   "match_url": "/football/matches/casa-pia-vs-sporting-cp-2026-10-30/",
   "kickoff": "2026-10-30T20:15:00.000Z",
   "competition": "Primeira Liga",
   "lead_hours": 38.4,
   "market_code": "half_time_full_time",
   "author_said": "Half-time/full-time: Sporting CP at half-time, Sporting CP at full-time at 1.8",
   "quote": null,
   "group": "settled",
   "outcome": "Won",
   "claim_outcome": "Won",
   "final_score": "0-2",
   "reason": null,
   "reason_code": null,
   "points_hundredths": 8000,
   "series_code": "author_price",
   "series_short": "author's odds",
   "author_price": "1.8",
   "settled_price": "1.8",
   "published_at": "2026-10-29T05:46:24.000Z",
   "recorded_at": "2026-10-29T05:51:43.201Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-16445903202c880718196b9f",
    "quote_text": "Sporting CP have led at half time in their last six games against Casa Pia, making HT/FT – 2/2 at 4/5 (1.80) a favourable punt",
    "fragment_from": 5250,
    "fragment_to": 5376,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/casa-pia-vs-sporting-cp-prediction-30-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "9bb0c1599b93f901679e36624c41b45f0a52aaf22227b74d461cf1122bdf9dcb",
     "material_removed": false
    },
    "published_at": "2026-10-29T05:46:24.000Z",
    "detected_at": "2026-10-29T05:51:43.201Z",
    "executed_at": "2026-11-07T10:39:03.809Z",
    "statement_class": "priced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-901bd676fe3a",
     "display_name": "Casa Pia — Sporting CP",
     "competition_name": "Primeira Liga",
     "starts_at": "2026-10-30T20:15:00.000Z",
     "url": "/football/matches/casa-pia-vs-sporting-cp-2026-10-30/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "Half-time/full-time",
    "outcome_label": "Sporting CP at half-time, Sporting CP at full-time",
    "odds_set": {
     "by_author": "1.8",
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "win",
    "simulation_change_hundredths": 8000,
    "bankroll_after_hundredths": null,
    "executed_by": "ours",
    "series_label": "At the author's stated price",
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-29T05:46:24.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-29T05:46:24.000Z",
     "detected_at": "2026-10-29T05:51:43.201Z",
     "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": "Half-time/full-time",
     "choice": "Sporting CP at half-time, Sporting CP at full-time",
     "author_odds": "1.8",
     "market_key": "half_time_full_time",
     "choice_key": "2/2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Half-time/full-time: Sporting CP at half-time, Sporting CP at full-time at 1.8"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Casa Pia 0-2 Sporting CP."
    },
    "settlements": [
     {
      "operation_id": "8df51988cc917bd19efd22073934c17410dfc31ce9b45a97c3946a0497d95ab0",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Half-time/full-time",
      "choice": "Sporting CP at half-time, Sporting CP at full-time",
      "decimal_odds": "1.8",
      "odds_role": "author_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 8000,
      "executed_at": "2026-11-07T10:39:03.809Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "e104ba40e24c73edbc13c675dddfbb04069371e7f2134c2af16fde11b6a0d85a",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Half-time/full-time",
      "choice": "Sporting CP at half-time, Sporting CP at full-time",
      "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": "settled_pick",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/casa-pia-vs-sporting-cp-prediction-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Sporting CP at half-time, Sporting CP at full-time"
   }
  },
  {
   "record_id": "n-40a113be7cfccb2b907680ab",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-40a113be7cfccb2b907680ab",
   "match": "Casa Pia v Sporting CP",
   "match_url": "/football/matches/casa-pia-vs-sporting-cp-2026-10-30/",
   "kickoff": "2026-10-30T20:15:00.000Z",
   "competition": "Primeira Liga",
   "lead_hours": 38.4,
   "market_code": "total",
   "author_said": "Over/Under 2.5 goals: over 2.5 at 1.57",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "0-2",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": "1.57",
   "settled_price": "1.5600",
   "published_at": "2026-10-29T05:46:24.000Z",
   "recorded_at": "2026-10-29T05:51:43.201Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "over",
    "price": "1.5600",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-40a113be7cfccb2b907680ab",
    "quote_text": "over 2.5 goals at 57/100 (1.57) is our third pick of the game.",
    "fragment_from": 5384,
    "fragment_to": 5446,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/casa-pia-vs-sporting-cp-prediction-30-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "9bb0c1599b93f901679e36624c41b45f0a52aaf22227b74d461cf1122bdf9dcb",
     "material_removed": false
    },
    "published_at": "2026-10-29T05:46:24.000Z",
    "detected_at": "2026-10-29T05:51:43.201Z",
    "executed_at": "2026-10-30T13:06:49.930Z",
    "statement_class": "priced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-901bd676fe3a",
     "display_name": "Casa Pia — Sporting CP",
     "competition_name": "Primeira Liga",
     "starts_at": "2026-10-30T20:15:00.000Z",
     "url": "/football/matches/casa-pia-vs-sporting-cp-2026-10-30/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "Over/Under 2.5 goals",
    "outcome_label": "over 2.5",
    "odds_set": {
     "by_author": "1.57",
     "our_snapshot": "1.5600",
     "our_snapshot_at": "2026-10-29T05:48:47.160Z",
     "our_snapshot_source": "market snapshot",
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "loss",
    "simulation_change_hundredths": -10000,
    "bankroll_after_hundredths": null,
    "executed_by": "ours",
    "series_label": "At an independent odds snapshot",
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-29T05:46:24.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-29T05:46:24.000Z",
     "detected_at": "2026-10-29T05:51:43.201Z",
     "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": "Over/Under 2.5 goals",
     "choice": "over 2.5",
     "author_odds": "1.57",
     "market_key": "total",
     "choice_key": "over",
     "period": "match",
     "line": "2.5",
     "subject": "goals_total",
     "in_words": "Over/Under 2.5 goals: over 2.5 at 1.57"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was Casa Pia 0-2 Sporting CP."
    },
    "settlements": [
     {
      "operation_id": "a9b7892b21ae5d1910a4d3b9c5c01abb22fba0986083463b391987b82f78f4da",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Over/Under 2.5 goals",
      "choice": "over 2.5",
      "decimal_odds": "1.57",
      "odds_role": "author_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-30T13:06:48.534Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "bbac8faa98e257daa6ac193366d61f5b8dadcfb1d23688ae63d127aa35bc50e7",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Over/Under 2.5 goals",
      "choice": "over 2.5",
      "decimal_odds": "1.5600",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-30T13:06:49.930Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/casa-pia-vs-sporting-cp-prediction-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "over 2.5 (Over/Under 2.5 goals)"
   }
  },
  {
   "record_id": "n-9f6bd1667ae0d48b6acf037c",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-9f6bd1667ae0d48b6acf037c",
   "match": "Casa Pia v Sporting CP",
   "match_url": "/football/matches/casa-pia-vs-sporting-cp-2026-10-30/",
   "kickoff": "2026-10-30T20:15:00.000Z",
   "competition": "Primeira Liga",
   "lead_hours": 38.4,
   "market_code": "both_teams_score_and_result",
   "author_said": "Match result and both teams to score: Sporting CP win, both teams to score: yes at 2.87",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "0-2",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": "2.87",
   "settled_price": "2.8350",
   "published_at": "2026-10-29T05:46:24.000Z",
   "recorded_at": "2026-10-29T05:51:43.201Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": true,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-9f6bd1667ae0d48b6acf037c",
    "quote_text": "With both sides scoring in seven of the Leoes’ last eight games, Sporting to win + BTTS – Yes at 187/100 (2.87) serves as the value bet for us",
    "fragment_from": 5448,
    "fragment_to": 5590,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/casa-pia-vs-sporting-cp-prediction-30-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "9bb0c1599b93f901679e36624c41b45f0a52aaf22227b74d461cf1122bdf9dcb",
     "material_removed": false
    },
    "published_at": "2026-10-29T05:46:24.000Z",
    "detected_at": "2026-10-29T05:51:43.201Z",
    "executed_at": "2026-10-30T13:06:50.727Z",
    "statement_class": "priced",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-901bd676fe3a",
     "display_name": "Casa Pia — Sporting CP",
     "competition_name": "Primeira Liga",
     "starts_at": "2026-10-30T20:15:00.000Z",
     "url": "/football/matches/casa-pia-vs-sporting-cp-2026-10-30/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "Match result and both teams to score",
    "outcome_label": "Sporting CP win, both teams to score: yes",
    "odds_set": {
     "by_author": "2.87",
     "our_snapshot": "2.8350",
     "our_snapshot_at": "2026-10-29T05:48:47.160Z",
     "our_snapshot_source": "market snapshot",
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": 10000,
    "result": "loss",
    "simulation_change_hundredths": -10000,
    "bankroll_after_hundredths": null,
    "executed_by": "ours",
    "series_label": "At an independent odds snapshot",
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": "2026-10-29T05:46:24.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-29T05:46:24.000Z",
     "detected_at": "2026-10-29T05:51:43.201Z",
     "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": "Sporting CP win, both teams to score: yes",
     "author_odds": "2.87",
     "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: Sporting CP win, both teams to score: yes at 2.87"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Lost: the final score was Casa Pia 0-2 Sporting CP."
    },
    "settlements": [
     {
      "operation_id": "3d05bb194d9651d50fe2a0dce8baf1fc52093400d4cae4fe5dc37356348b296e",
      "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": "Sporting CP win, both teams to score: yes",
      "decimal_odds": "2.87",
      "odds_role": "author_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-30T13:06:50.156Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "51383430dbcf6b192891a44238a24d2f39c63ad49d6dd966814fff4f0078bf95",
      "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": "Sporting CP win, both teams to score: yes",
      "decimal_odds": "2.8350",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-30T13:06:50.727Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/casa-pia-vs-sporting-cp-prediction-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Sporting CP win, both teams to score: yes"
   }
  },
  {
   "record_id": "n-a7d82a1c5bee58a794bd8602",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-a7d82a1c5bee58a794bd8602",
   "match": "Casa Pia v Sporting CP",
   "match_url": "/football/matches/casa-pia-vs-sporting-cp-2026-10-30/",
   "kickoff": "2026-10-30T20:15:00.000Z",
   "competition": "Primeira Liga",
   "lead_hours": 38.4,
   "market_code": "1x2",
   "author_said": "1X2, match result: Sporting CP at 1.24",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "final_score": "0-2",
   "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-29T05:46:24.000Z",
   "recorded_at": "2026-10-29T05:51:43.201Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-a7d82a1c5bee58a794bd8602",
    "quote_text": "visitors’ superior quality across the pitch should see them emerge victorious here, which is currently priced at 6/25 (1.24) by the bookies.",
    "fragment_from": 5108,
    "fragment_to": 5248,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/casa-pia-vs-sporting-cp-prediction-30-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "9bb0c1599b93f901679e36624c41b45f0a52aaf22227b74d461cf1122bdf9dcb",
     "material_removed": false
    },
    "published_at": "2026-10-29T05:46:24.000Z",
    "detected_at": "2026-10-29T05:51:43.201Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-901bd676fe3a",
     "display_name": "Casa Pia — Sporting CP",
     "competition_name": "Primeira Liga",
     "starts_at": "2026-10-30T20:15:00.000Z",
     "url": "/football/matches/casa-pia-vs-sporting-cp-2026-10-30/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "1X2, match result",
    "outcome_label": "Sporting CP",
    "odds_set": {
     "by_author": "1.24",
     "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-29T05:46:24.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-29T05:46:24.000Z",
     "detected_at": "2026-10-29T05:51:43.201Z",
     "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": "Sporting CP",
     "author_odds": "1.24",
     "market_key": "1x2",
     "choice_key": "2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "1X2, match result: Sporting CP at 1.24"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Won: the final score was Casa Pia 0-2 Sporting CP."
    },
    "settlements": [
     {
      "operation_id": "c7f3d15a890de7262b9e23355ad5dc42f87d4169326ad24640373ed1f0d4f8fb",
      "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": "Sporting CP",
      "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": "e240232b336d4fb1746752bb5b74a7c5ad306f17c4fde4f38fa5cd9e7f46d1eb",
      "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": "Sporting CP",
      "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": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/casa-pia-vs-sporting-cp-prediction-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Sporting CP to win"
   }
  },
  {
   "record_id": "n-be661865460df0b711b70546",
   "url": "/authors/joshua-ojele/picks/5/#pick-n-be661865460df0b711b70546",
   "match": "Casa Pia v Sporting CP",
   "match_url": "/football/matches/casa-pia-vs-sporting-cp-2026-10-30/",
   "kickoff": "2026-10-30T20:15:00.000Z",
   "competition": "Primeira Liga",
   "lead_hours": 38.4,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Casa Pia 1-3 Sporting CP at 11",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-2",
   "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-29T05:46:24.000Z",
   "recorded_at": "2026-10-29T05:51:43.201Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": null,
   "platform": null,
   "correction": null,
   "evidence": {
    "observation_id": "n-be661865460df0b711b70546",
    "quote_text": "correct score market has a correct score of 1-3 at 10/1 (11.00).",
    "fragment_from": 5602,
    "fragment_to": 5666,
    "quote_allowed": true,
    "source_info": {
     "medium": "rss",
     "url": "https://footballwhispers.com/blog/casa-pia-vs-sporting-cp-prediction-30-10-2026/",
     "display_name": null,
     "speaker": "Joshua Ojele",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "9bb0c1599b93f901679e36624c41b45f0a52aaf22227b74d461cf1122bdf9dcb",
     "material_removed": false
    },
    "published_at": "2026-10-29T05:46:24.000Z",
    "detected_at": "2026-10-29T05:51:43.201Z",
    "executed_at": null,
    "statement_class": "priced",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "not_checked",
    "event": {
     "event_id": "s-901bd676fe3a",
     "display_name": "Casa Pia — Sporting CP",
     "competition_name": "Primeira Liga",
     "starts_at": "2026-10-30T20:15:00.000Z",
     "url": "/football/matches/casa-pia-vs-sporting-cp-2026-10-30/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Casa Pia 1-3 Sporting CP",
    "odds_set": {
     "by_author": "11",
     "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-29T05:46:24.000Z",
     "fragment_basis": "element",
     "source_page_at": "2026-10-29T05:46:24.000Z",
     "detected_at": "2026-10-29T05:51:43.201Z",
     "archive_snapshot_at": null,
     "flags": [],
     "flag_words": null,
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Casa Pia 1-3 Sporting CP",
     "author_odds": "11",
     "market_key": "correct_score_market",
     "choice_key": "1-3",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Casa Pia 1-3 Sporting CP at 11"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Casa Pia 0-2 Sporting CP."
    },
    "settlements": [
     {
      "operation_id": "086dadf1c3c99348638d0b6b8f44687a8ea98e2ee8d265d320383d05ca66d669",
      "series_key": "author_price",
      "series_label": "At the author's stated price",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Correct score",
      "choice": "Casa Pia 1-3 Sporting CP",
      "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": "6e74e0044aa55a232366cb2ce1e7cdeab9427e5e17fc0f3cbbe0f97a00c8f596",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Correct score",
      "choice": "Casa Pia 1-3 Sporting CP",
      "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": "Joshua Ojele",
     "publisher": "Football Whispers",
     "forecaster": "Joshua Ojele",
     "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://footballwhispers.com/blog/casa-pia-vs-sporting-cp-prediction-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Casa Pia 1-3 Sporting CP"
   }
  }
 ],
 "pagination": {
  "per_page": 20,
  "total": 121,
  "pages": 8,
  "page_urls": [
   "/authors/joshua-ojele/",
   "/authors/joshua-ojele/picks/2/",
   "/authors/joshua-ojele/picks/3/",
   "/authors/joshua-ojele/picks/4/",
   "/authors/joshua-ojele/picks/5/",
   "/authors/joshua-ojele/picks/6/",
   "/authors/joshua-ojele/picks/7/",
   "/authors/joshua-ojele/picks/8/"
  ],
  "groups": {
   "settled": 30,
   "pending": 0,
   "excluded": 91
  },
  "continuation": "by_time",
  "page": 5,
  "first": 61,
  "last": 80,
  "author_url": "/authors/joshua-ojele/",
  "current": false
 },
 "entity_id": "history:/authors/joshua-ojele/picks/5/",
 "source_revision": 17
}
