{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "history",
 "url": "/sources/oddsekspert-no/picks/12/",
 "canonical": "/sources/oddsekspert-no/picks/12/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "OddsEkspert.no — football predictions, page 12 of 19",
 "description": "Predictions 201–220 of 358 by OddsEkspert.no, with outcomes in words and links to the evidence.",
 "first_paragraph": {
  "body": "Page 12 of 19 of the predictions by OddsEkspert.no recorded by Forecast Record: predictions 201–220 of 358 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": "358",
  "data": "2026-11-07",
  "source_info": "our own evidence archive",
  "brand": "Forecast Record"
 },
 "indexable": false,
 "noindex_reason": "technical",
 "indexing_threshold": {
  "settled_count": 0,
  "date_count": 0,
  "required_settled": 0,
  "required_dates": 0
 },
 "data_date": "2026-11-07T18:10:41.631Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-07T19:52:23.438Z",
 "content_hash": null,
 "meaning_hash": "74fd8dd023d380b9718633868a67e77b830394e227897c79e134158b9f4e1023",
 "dependency_group": "author:e-08e0df8122e7e5a9c4e55848",
 "release_id": "20261107-195223",
 "markup": [
  {
   "type_code": "WebPage",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "Organization",
   "allowed": true,
   "cause": null
  }
 ],
 "exports": [
  {
   "type_code": "json",
   "url": "/sources/oddsekspert-no/picks/12/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-08e0df8122e7e5a9c4e55848",
  "public_name": "OddsEkspert.no",
  "tracker_number": 2918,
  "status": "active",
  "inactive_since": null,
  "verified_creator": false,
  "observation_period": {
   "since": "2026-10-11",
   "until": "2026-11-07"
  },
  "platform_list": [
   {
    "medium": "website",
    "handle": null,
    "url": null,
    "link_confirmed": false,
    "show": true
   }
  ],
  "comment": null
 },
 "recorded_picks": [
  {
   "record_id": "n-9dad93d5d8c21276b5f14bc6",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-9dad93d5d8c21276b5f14bc6",
   "match": "Fiorentina v Atalanta",
   "match_url": "/football/matches/fiorentina-vs-atalanta-2026-10-29/",
   "kickoff": "2026-10-29T19:45:00.000Z",
   "competition": "Serie A",
   "lead_hours": 19.6,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Fiorentina 2-1 Atalanta",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-29T00:09:46.752Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "2.2300",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-9dad93d5d8c21276b5f14bc6",
    "quote_text": "Jeg spår en 2-1 seier til Fiorentina",
    "fragment_from": 1431,
    "fragment_to": 1467,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/fiorentina-atalanta-29-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "5ead818143322e3a62d42cc0fec206d46e9e9d49b841a463964629e9269ceb7d",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-29T00:09:46.752Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-cc3f55930382",
     "display_name": "Fiorentina — Atalanta",
     "competition_name": "Serie A",
     "starts_at": "2026-10-29T19:45:00.000Z",
     "url": "/football/matches/fiorentina-vs-atalanta-2026-10-29/",
     "scoreline": "2-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Fiorentina 2-1 Atalanta",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-29T19:45:00.000Z",
     "detected_at": "2026-10-29T00:09:46.752Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "Fiorentina 2-1 Atalanta",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Fiorentina 2-1 Atalanta"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Fiorentina 2-2 Atalanta."
    },
    "settlements": [
     {
      "operation_id": "7ecd9dde3140fd745669871a29771d12459c764e8d774c253562a3c459953e35",
      "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": "Fiorentina",
      "decimal_odds": "2.2300",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-29T13:43:04.549Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/fiorentina-atalanta-29-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Fiorentina 2-1 Atalanta"
   }
  },
  {
   "record_id": "n-ce75934997ffd2627752cb53",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-ce75934997ffd2627752cb53",
   "match": "Bodø/Glimt v Viking FK",
   "match_url": "/football/matches/bodo-glimt-vs-viking-fk-2026-10-30/",
   "kickoff": "2026-10-30T18:00:00.000Z",
   "competition": "Eliteserien",
   "lead_hours": 23.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Bodø/Glimt 2-2 Viking FK",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-2",
   "reason": "",
   "reason_code": "ambiguous",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-29T18:09:58.657Z",
   "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,
   "correction": null,
   "evidence": {
    "observation_id": "n-ce75934997ffd2627752cb53",
    "quote_text": "Jeg tror kampen vil ende med 2-2, et resultat som reflekterer begge lag sin styrke og evne til å score mål.",
    "fragment_from": 1676,
    "fragment_to": 1783,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/bodoe-glimt-viking-30-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "9133145a7f9a95c7d13741ad5370d9afa2c81f5a9a772847f74fbffc75d3a8fa",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-29T18:09:58.657Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "ambiguous",
    "event": {
     "event_id": "s-ceac8b9abbe3",
     "display_name": "Bodø/Glimt — Viking FK",
     "competition_name": "Eliteserien",
     "starts_at": "2026-10-30T18:00:00.000Z",
     "url": "/football/matches/bodo-glimt-vs-viking-fk-2026-10-30/",
     "scoreline": "3-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Bodø/Glimt 2-2 Viking FK",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-30T18:00:00.000Z",
     "detected_at": "2026-10-29T18:09:58.657Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "Bodø/Glimt 2-2 Viking FK",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Bodø/Glimt 2-2 Viking FK"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "3-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Bodø/Glimt 3-2 Viking FK."
    },
    "settlements": [
     {
      "operation_id": "cfa00067044fca5e3d15db602359ffd4dbb7e73572f9caa8f2e5aafd7f5fc3e2",
      "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": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/bodoe-glimt-viking-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Bodø/Glimt 2-2 Viking FK"
   }
  },
  {
   "record_id": "n-983b17baea3428835afce2eb",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-983b17baea3428835afce2eb",
   "match": "Nice v Stade Rennais",
   "match_url": "/football/matches/nice-vs-stade-rennais-2026-10-30/",
   "kickoff": "2026-10-30T18:00:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 22.2,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Nice 1-2 Stade Rennais",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "5-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-29T19:49:48.139Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "2",
    "price": "2.3800",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-983b17baea3428835afce2eb",
    "quote_text": "Jeg forutser en 2-1 seier til Rennes",
    "fragment_from": 1321,
    "fragment_to": 1357,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/nice-rennes-30-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "4c4da29c2ae13db95c3add61ca9048dbcb45c4a0b8a38a5cfa42e1f236494fdf",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-29T19:49:48.139Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-ec6fbfaa0001",
     "display_name": "Nice — Stade Rennais",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-30T18:00:00.000Z",
     "url": "/football/matches/nice-vs-stade-rennais-2026-10-30/",
     "scoreline": "5-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Nice 1-2 Stade Rennais",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-30T18:00:00.000Z",
     "detected_at": "2026-10-29T19:49:48.139Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Nice 1-2 Stade Rennais",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Nice 1-2 Stade Rennais"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "5-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Nice 5-2 Stade Rennais."
    },
    "settlements": [
     {
      "operation_id": "389103680e4b689d4fd4fa3e1d15c434dcec7fc9c92377bfbe39376c857c8ec6",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Stade Rennais",
      "decimal_odds": "2.3800",
      "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:38:44.825Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/nice-rennes-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Nice 1-2 Stade Rennais"
   }
  },
  {
   "record_id": "n-c0f705c0005e40b471dc0561",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-c0f705c0005e40b471dc0561",
   "match": "Le Havre v Paris Saint-Germain",
   "match_url": "/football/matches/le-havre-vs-paris-saint-germain-2026-10-30/",
   "kickoff": "2026-10-30T18:00:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 17.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Le Havre 0-2 Paris Saint-Germain",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-5",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-30T00:09:45.353Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "2",
    "price": "1.2479",
    "result": "Won",
    "points_hundredths": 2479,
    "picked_favourite": true
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-c0f705c0005e40b471dc0561",
    "quote_text": "Jeg spår en 2-0 seier til Paris Saint Germain, der de viser sin styrke i angrep og soliditet i forsvar.",
    "fragment_from": 1533,
    "fragment_to": 1636,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/le-havre-paris-saint-germain-30-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "11ce1162f69e16521ebdfdcd2dab8880f33a8eaab752ad1a89beb0563acb9112",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-30T00:09:45.353Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-093cac49e8f6",
     "display_name": "Le Havre — Paris Saint-Germain",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-30T18:00:00.000Z",
     "url": "/football/matches/le-havre-vs-paris-saint-germain-2026-10-30/",
     "scoreline": "1-5",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Le Havre 0-2 Paris Saint-Germain",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-30T18:00:00.000Z",
     "detected_at": "2026-10-30T00:09:45.353Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Le Havre 0-2 Paris Saint-Germain",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Le Havre 0-2 Paris Saint-Germain"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-5",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Le Havre 1-5 Paris Saint-Germain."
    },
    "settlements": [
     {
      "operation_id": "9cf002540b887ea770dd6885c3756291577a7a790c7e7ab21d728a744caac100",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Paris Saint-Germain",
      "decimal_odds": "1.2479",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 2479,
      "executed_at": "2026-10-30T04:39:34.247Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/le-havre-paris-saint-germain-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Le Havre 0-2 Paris Saint-Germain"
   }
  },
  {
   "record_id": "n-b7c4f9542662a67151be5adc",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-b7c4f9542662a67151be5adc",
   "match": "Lille v RC Lens",
   "match_url": "/football/matches/lille-vs-rc-lens-2026-10-30/",
   "kickoff": "2026-10-30T20:05:00.000Z",
   "competition": "Ligue 1",
   "lead_hours": 19.9,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Lille 2-0 RC Lens",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-0",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-30T00:09:48.031Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "2.5500",
    "result": "Won",
    "points_hundredths": 15500,
    "picked_favourite": true
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-b7c4f9542662a67151be5adc",
    "quote_text": "Jeg spår en 2-0 seier til LOSC Lille",
    "fragment_from": 1377,
    "fragment_to": 1413,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/losc-lille-lens-30-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "817fe39e96bd44432698d6f69ed0bf11c62fb2f2edea302c359d0938810e4f6c",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-30T00:09:48.031Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-0154b7c67113",
     "display_name": "Lille — RC Lens",
     "competition_name": "Ligue 1",
     "starts_at": "2026-10-30T20:05:00.000Z",
     "url": "/football/matches/lille-vs-rc-lens-2026-10-30/",
     "scoreline": "1-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Lille 2-0 RC Lens",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-30T20:05:00.000Z",
     "detected_at": "2026-10-30T00:09:48.031Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Lille 2-0 RC Lens",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Lille 2-0 RC Lens"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "1-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Lille 1-0 RC Lens."
    },
    "settlements": [
     {
      "operation_id": "80ccf438c70d758a01dcb657c2a7c274bd717472237913170a1da290e9495569",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Lille",
      "decimal_odds": "2.5500",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 15500,
      "executed_at": "2026-10-30T04:39:30.999Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/losc-lille-lens-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Lille 2-0 RC Lens"
   }
  },
  {
   "record_id": "n-945a26c2be4f2c35290aa859",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-945a26c2be4f2c35290aa859",
   "match": "SV 07 Elversberg v 1. FSV Mainz 05",
   "match_url": "/football/matches/sv-07-elversberg-vs-1-fsv-mainz-05-2026-10-30/",
   "kickoff": "2026-10-30T19:30:00.000Z",
   "competition": "Bundesliga",
   "lead_hours": 19.3,
   "market_code": "correct_score_market",
   "author_said": "Correct score: SV 07 Elversberg 1-2 1. FSV Mainz 05",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "4-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-30T00:09:49.617Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "2",
    "price": "2.1250",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-945a26c2be4f2c35290aa859",
    "quote_text": "Jeg spår en 2-1 seier til FSV Mainz 05.",
    "fragment_from": 1415,
    "fragment_to": 1454,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/elversberg-fsv-mainz-05-30-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "3c63bc24d073024e600646420edd7f38344033ea375bde19dce577d7ffc90dc5",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-30T00:09:49.617Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-c5e8e37496f9",
     "display_name": "SV 07 Elversberg — 1. FSV Mainz 05",
     "competition_name": "Bundesliga",
     "starts_at": "2026-10-30T19:30:00.000Z",
     "url": "/football/matches/sv-07-elversberg-vs-1-fsv-mainz-05-2026-10-30/",
     "scoreline": "4-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "SV 07 Elversberg 1-2 1. FSV Mainz 05",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-30T19:30:00.000Z",
     "detected_at": "2026-10-30T00:09:49.617Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "SV 07 Elversberg 1-2 1. FSV Mainz 05",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: SV 07 Elversberg 1-2 1. FSV Mainz 05"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "4-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was SV 07 Elversberg 4-1 1. FSV Mainz 05."
    },
    "settlements": [
     {
      "operation_id": "d0d2e6620fd2d1d83998c8087dde2f59d9ce5fe30884f1639f37f87a57fcfdce",
      "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": "1. FSV Mainz 05",
      "decimal_odds": "2.1250",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-30T08:23:33.410Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/elversberg-fsv-mainz-05-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "SV 07 Elversberg 1-2 1. FSV Mainz 05"
   }
  },
  {
   "record_id": "n-5df66bf9f612589e9e49d3b1",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-5df66bf9f612589e9e49d3b1",
   "match": "Villarreal v Espanyol",
   "match_url": "/football/matches/villarreal-vs-espanyol-2026-10-30/",
   "kickoff": "2026-10-30T20:00:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 1.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Villarreal 2-1 Espanyol",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "reason": "",
   "reason_code": "ambiguous",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-30T18:09:46.007Z",
   "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,
   "correction": null,
   "evidence": {
    "observation_id": "n-5df66bf9f612589e9e49d3b1",
    "quote_text": "Jeg spår en 2-1 seier til Villarreal",
    "fragment_from": 1375,
    "fragment_to": 1411,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/villarreal-espanyol-30-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "54f3db7500b62f89bb6a56abb807d3e1a45e492756b1ddf1daadee293bf82a5e",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-30T18:09:46.007Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "ambiguous",
    "cause": "",
    "cause_code": "ambiguous",
    "event": {
     "event_id": "s-6b2e43166ed3",
     "display_name": "Villarreal — Espanyol",
     "competition_name": "LaLiga",
     "starts_at": "2026-10-30T20:00:00.000Z",
     "url": "/football/matches/villarreal-vs-espanyol-2026-10-30/",
     "scoreline": "0-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Villarreal 2-1 Espanyol",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-30T20:00:00.000Z",
     "detected_at": "2026-10-30T18:09:46.007Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Villarreal 2-1 Espanyol",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Villarreal 2-1 Espanyol"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "0-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Villarreal 0-1 Espanyol."
    },
    "settlements": [
     {
      "operation_id": "549feeca9e9aed18b13dc56ba4d6b3c678370f1b829e032d1ce80ea5123e7b9d",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Villarreal",
      "decimal_odds": 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": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/villarreal-espanyol-30-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Villarreal 2-1 Espanyol"
   }
  },
  {
   "record_id": "n-c540dd1d8e8c7a306b9aca30",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-c540dd1d8e8c7a306b9aca30",
   "match": "Levante UD v Atlético Madrid",
   "match_url": "/football/matches/levante-ud-vs-atletico-madrid-2026-10-31/",
   "kickoff": "2026-10-31T13:00:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 16.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Levante UD 0-2 Atlético Madrid",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Won",
   "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": null,
   "recorded_at": "2026-10-30T20:09:49.462Z",
   "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,
   "correction": null,
   "evidence": {
    "observation_id": "n-c540dd1d8e8c7a306b9aca30",
    "quote_text": "Jeg spår en 2-0 seier til Atlético Madrid.",
    "fragment_from": 1484,
    "fragment_to": 1526,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/levante-atletico-madrid-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "c5a35ba6e0117b5ecffb404c2b0320c600983b94e776a2d189ff774efa292774",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-30T20:09:49.462Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-d4720e9c48e9",
     "display_name": "Levante UD — Atlético Madrid",
     "competition_name": "LaLiga",
     "starts_at": "2026-10-31T13:00:00.000Z",
     "url": "/football/matches/levante-ud-vs-atletico-madrid-2026-10-31/",
     "scoreline": "0-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Levante UD 0-2 Atlético Madrid",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T13:00:00.000Z",
     "detected_at": "2026-10-30T20:09:49.462Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Levante UD 0-2 Atlético Madrid",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "0-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Levante UD 0-2 Atlético Madrid"
    },
    "author_claim_outcome": {
     "result": "win",
     "scoreline": "0-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Matched: the final score was Levante UD 0-2 Atlético Madrid."
    },
    "settlements": [
     {
      "operation_id": "b6b76606876b4a0ab14dfa048d91271b9a044e8ffa5ecb42676bfc020e891526",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Atlético Madrid",
      "decimal_odds": "1.5208",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 5208,
      "executed_at": "2026-10-31T08:28:25.606Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/levante-atletico-madrid-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Levante UD 0-2 Atlético Madrid"
   }
  },
  {
   "record_id": "n-a9a66a01accfad936fc7ef62",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-a9a66a01accfad936fc7ef62",
   "match": "Bologna v Monza",
   "match_url": "/football/matches/bologna-vs-monza-2026-10-31/",
   "kickoff": "2026-10-31T14:00:00.000Z",
   "competition": "Serie A",
   "lead_hours": 17.7,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Bologna 2-0 Monza",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-30T20:19:50.840Z",
   "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,
   "correction": null,
   "evidence": {
    "observation_id": "n-a9a66a01accfad936fc7ef62",
    "quote_text": "I denne kampen tror jeg Bologna vil dra nytte av hjemmefordelen og vinne 2-0.",
    "fragment_from": 1296,
    "fragment_to": 1373,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/bologna-monza-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "db18819d69cdd75aee2ba5e0ae2850190553720ce7cc8d41938f16b1fff43697",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-30T20:19:50.840Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-deff589cb1b6",
     "display_name": "Bologna — Monza",
     "competition_name": "Serie A",
     "starts_at": "2026-10-31T14:00:00.000Z",
     "url": "/football/matches/bologna-vs-monza-2026-10-31/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Bologna 2-0 Monza",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T14:00:00.000Z",
     "detected_at": "2026-10-30T20:19:50.840Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "Bologna 2-0 Monza",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Bologna 2-0 Monza"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Bologna 2-1 Monza."
    },
    "settlements": [
     {
      "operation_id": "64846350e07f429f863336ca21e9cbbe3d4d40fad99a382ace9738920f1eb291",
      "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": "Bologna",
      "decimal_odds": "1.7100",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 7100,
      "executed_at": "2026-11-01T18:34:13.954Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/bologna-monza-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Bologna 2-0 Monza"
   }
  },
  {
   "record_id": "n-538a8e8701d7a408838a40ff",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-538a8e8701d7a408838a40ff",
   "match": "Manchester City v Brighton & Hove Albion",
   "match_url": "/football/matches/manchester-city-vs-brighton-and-hove-albion-2026-10-31/",
   "kickoff": "2026-10-31T15:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 14.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Manchester City 2-1 Brighton & Hove Albion",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "0-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-31T00:10:32.477Z",
   "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.6993",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-538a8e8701d7a408838a40ff",
    "quote_text": "Når det gjelder prediksjon, ser det ut til at Manchester City vil fortsette sin seiersrekke med en 2-1 seier over Brighton.",
    "fragment_from": 1400,
    "fragment_to": 1523,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/manchester-city-brighton-hove-albion-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "e3862e8dfccaff03d07a8429aec5381fc7824357ca34cb9d2c8b30566f6fcdb3",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T00:10:32.477Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-3a3fd595d5c8",
     "display_name": "Manchester City — Brighton & Hove Albion",
     "competition_name": "Premier League",
     "starts_at": "2026-10-31T15:00:00.000Z",
     "url": "/football/matches/manchester-city-vs-brighton-and-hove-albion-2026-10-31/",
     "scoreline": "0-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Manchester City 2-1 Brighton & Hove Albion",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T15:00:00.000Z",
     "detected_at": "2026-10-31T00:10:32.477Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "Manchester City 2-1 Brighton & Hove Albion",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Manchester City 2-1 Brighton & Hove Albion"
    },
    "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 Manchester City 0-1 Brighton & Hove Albion."
    },
    "settlements": [
     {
      "operation_id": "ed23ed919832e918ee933aeb59f21f7bfa78577be1c06a5f542b9390bfc24641",
      "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": "Manchester City",
      "decimal_odds": "1.6993",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T04:26:17.447Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/manchester-city-brighton-hove-albion-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Manchester City 2-1 Brighton & Hove Albion"
   }
  },
  {
   "record_id": "n-da862d315d3e97fdbcfea486",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-da862d315d3e97fdbcfea486",
   "match": "Hull City v Ipswich Town",
   "match_url": "/football/matches/hull-city-vs-ipswich-town-2026-10-31/",
   "kickoff": "2026-10-31T15:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 14.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Hull City 1-1 Ipswich Town",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-2",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-31T00:10:34.289Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "2.6000",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": false
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-da862d315d3e97fdbcfea486",
    "quote_text": "Jeg tror kampen ender med en 1-1 uavgjort",
    "fragment_from": 1446,
    "fragment_to": 1487,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/hull-city-ipswich-town-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "d9466bbd2ece15eb0e038696516c6621558e9baa4526a3fc14341ffbf3a545e5",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T00:10:34.289Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-1e31bd108972",
     "display_name": "Hull City — Ipswich Town",
     "competition_name": "Premier League",
     "starts_at": "2026-10-31T15:00:00.000Z",
     "url": "/football/matches/hull-city-vs-ipswich-town-2026-10-31/",
     "scoreline": "2-2",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Hull City 1-1 Ipswich Town",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T15:00:00.000Z",
     "detected_at": "2026-10-31T00:10:34.289Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "Hull City 1-1 Ipswich Town",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Hull City 1-1 Ipswich Town"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-2",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Hull City 2-2 Ipswich Town."
    },
    "settlements": [
     {
      "operation_id": "85d3303cab91aa29ae26103e6e209521830f85bee06ab3cf68263ccd1c919eda",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "3.3500",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 23500,
      "executed_at": "2026-10-31T04:26:12.528Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/hull-city-ipswich-town-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Hull City 1-1 Ipswich Town"
   }
  },
  {
   "record_id": "n-55836a38ca26620b02345171",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-55836a38ca26620b02345171",
   "match": "Coventry City v Sunderland",
   "match_url": "/football/matches/coventry-city-vs-sunderland-2026-10-31/",
   "kickoff": "2026-10-31T15:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 14.8,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Coventry City 2-1 Sunderland",
   "quote": null,
   "group": "settled",
   "outcome": "Lost",
   "claim_outcome": "Lost",
   "final_score": "3-1",
   "reason": null,
   "reason_code": null,
   "points_hundredths": -10000,
   "series_code": "market_price",
   "series_short": "odds snapshot",
   "author_price": null,
   "settled_price": "10.0000",
   "published_at": null,
   "recorded_at": "2026-10-31T00:10:38.355Z",
   "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,
   "correction": null,
   "evidence": {
    "observation_id": "n-55836a38ca26620b02345171",
    "quote_text": "Med tanke på den nylige formen og hjemmebanestøtten, tipper jeg en 2-1 seier til Coventry.",
    "fragment_from": 1506,
    "fragment_to": 1596,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/coventry-city-sunderland-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "d6dd7e592371ffc50b5806a93c8906cdb922449ee4f4b11dc50e88707c295665",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T00:10:38.355Z",
    "executed_at": "2026-10-31T04:26:07.118Z",
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-900e5a680f9a",
     "display_name": "Coventry City — Sunderland",
     "competition_name": "Premier League",
     "starts_at": "2026-10-31T15:00:00.000Z",
     "url": "/football/matches/coventry-city-vs-sunderland-2026-10-31/",
     "scoreline": "3-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Coventry City 2-1 Sunderland",
    "odds_set": {
     "by_author": null,
     "our_snapshot": "10.0000",
     "our_snapshot_at": "2026-10-31T00:07:28.562Z",
     "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T15:00:00.000Z",
     "detected_at": "2026-10-31T00:10:38.355Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "Coventry City 2-1 Sunderland",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Coventry City 2-1 Sunderland"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "3-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Coventry City 3-1 Sunderland."
    },
    "settlements": [
     {
      "operation_id": "1914bbd48dbb7bcbbec199e2e8e206e1860241f6b60f902653b5480cd99935cd",
      "series_key": "market_price",
      "series_label": "At an independent odds snapshot",
      "derived": false,
      "site_simulation": true,
      "author_words": true,
      "market_label": "Correct score",
      "choice": "Coventry City 2-1 Sunderland",
      "decimal_odds": "10.0000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T04:26:07.118Z",
      "methodology_version": "2.2",
      "on_claim_market": true,
      "replaced": false
     },
     {
      "operation_id": "797fd4a3595280d3ab62c92b7d13b4e0e5ea4a054df017a0a8f149d7866636f6",
      "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": "Coventry City",
      "decimal_odds": "3.1000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 21000,
      "executed_at": "2026-10-31T04:26:09.663Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "settled_pick",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/coventry-city-sunderland-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Coventry City 2-1 Sunderland"
   }
  },
  {
   "record_id": "n-6146b9f2e743840dcbfbd163",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-6146b9f2e743840dcbfbd163",
   "match": "Brentford v Nottingham Forest",
   "match_url": "/football/matches/brentford-vs-nottingham-forest-2026-10-31/",
   "kickoff": "2026-10-31T15:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 13.7,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Brentford 2-1 Nottingham Forest",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-0",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-31T01:19:47.955Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "2.0200",
    "result": "Won",
    "points_hundredths": 10200,
    "picked_favourite": true
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-6146b9f2e743840dcbfbd163",
    "quote_text": "En scorelinje på 2-1 til Brentford virker sannsynlig",
    "fragment_from": 1362,
    "fragment_to": 1414,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/brentford-nottingham-forest-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "d39d7ecfb59d723118ea774fae18891dbd36177d766a20c1a0c95d47d2d766c8",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T01:19:47.955Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-c1dd1e3955c7",
     "display_name": "Brentford — Nottingham Forest",
     "competition_name": "Premier League",
     "starts_at": "2026-10-31T15:00:00.000Z",
     "url": "/football/matches/brentford-vs-nottingham-forest-2026-10-31/",
     "scoreline": "2-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Brentford 2-1 Nottingham Forest",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T15:00:00.000Z",
     "detected_at": "2026-10-31T01:19:47.955Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "Brentford 2-1 Nottingham Forest",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Brentford 2-1 Nottingham Forest"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Brentford 2-0 Nottingham Forest."
    },
    "settlements": [
     {
      "operation_id": "a860e08233a425b7e905d82a4dd1b9ab7cf19cef2a4e119c42fe6e5fb412a5b3",
      "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": "Brentford",
      "decimal_odds": "2.0200",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 10200,
      "executed_at": "2026-10-31T04:44:05.721Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/brentford-nottingham-forest-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Brentford 2-1 Nottingham Forest"
   }
  },
  {
   "record_id": "n-4359a4130fa122ee328161fb",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-4359a4130fa122ee328161fb",
   "match": "AFC Bournemouth v Leeds United",
   "match_url": "/football/matches/afc-bournemouth-vs-leeds-united-2026-10-31/",
   "kickoff": "2026-10-31T15:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 13.7,
   "market_code": "correct_score_market",
   "author_said": "Correct score: AFC Bournemouth 1-1 Leeds United",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-0",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-31T01:19:51.421Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "2.1000",
    "result": "Won",
    "points_hundredths": 11000,
    "picked_favourite": false
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-4359a4130fa122ee328161fb",
    "quote_text": "Jeg spår at kampen ender 1-1, et resultat som reflekterer begge lags evne til å angripe, men også deres vanskeligheter med å vinne.",
    "fragment_from": 1384,
    "fragment_to": 1515,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/afc-bournemouth-leeds-united-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "9c4fd65d0cfc00df3d77755380d8a7f5a44a6b18d78c0483fcb8df28643db21e",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T01:19:51.421Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-39d8fcfaf4a9",
     "display_name": "AFC Bournemouth — Leeds United",
     "competition_name": "Premier League",
     "starts_at": "2026-10-31T15:00:00.000Z",
     "url": "/football/matches/afc-bournemouth-vs-leeds-united-2026-10-31/",
     "scoreline": "2-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "AFC Bournemouth 1-1 Leeds United",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T15:00:00.000Z",
     "detected_at": "2026-10-31T01:19:51.421Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "AFC Bournemouth 1-1 Leeds United",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: AFC Bournemouth 1-1 Leeds United"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was AFC Bournemouth 2-0 Leeds United."
    },
    "settlements": [
     {
      "operation_id": "79db540d2423a762b8c8c16e344be903cf076796c36bcd66fa7410d877d6692d",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "3.4000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T04:43:57.750Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/afc-bournemouth-leeds-united-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "AFC Bournemouth 1-1 Leeds United"
   }
  },
  {
   "record_id": "n-de3bee08375af8c27cf07dfa",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-de3bee08375af8c27cf07dfa",
   "match": "Tottenham Hotspur v Crystal Palace",
   "match_url": "/football/matches/tottenham-hotspur-vs-crystal-palace-2026-10-31/",
   "kickoff": "2026-10-31T17:30:00.000Z",
   "competition": "Premier League",
   "lead_hours": 16.2,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Tottenham Hotspur 1-2 Crystal Palace",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-0",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-31T01:19:52.636Z",
   "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.5714",
    "result": "Won",
    "points_hundredths": 5714,
    "picked_favourite": false
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-de3bee08375af8c27cf07dfa",
    "quote_text": "Jeg spår en 2-1 seier til Crystal Palace",
    "fragment_from": 1671,
    "fragment_to": 1711,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/tottenham-hotspur-crystal-palace-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "a7073ad16965f121945a5d6abd1cb6a8480ca39c1b8f7da981c2b2cbb3e0b7ae",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T01:19:52.636Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-697bb66e358c",
     "display_name": "Tottenham Hotspur — Crystal Palace",
     "competition_name": "Premier League",
     "starts_at": "2026-10-31T17:30:00.000Z",
     "url": "/football/matches/tottenham-hotspur-vs-crystal-palace-2026-10-31/",
     "scoreline": "2-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Tottenham Hotspur 1-2 Crystal Palace",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T17:30:00.000Z",
     "detected_at": "2026-10-31T01:19:52.636Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "Tottenham Hotspur 1-2 Crystal Palace",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Tottenham Hotspur 1-2 Crystal Palace"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Tottenham Hotspur 2-0 Crystal Palace."
    },
    "settlements": [
     {
      "operation_id": "f6cbf742382cbf74ba13dfed1d4960538e89c72981a277c15f00bba49b2cc423",
      "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": "Crystal Palace",
      "decimal_odds": "5.2500",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T04:43:52.382Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/tottenham-hotspur-crystal-palace-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Tottenham Hotspur 1-2 Crystal Palace"
   }
  },
  {
   "record_id": "n-505a33150b58b724f7562921",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-505a33150b58b724f7562921",
   "match": "Aston Villa v Fulham",
   "match_url": "/football/matches/aston-villa-vs-fulham-2026-10-31/",
   "kickoff": "2026-10-31T20:00:00.000Z",
   "competition": "Premier League",
   "lead_hours": 18.5,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Aston Villa 2-1 Fulham",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "1-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-31T01:30:17.670Z",
   "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.9804",
    "result": "Lost",
    "points_hundredths": -10000,
    "picked_favourite": true
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-505a33150b58b724f7562921",
    "quote_text": "Jeg spår en 2-1 seier til Aston Villa, der de utnytter hjemmepublikummet og sin erfaring til å sikre tre poeng.",
    "fragment_from": 1457,
    "fragment_to": 1568,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/aston-villa-fulham-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "99af9d773c3ca685bc2702493bb7bb292b17b9764e057937c130c299d5579866",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T01:30:17.670Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-cc0571163d80",
     "display_name": "Aston Villa — Fulham",
     "competition_name": "Premier League",
     "starts_at": "2026-10-31T20:00:00.000Z",
     "url": "/football/matches/aston-villa-vs-fulham-2026-10-31/",
     "scoreline": "1-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Aston Villa 2-1 Fulham",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T20:00:00.000Z",
     "detected_at": "2026-10-31T01:30:17.670Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "Aston Villa 2-1 Fulham",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Aston Villa 2-1 Fulham"
    },
    "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 Aston Villa 1-1 Fulham."
    },
    "settlements": [
     {
      "operation_id": "00b74b03eb38c89b4e97df1695d7696879d00052303663f46a6fd386f5f47740",
      "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": "Aston Villa",
      "decimal_odds": "1.9804",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T04:49:30.623Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/aston-villa-fulham-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Aston Villa 2-1 Fulham"
   }
  },
  {
   "record_id": "n-2cbd52caee3591aaafc2ddb7",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-2cbd52caee3591aaafc2ddb7",
   "match": "Rayo Vallecano v Celta Vigo",
   "match_url": "/football/matches/rayo-vallecano-vs-celta-vigo-2026-10-31/",
   "kickoff": "2026-10-31T15:15:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 13.7,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Rayo Vallecano 1-1 Celta Vigo",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "3-0",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-31T01:30:20.634Z",
   "origin": "Recorded by us before kick-off",
   "record_part": "live",
   "record_part_words": "Recorded before kick-off",
   "in_headline": false,
   "attribution": null,
   "verdict_line": null,
   "price_disputed": null,
   "checked_after_kickoff": false,
   "favourite": {
    "outcome": "1",
    "price": "2.4000",
    "result": "Won",
    "points_hundredths": 14000,
    "picked_favourite": false
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-2cbd52caee3591aaafc2ddb7",
    "quote_text": "Jeg spår en 1-1 uavgjort, der begge lag vil kjempe hardt for å få poeng, men hvor de til slutt ikke klarer å avgjøre kampen.",
    "fragment_from": 1488,
    "fragment_to": 1612,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/rayo-vallecano-celta-de-vigo-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "a214c6e2549564fa814b28bce0a0357782c940bdf004430e90186a91a0c84df9",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T01:30:20.634Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-cc323b5bd7d3",
     "display_name": "Rayo Vallecano — Celta Vigo",
     "competition_name": "LaLiga",
     "starts_at": "2026-10-31T15:15:00.000Z",
     "url": "/football/matches/rayo-vallecano-vs-celta-vigo-2026-10-31/",
     "scoreline": "3-0",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Rayo Vallecano 1-1 Celta Vigo",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T15:15:00.000Z",
     "detected_at": "2026-10-31T01:30:20.634Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Rayo Vallecano 1-1 Celta Vigo",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Rayo Vallecano 1-1 Celta Vigo"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "3-0",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Rayo Vallecano 3-0 Celta Vigo."
    },
    "settlements": [
     {
      "operation_id": "4a31f51db54e7e79f9798fced3f43ec209f541ed4a9ea1b18561c6a527864b8a",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "draw",
      "decimal_odds": "3.2000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "loss",
      "result_words": "Lost",
      "change_hundredths": -10000,
      "executed_at": "2026-10-31T08:38:03.194Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/rayo-vallecano-celta-de-vigo-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Rayo Vallecano 1-1 Celta Vigo"
   }
  },
  {
   "record_id": "n-32c2b0f21a33cdbbf00b0a34",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-32c2b0f21a33cdbbf00b0a34",
   "match": "Real Betis v Málaga CF",
   "match_url": "/football/matches/real-betis-vs-malaga-cf-2026-10-31/",
   "kickoff": "2026-10-31T17:30:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 16.0,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Real Betis 2-0 Málaga CF",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-31T01:30:24.154Z",
   "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.3003",
    "result": "Won",
    "points_hundredths": 3003,
    "picked_favourite": true
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-32c2b0f21a33cdbbf00b0a34",
    "quote_text": "Jeg spår en 2-0 seier til hjemmelaget",
    "fragment_from": 1422,
    "fragment_to": 1459,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/real-betis-malaga-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "8f09c963954eb605e4eef62259525222a0072af07e38bfb39b7c72db5898536b",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T01:30:24.154Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-048fc596302d",
     "display_name": "Real Betis — Málaga CF",
     "competition_name": "LaLiga",
     "starts_at": "2026-10-31T17:30:00.000Z",
     "url": "/football/matches/real-betis-vs-malaga-cf-2026-10-31/",
     "scoreline": "2-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Real Betis 2-0 Málaga CF",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T17:30:00.000Z",
     "detected_at": "2026-10-31T01:30:24.154Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "Real Betis 2-0 Málaga CF",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "2-0",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Real Betis 2-0 Málaga CF"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Real Betis 2-1 Málaga CF."
    },
    "settlements": [
     {
      "operation_id": "b14edc4fc339f6ae070ec8eb4685a635c85e4b3fc6e1e21f844ce1869caccf03",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "Real Betis",
      "decimal_odds": "1.3003",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 3003,
      "executed_at": "2026-10-31T08:40:10.040Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/real-betis-malaga-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Real Betis 2-0 Málaga CF"
   }
  },
  {
   "record_id": "n-321ea1622ebc54cfb0773549",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-321ea1622ebc54cfb0773549",
   "match": "FC Barcelona v Deportivo Alavés",
   "match_url": "/football/matches/fc-barcelona-vs-deportivo-alaves-2026-10-31/",
   "kickoff": "2026-10-31T20:00:00.000Z",
   "competition": "LaLiga",
   "lead_hours": 7.7,
   "market_code": "correct_score_market",
   "author_said": "Correct score: FC Barcelona 3-1 Deportivo Alavés",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "6-1",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-31T12:20:44.674Z",
   "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.1000",
    "result": "Won",
    "points_hundredths": 1000,
    "picked_favourite": true
   },
   "correction": null,
   "evidence": {
    "observation_id": "n-321ea1622ebc54cfb0773549",
    "quote_text": "Et mulig resultat kan være 3-1, der Barcelona utnytter sitt sterke angrep og hjemmefordel, mens Alavés kan få en scoring i løpet av kampen, men vil slite med å stoppe Barcelonas offensive spill.",
    "fragment_from": 1403,
    "fragment_to": 1597,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/fc-barcelona-deportivo-alaves-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "b026b106b23170ecd3debd38b8e71ef01bbbf6a050560069365613a5d9604797",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T12:20:44.674Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-d7731dc6fd99",
     "display_name": "FC Barcelona — Deportivo Alavés",
     "competition_name": "LaLiga",
     "starts_at": "2026-10-31T20:00:00.000Z",
     "url": "/football/matches/fc-barcelona-vs-deportivo-alaves-2026-10-31/",
     "scoreline": "6-1",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "FC Barcelona 3-1 Deportivo Alavés",
    "odds_set": {
     "by_author": null,
     "our_snapshot": null,
     "our_snapshot_at": null,
     "our_snapshot_source": null,
     "closing": null,
     "closing_source": null
    },
    "stake_hundredths": null,
    "result": "loss",
    "simulation_change_hundredths": null,
    "bankroll_after_hundredths": null,
    "executed_by": null,
    "series_label": null,
    "withdrawn": false,
    "provenance": "recorded_pre_match",
    "provenance_words": "Recorded by us before kick-off",
    "dates": {
     "fragment_at": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T20:00:00.000Z",
     "detected_at": "2026-10-31T12:20:44.674Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "rule_version": "1.1"
    },
    "origin": "recorded_before_kickoff",
    "origin_detail": null,
    "origin_words": "Recorded by us before kick-off",
    "added_on": null,
    "late_publication": null,
    "author_claim": {
     "market_label": "Correct score",
     "choice": "FC Barcelona 3-1 Deportivo Alavés",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "3-1",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: FC Barcelona 3-1 Deportivo Alavés"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "6-1",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was FC Barcelona 6-1 Deportivo Alavés."
    },
    "settlements": [
     {
      "operation_id": "77c4bfd7a6e6049c73385ff425928655252e4a1c93a707a144df6950f662795c",
      "series_key": "derived_series",
      "series_label": "Forecast Record reconstruction from the predicted score",
      "derived": true,
      "site_simulation": true,
      "author_words": false,
      "market_label": "1X2, match result",
      "choice": "FC Barcelona",
      "decimal_odds": "1.1000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 1000,
      "executed_at": "2026-10-31T12:28:11.980Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/fc-barcelona-deportivo-alaves-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "FC Barcelona 3-1 Deportivo Alavés"
   }
  },
  {
   "record_id": "n-3fd9f2e91fbe2df733367156",
   "url": "/sources/oddsekspert-no/picks/12/#pick-n-3fd9f2e91fbe2df733367156",
   "match": "Udinese v AS Roma",
   "match_url": "/football/matches/udinese-vs-as-roma-2026-10-31/",
   "kickoff": "2026-10-31T17:00:00.000Z",
   "competition": "Serie A",
   "lead_hours": 4.7,
   "market_code": "correct_score_market",
   "author_said": "Correct score: Udinese 1-2 AS Roma",
   "quote": null,
   "group": "excluded",
   "outcome": "Excluded",
   "claim_outcome": "Lost",
   "final_score": "2-5",
   "reason": "score forecast without a price, graded against the final score",
   "reason_code": "score_without_price",
   "points_hundredths": null,
   "series_code": null,
   "series_short": null,
   "author_price": null,
   "settled_price": null,
   "published_at": null,
   "recorded_at": "2026-10-31T12:20:47.136Z",
   "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,
   "correction": null,
   "evidence": {
    "observation_id": "n-3fd9f2e91fbe2df733367156",
    "quote_text": "Med tanke på deres nåværende form og tidligere resultater, ser jeg for meg en 2-1 seier til Roma.",
    "fragment_from": 1360,
    "fragment_to": 1457,
    "quote_allowed": true,
    "source_info": {
     "medium": "website",
     "url": "https://oddsekspert.no/fotball/kamp/udinese-roma-31-10-2026/",
     "display_name": null,
     "speaker": "OddsEkspert",
     "authorship": "channel_owner",
     "media_from_ms": null,
     "bundle_id": "666ead4e530aafa34fba997c6c8dca2272cd173e8a80ebc19af52e690fd7ca9f",
     "material_removed": false
    },
    "published_at": null,
    "detected_at": "2026-10-31T12:20:47.136Z",
    "executed_at": null,
    "statement_class": "score_forecast",
    "status": "recognised",
    "cause": null,
    "cause_code": null,
    "event": {
     "event_id": "s-c8160fbea0a5",
     "display_name": "Udinese — AS Roma",
     "competition_name": "Serie A",
     "starts_at": "2026-10-31T17:00:00.000Z",
     "url": "/football/matches/udinese-vs-as-roma-2026-10-31/",
     "scoreline": "2-5",
     "condition": "finished"
    },
    "market_label": "Correct score",
    "outcome_label": "Udinese 1-2 AS Roma",
    "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": null,
     "fragment_basis": "no",
     "source_page_at": "2026-10-31T17:00:00.000Z",
     "detected_at": "2026-10-31T12:20:47.136Z",
     "archive_snapshot_at": null,
     "flags": [
      "after_detection",
      "not_fragment_date"
     ],
     "flag_words": "The source's date is later than our first capture, so the page date is set aside for this prediction.",
     "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": "Udinese 1-2 AS Roma",
     "author_odds": null,
     "market_key": "correct_score_market",
     "choice_key": "1-2",
     "period": "match",
     "line": null,
     "subject": "goals_total",
     "in_words": "Correct score: Udinese 1-2 AS Roma"
    },
    "author_claim_outcome": {
     "result": "loss",
     "scoreline": "2-5",
     "data_status": "measured",
     "cause": null,
     "methodology_version": "2.2",
     "in_words": "Did not match: the final score was Udinese 2-5 AS Roma."
    },
    "settlements": [
     {
      "operation_id": "9eb0d150682dcc58d8dd5b8a9a2dde6036c273a8103970d07f7439985bdc8651",
      "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": "AS Roma",
      "decimal_odds": "1.6000",
      "odds_role": "market_price",
      "stake_hundredths": 10000,
      "status": "confirmed",
      "status_text": "Executed",
      "result": "win",
      "result_words": "Won",
      "change_hundredths": 6000,
      "executed_at": "2026-11-01T18:34:25.767Z",
      "methodology_version": "2.2",
      "on_claim_market": false,
      "replaced": false
     }
    ],
    "corrections": [],
    "funnel_stage": "prediction",
    "authorship": {
     "material_author": "OddsEkspert",
     "publisher": "OddsEkspert.no",
     "forecaster": "OddsEkspert",
     "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://oddsekspert.no/fotball/kamp/udinese-roma-31-10-2026/",
     "excluded_from_individual_summaries": false,
     "verdict_by": null,
     "verdict_line": null
    },
    "correction": null,
    "choice_words": "Udinese 1-2 AS Roma"
   }
  }
 ],
 "pagination": {
  "per_page": 20,
  "total": 358,
  "pages": 19,
  "page_urls": [
   "/sources/oddsekspert-no/",
   "/sources/oddsekspert-no/picks/2/",
   "/sources/oddsekspert-no/picks/3/",
   "/sources/oddsekspert-no/picks/4/",
   "/sources/oddsekspert-no/picks/5/",
   "/sources/oddsekspert-no/picks/6/",
   "/sources/oddsekspert-no/picks/7/",
   "/sources/oddsekspert-no/picks/8/",
   "/sources/oddsekspert-no/picks/9/",
   "/sources/oddsekspert-no/picks/10/",
   "/sources/oddsekspert-no/picks/11/",
   "/sources/oddsekspert-no/picks/12/",
   "/sources/oddsekspert-no/picks/13/",
   "/sources/oddsekspert-no/picks/14/",
   "/sources/oddsekspert-no/picks/15/",
   "/sources/oddsekspert-no/picks/16/",
   "/sources/oddsekspert-no/picks/17/",
   "/sources/oddsekspert-no/picks/18/",
   "/sources/oddsekspert-no/picks/19/"
  ],
  "groups": {
   "settled": 28,
   "pending": 1,
   "excluded": 329
  },
  "continuation": "by_time",
  "page": 12,
  "first": 201,
  "last": 220,
  "author_url": "/sources/oddsekspert-no/",
  "current": false
 },
 "entity_id": "history:/sources/oddsekspert-no/picks/12/",
 "source_revision": 23
}
