{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "event",
 "url": "/football/matches/millwall-vs-west-ham-united-2026-09-19/",
 "canonical": "/football/matches/millwall-vs-west-ham-united-2026-09-19/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Millwall vs West Ham United: recorded predictions and results",
 "description": "Millwall vs West Ham United, 19 September 2026. Final score 2-2 · EFL Championship: 1 distinct prediction from 1 author.",
 "first_paragraph": {
  "body": "Millwall finished 2-2 against West Ham United. 1 prediction found after kick-off is shown separately and excluded from the pre-match count. Forecast Record recorded 1 statement from 1 author on Millwall vs West Ham United (EFL Championship, kick-off 19 September 2026): 1 distinct prediction, first recorded after kick-off.",
  "key_number": "1",
  "data": "2026-09-19",
  "source_info": "our own evidence archive",
  "brand": "Forecast Record"
 },
 "indexable": false,
 "noindex_reason": "map_gates",
 "indexing_threshold": {
  "settled_count": 1,
  "date_count": 1,
  "required_settled": 0,
  "required_dates": 0
 },
 "data_date": "2026-10-12T20:07:53.798Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-08T02:12:33.000Z",
 "content_hash": null,
 "meaning_hash": "07d199b222ba4b663da7728eba6e5213f6c569d85fbaf9f0460bbf7143f16d27",
 "dependency_group": "event:s-770e3e368b2b",
 "release_id": "20261107-195223",
 "markup": [
  {
   "type_code": "WebPage",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "Organization",
   "allowed": true,
   "cause": null
  },
  {
   "type_code": "SportsEvent",
   "allowed": true,
   "cause": null
  }
 ],
 "exports": [
  {
   "type_code": "json",
   "url": "/football/matches/millwall-vs-west-ham-united-2026-09-19/index.json",
   "bytes": null
  },
  {
   "type_code": "csv",
   "url": "/football/matches/millwall-vs-west-ham-united-2026-09-19/picks.csv",
   "bytes": null
  }
 ],
 "modules": {
  "affiliate": true,
  "api": true,
  "compare_yourself": false
 },
 "affiliate_block": {
  "container": true,
  "request_url": "/partnery/moi",
  "disclosure": "Some links below are affiliate links and are marked as such. They never affect what you see above: the order of any table is computed before any commission is known.",
  "page_category": "event"
 },
 "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/"
 },
 "event": {
  "id": "s-770e3e368b2b",
  "display_name": "Millwall — West Ham United",
  "competition_name": "EFL Championship",
  "starts_at": "2026-09-19T11:30:00.000Z",
  "status": "finished",
  "scoreline": "2-2",
  "condition": "finished",
  "condition_words": "finished",
  "result_received_at": "2026-09-25T09:12:10.129Z",
  "postponement": null,
  "consensus": null,
  "country_name": "England",
  "competition_full": "EFL Championship (England)"
 },
 "evidence_items": [
  {
   "observation_id": "n-713de51fce49f6551793b73c",
   "url": "/authors/enrico-giordano/picks/24/#pick-n-713de51fce49f6551793b73c",
   "quote_text": "GG a quota 1.57",
   "fragment_from": 4277,
   "fragment_to": 4292,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.bottadiculo.it/pronostico-millwall-west-ham-19-settembre-2026-8a-giornata-di-championship/",
    "display_name": null,
    "speaker": "Enrico Giordano",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "b74a143f171e849425e4375ca431697673dacd070062163f1b0d5cbec6c923f1",
    "material_removed": false
   },
   "published_at": "2026-09-18T07:27:00.000Z",
   "detected_at": "2026-10-12T20:07:53.798Z",
   "executed_at": "2026-10-13T20:10:33.397Z",
   "statement_class": "priced",
   "status": "too_late",
   "cause": "counted in the restored-history series",
   "cause_code": null,
   "event": {
    "event_id": "s-770e3e368b2b",
    "display_name": "Millwall v West Ham United",
    "competition_name": "EFL Championship",
    "starts_at": "2026-09-19T11:30:00.000Z",
    "url": "/football/matches/millwall-vs-west-ham-united-2026-09-19/",
    "scoreline": "2-2"
   },
   "market_label": "Both teams to score",
   "outcome_label": "yes",
   "odds_set": {
    "by_author": "1.57",
    "our_snapshot": null,
    "our_snapshot_at": null,
    "our_snapshot_source": null,
    "closing": "1.6200",
    "closing_source": "last pre-match price in archive (~8–15 h before kick-off)"
   },
   "stake_hundredths": 10000,
   "result": "win",
   "simulation_change_hundredths": 6200,
   "bankroll_after_hundredths": null,
   "executed_by": "ours",
   "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
   "withdrawn": false,
   "provenance": "source_reported_history",
   "provenance_words": "Source-reported history",
   "dates": {
    "fragment_at": "2026-09-18T07:27:00.000Z",
    "fragment_basis": "page",
    "source_page_at": "2026-09-18T07:27:00.000Z",
    "detected_at": "2026-10-12T20:07:53.798Z",
    "archive_snapshot_at": null,
    "flags": [],
    "flag_words": null,
    "rule_version": "1.1"
   },
   "origin": "source_stated_date",
   "origin_detail": "source_reported_history",
   "origin_words": "Source-reported history",
   "added_on": "Added to our record on 12 Oct 2026",
   "late_publication": null,
   "author_claim": {
    "market_label": "Both teams to score",
    "choice": "yes",
    "author_odds": "1.57",
    "market_key": "both_teams_score",
    "choice_key": "yes",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "Both teams to score: yes at 1.57"
   },
   "author_claim_outcome": {
    "result": "win",
    "scoreline": "2-2",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "retro-1.0",
    "in_words": "Won: the final score was Millwall 2-2 West Ham United."
   },
   "settlements": [
    {
     "operation_id": "4ca7ea921ee798881f56d64b35149b29d858a7d2cf7ffd75d24be0362fc67bda",
     "series_key": "retro_author_price",
     "series_label": "Restored, at the author's stated price",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Both teams to score",
     "choice": "yes",
     "decimal_odds": "1.57",
     "odds_role": "author_price",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 5700,
     "executed_at": "2026-10-13T20:10:33.397Z",
     "methodology_version": "retro-1.0",
     "on_claim_market": true,
     "replaced": false
    },
    {
     "operation_id": "271761e2ec965a6bc097edbd51eca5b9c6a51b79db14b5372b6d8f74353e2798",
     "series_key": "retro_market_closing_sm",
     "series_label": "Restored, at the last pre-match price in archive (~8–15 h before kick-off)",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "Both teams to score",
     "choice": "yes",
     "decimal_odds": "1.6200",
     "odds_role": "closing_odds",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "win",
     "result_words": "Won",
     "change_hundredths": 6200,
     "executed_at": "2026-10-13T20:10:33.397Z",
     "methodology_version": "retro-1.1",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "7",
    "publisher": "Bottadiculo",
    "forecaster": "7",
    "forecaster_named_in_text": false,
    "basis": null,
    "status": "not_named",
    "status_words": "Attributed by the byline",
    "status_note": "The source does not name a separate tipster, so the selection is attributed to the byline or channel owner.",
    "evidence_fragment": null,
    "material_url": "https://www.bottadiculo.it/pronostico-millwall-west-ham-19-settembre-2026-8a-giornata-di-championship/",
    "excluded_from_individual_summaries": false,
    "verdict_by": null,
    "verdict_line": null
   },
   "correction": null
  }
 ],
 "record_counts": {
  "dictionary_version": "1",
  "dictionary_url": "/methodology/#words",
  "statements": 1,
  "predictions": 1,
  "authors": 1,
  "statements_before_kickoff": 0,
  "settled_picks": 0,
  "duplicates": 0,
  "junk": {}
 },
 "match_summary": {
  "contract_version": "1",
  "final_score": "2-2",
  "state_words": "finished",
  "distinct_predictions": 1,
  "sources": 1,
  "one_source": true,
  "sentence": "Millwall finished 2-2 against West Ham United. 1 prediction found after kick-off is shown separately and excluded from the pre-match count.",
  "who_predicted_what": [
   {
    "record_id": "n-713de51fce49f6551793b73c",
    "url": "/authors/enrico-giordano/picks/24/#pick-n-713de51fce49f6551793b73c",
    "author": "Enrico Giordano",
    "author_url": "/authors/enrico-giordano/",
    "market": "Both teams to score",
    "selection": "yes",
    "outcome": "Won",
    "price": "1.57",
    "published_at": "2026-09-18T07:27:00.000Z",
    "recorded_at": "2026-10-12T20:07:53.798Z",
    "lead_hours": -560.6,
    "origin": "Source-reported history",
    "outcome_reason": null,
    "before_kickoff": false,
    "attribution": null
   }
  ],
  "by_market": [],
  "found_after_kickoff": 1,
  "selections_before_kickoff": 0,
  "independent_sources": 0,
  "same_material_repeats": 0,
  "sources_list": [],
  "what_happened": null,
  "scenarios": [],
  "lead_time": {
   "contract_version": 1,
   "threshold_hours": 2.0,
   "picks": 1,
   "before_kickoff": 0,
   "after_kickoff": 1,
   "at_least_2h": 0,
   "share_2h_plus": 0.0,
   "median_hours": null,
   "min_hours": null,
   "max_hours": null,
   "words": "Hours between the moment we recorded the pick and kick-off; the share counts picks recorded at least two hours before kick-off."
  }
 },
 "title_tag": "Millwall vs West Ham United: Predictions & Results — 19 Sep 2026",
 "snapshots": {
  "counting_rule": "1",
  "early": null,
  "closing_line": {
   "id": "sr-4b54e3edc24da9bd6ed1d131",
   "type_code": "closing_price",
   "moment_at": "2026-09-19T11:30:00.000Z",
   "freeze_at": "2026-10-11T07:25:43.127Z",
   "approach": "by_capture_time",
   "methodology_version": null,
   "counting_rule": "1",
   "figures": {
    "chain": {
     "admissible": 0,
     "publications": 0,
     "comparable": 0,
     "unique": 0,
     "contributions": 0
    },
    "group_list": [],
    "counting_rule": "1",
    "different_products": 0,
    "differing_choices": 0,
    "not_counted": 0
   },
   "composition": [],
   "hash": "e8dab0b75f3513a15949c6dfcf1b05a12116b2afc3c7e17c969d8a0b394abac8"
  },
  "author_rows": [],
  "late_additions": {
   "n": 4,
   "body": "4 records added on 12 Oct 2026 from the source's own history"
  },
  "chips": {
   "id": "sr-b114aea8075673e55abdcbf9",
   "type_code": "chips",
   "moment_at": "2026-09-19T11:30:00.000Z",
   "freeze_at": "2026-10-11T21:54:25.280Z",
   "approach": "by_capture_time",
   "methodology_version": null,
   "counting_rule": "1",
   "figures": {
    "chips": {},
    "in_catalog": "1"
   },
   "composition": [],
   "hash": "42454b7a26b3e40ece1e55458a8ad8d460850eb54769c29d85e91717bd83db80"
  }
 },
 "match_card": {
  "revision": "1",
  "gates": null,
  "open_to_search": false,
  "inputs": {
   "prediction_count": 0,
   "publisher_count": 0,
   "contract": null,
   "forecaster_count": 0,
   "publishers_all": 0,
   "topic_count": 0,
   "checked_count": false,
   "competition_authors": [
    {
     "settled_count": 110
    },
    {
     "settled_count": 60
    },
    {
     "settled_count": 46
    },
    {
     "settled_count": 35
    },
    {
     "settled_count": 31
    },
    {
     "settled_count": 30
    },
    {
     "settled_count": 25
    },
    {
     "settled_count": 22
    },
    {
     "settled_count": 19
    },
    {
     "settled_count": 17
    },
    {
     "settled_count": 13
    },
    {
     "settled_count": 8
    },
    {
     "settled_count": 7
    },
    {
     "settled_count": 7
    },
    {
     "settled_count": 7
    },
    {
     "settled_count": 6
    },
    {
     "settled_count": 5
    },
    {
     "settled_count": 5
    },
    {
     "settled_count": 5
    },
    {
     "settled_count": 4
    },
    {
     "settled_count": 2
    },
    {
     "settled_count": 2
    },
    {
     "settled_count": 2
    },
    {
     "settled_count": 2
    },
    {
     "settled_count": 1
    },
    {
     "settled_count": 1
    },
    {
     "settled_count": 1
    }
   ],
   "started": true,
   "facts_only": false,
   "counted_predictions": 0,
   "counted_sources": 0
  },
  "gates_words": "Not open to search: fewer than 3 counted predictions from 3 different sources",
  "created_from": "prediction_page",
  "prediction_count": 0,
  "publisher_count": 0,
  "forecaster_count": 0,
  "newcomer_count": 0,
  "competition_authors": [
   {
    "name_shown": "Baba",
    "url": "/authors/baba/",
    "source_group": "tipsters",
    "settled_count": 110,
    "match_count": 66,
    "portion": "live",
    "portion_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": "-25.0",
    "too_few": false,
    "header_titles": [
     {
      "title_id": "zk-5ed8b1279a481fcc4214",
      "code_name": "P-09",
      "title_tier": "dated_record",
      "badge_label": "2. Bundesliga · 5/8 · 26 Oct",
      "body": "2. Bundesliga, week of 26 Oct 2026: 5/8 result calls right, first of 6 tipsters and sources with 3+ calls",
      "provenance": "live",
      "anchor_id": "title-5ed8b1279a48",
      "url": null,
      "tier": null,
      "event_at": "2026-11-01"
     },
     {
      "title_id": "zk-37e18fe87e18079a2945",
      "code_name": "C-02",
      "title_tier": "dated_record",
      "badge_label": "Only right of 7 · 31 Oct",
      "body": "Only one right of 7 tipsters and sources · Draw · Kocaelispor v Rizespor · 31 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-37e18fe87e18",
      "url": null,
      "tier": null,
      "event_at": "2026-10-31"
     }
    ]
   },
   {
    "name_shown": "Enrico Giordano",
    "url": "/authors/enrico-giordano/",
    "source_group": "tipsters",
    "settled_count": 42,
    "match_count": 616,
    "portion": "live",
    "portion_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": "7.2",
    "too_few": false,
    "header_titles": [
     {
      "title_id": "zk-4117c0f114b776ec945d",
      "code_name": "P-09",
      "title_tier": "dated_record",
      "badge_label": "Eredivisie · 2/3 · 12 Oct",
      "body": "Eredivisie, week of 12 Oct 2026: 2/3 result calls right, first of 6 tipsters and sources with 3+ calls",
      "provenance": "live",
      "anchor_id": "title-4117c0f114b7",
      "url": null,
      "tier": null,
      "event_at": "2026-10-18"
     },
     {
      "title_id": "zk-4eae8de48fafb3d634c4",
      "code_name": "S-01",
      "title_tier": "dated_record",
      "badge_label": "6 right in a row · 31 Oct",
      "body": "6 matches in a row, every pick correct · 31 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-4eae8de48faf",
      "url": null,
      "tier": null,
      "event_at": "2026-10-31"
     }
    ]
   },
   {
    "name_shown": "Dailysports",
    "url": "/sources/dailysports-net/",
    "source_group": "websites",
    "settled_count": 34,
    "match_count": 55,
    "portion": "live",
    "portion_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": "3.8",
    "too_few": false,
    "header_titles": [
     {
      "title_id": "zk-1f2dc73852fb72ab0133",
      "code_name": "P-09",
      "title_tier": "dated_record",
      "badge_label": "Bundesliga · 2/3 · 26 Oct",
      "body": "Bundesliga, week of 26 Oct 2026: 2/3 result calls right, first of 22 tipsters and sources with 3+ calls",
      "provenance": "live",
      "anchor_id": "title-1f2dc73852fb",
      "url": null,
      "tier": null,
      "event_at": "2026-11-01"
     },
     {
      "title_id": "zk-ca7508509979566f1f5d",
      "code_name": "S-01",
      "title_tier": "dated_record",
      "badge_label": "8 right in a row · 12 Oct",
      "body": "8 matches in a row, every pick correct · 11 Oct–12 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-ca7508509979",
      "url": null,
      "tier": null,
      "event_at": "2026-10-12"
     }
    ]
   },
   {
    "name_shown": "Free Super Tips",
    "url": "/sources/free-super-tips/",
    "source_group": "websites",
    "settled_count": 28,
    "match_count": 46,
    "portion": "live",
    "portion_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": "-22.7",
    "too_few": false,
    "header_titles": [
     {
      "title_id": "zk-73ce7fd9e5f9fd07b8cb",
      "code_name": "C-02",
      "title_tier": "dated_record",
      "badge_label": "Only right of 8 · 17 Oct",
      "body": "Only one right of 8 tipsters and sources · Away win · Brentford v Liverpool · 17 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-73ce7fd9e5f9",
      "url": null,
      "tier": null,
      "event_at": "2026-10-17"
     },
     {
      "title_id": "zk-40ac82fdc6c742107246",
      "code_name": "CS-10",
      "title_tier": "dated_record",
      "badge_label": "Exact score 3–1 · 6 Nov",
      "body": "Exact score 3–1 · Toulouse v RC Strasbourg · 6 Nov 2026",
      "provenance": "live",
      "anchor_id": "title-40ac82fdc6c7",
      "url": null,
      "tier": null,
      "event_at": "2026-11-06"
     }
    ]
   },
   {
    "name_shown": "Baptiste Couturiaux",
    "url": "/authors/baptiste-couturiaux/",
    "source_group": "tipsters",
    "settled_count": 21,
    "match_count": 28,
    "portion": "live",
    "portion_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": "-17.4",
    "too_few": false,
    "header_titles": [
     {
      "title_id": "zk-cb7e0a6cafc6fb522747",
      "code_name": "S-01",
      "title_tier": "dated_record",
      "badge_label": "7 right in a row · 19 Oct",
      "body": "7 matches in a row, every pick correct · 17 Oct–19 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-cb7e0a6cafc6",
      "url": null,
      "tier": null,
      "event_at": "2026-10-19"
     },
     {
      "title_id": "zk-3ff8f6b757bb4a2d9118",
      "code_name": "P-01",
      "title_tier": "dated_record",
      "badge_label": "8/8 · week of 26 Oct",
      "body": "8/8 result calls right · week of 26 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-3ff8f6b757bb",
      "url": null,
      "tier": null,
      "event_at": "2026-11-01"
     }
    ]
   },
   {
    "name_shown": "Infobetting",
    "url": "/sources/infobetting-com/",
    "source_group": "websites",
    "settled_count": 21,
    "match_count": 22,
    "portion": "archived",
    "portion_words": "Archived before kick-off · reconstructed at the last pre-match archive price",
    "return_percent": "58.2",
    "too_few": false,
    "header_titles": [
     {
      "title_id": "zk-5f259bebd944649c02ef",
      "code_name": "S-01",
      "title_tier": "dated_record",
      "badge_label": "7 right in a row · 1 Nov",
      "body": "7 matches in a row, every pick correct · 31 Oct–1 Nov 2026",
      "provenance": "live",
      "anchor_id": "title-5f259bebd944",
      "url": null,
      "tier": null,
      "event_at": "2026-11-01"
     },
     {
      "title_id": "zk-abb804e6fe445ae3046d",
      "code_name": "E-07",
      "title_tier": "dated_record",
      "badge_label": "Correct at 3.25 · 25 Oct",
      "body": "Draw at 3.25 · Angers v Lorient · 25 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-abb804e6fe44",
      "url": null,
      "tier": null,
      "event_at": "2026-10-25"
     }
    ]
   },
   {
    "name_shown": "Tony Incenzo",
    "url": "/authors/tony-incenzo/",
    "source_group": "tipsters",
    "settled_count": 21,
    "match_count": 627,
    "portion": "archived",
    "portion_words": "Archived before kick-off · reconstructed at the last pre-match archive price",
    "return_percent": "-19.0",
    "too_few": false,
    "header_titles": [
     {
      "title_id": "zk-ebff62d39cc8e3097223",
      "code_name": "P-09",
      "title_tier": "dated_record",
      "badge_label": "1st of 5 · week of 5 Oct",
      "body": "EFL Championship, week of 5 Oct 2026: 8/12 result calls right, first of 5 tipsters and sources with 3+ calls",
      "provenance": "live",
      "anchor_id": "title-ebff62d39cc8",
      "url": null,
      "tier": null,
      "event_at": "2026-10-11"
     },
     {
      "title_id": "zk-e8e794dce9afb956370a",
      "code_name": "C-02",
      "title_tier": "dated_record",
      "badge_label": "Only right of 10 · 24 Oct",
      "body": "Only one right of 10 tipsters and sources · Away win · West Ham United v Southampton · 24 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-e8e794dce9af",
      "url": null,
      "tier": null,
      "event_at": "2026-10-24"
     }
    ]
   },
   {
    "name_shown": "Alex Sarwar",
    "url": "/authors/alex-sarwar/",
    "source_group": "tipsters",
    "settled_count": 19,
    "match_count": 23,
    "portion": "live",
    "portion_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": "14.7",
    "too_few": false,
    "header_titles": [
     {
      "title_id": "zk-176f6b6d9a2b6b86c399",
      "code_name": "S-01",
      "title_tier": "dated_record",
      "badge_label": "4 right in a row · 4 Nov",
      "body": "4 matches in a row, every pick correct · 3 Nov–4 Nov 2026",
      "provenance": "live",
      "anchor_id": "title-176f6b6d9a2b",
      "url": null,
      "tier": null,
      "event_at": "2026-11-04"
     }
    ]
   },
   {
    "name_shown": "Ayaz Karacan",
    "url": "/authors/ayaz-karacan/",
    "source_group": "tipsters",
    "settled_count": 13,
    "match_count": 228,
    "portion": "archived",
    "portion_words": "Archived before kick-off · reconstructed at the last pre-match archive price",
    "return_percent": "-21.2",
    "too_few": false
   },
   {
    "name_shown": "Dan Childs",
    "url": "/authors/dan-childs/",
    "source_group": "experts",
    "settled_count": 7,
    "match_count": 67,
    "portion": "live",
    "portion_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few": true
   },
   {
    "name_shown": "Gonzalo Mansilla",
    "url": "/authors/gonzalo-mansilla/",
    "source_group": "tipsters",
    "settled_count": 6,
    "match_count": 13,
    "portion": "live",
    "portion_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few": true,
    "header_titles": [
     {
      "title_id": "zk-02bb41d2640e5eeb6627",
      "code_name": "S-01",
      "title_tier": "dated_record",
      "badge_label": "4 right in a row · 4 Nov",
      "body": "4 matches in a row, every pick correct · 3 Nov–4 Nov 2026",
      "provenance": "live",
      "anchor_id": "title-02bb41d2640e",
      "url": null,
      "tier": null,
      "event_at": "2026-11-04"
     },
     {
      "title_id": "zk-08a22e96111d92b2dac9",
      "code_name": "P-01",
      "title_tier": "dated_record",
      "badge_label": "5/5 · week of 12 Oct",
      "body": "5/5 result calls right · week of 12 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-08a22e96111d",
      "url": null,
      "tier": null,
      "event_at": "2026-10-18"
     }
    ]
   },
   {
    "name_shown": "Darren Plant",
    "url": "/authors/darren-plant/",
    "source_group": "experts",
    "settled_count": 5,
    "match_count": 22,
    "portion": "live",
    "portion_words": "Recorded before kick-off · return at our recorded market price",
    "return_percent": null,
    "too_few": true,
    "header_titles": [
     {
      "title_id": "zk-f7db28fdb82bbc8625b3",
      "code_name": "C-02",
      "title_tier": "dated_record",
      "badge_label": "Only right of 9 · 3 Nov",
      "body": "Only one right of 9 tipsters and sources · Away win · Charlton Athletic v Bolton Wanderers · 3 Nov 2026",
      "provenance": "live",
      "anchor_id": "title-f7db28fdb82b",
      "url": null,
      "tier": null,
      "event_at": "2026-11-03"
     },
     {
      "title_id": "zk-28bc7fee2e6aea9a3037",
      "code_name": "CS-10",
      "title_tier": "dated_record",
      "badge_label": "Exact score 2–1 · 10 Oct",
      "body": "Exact score 2–1 · Swansea City v Norwich City · 10 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-28bc7fee2e6a",
      "url": null,
      "tier": null,
      "event_at": "2026-10-10"
     }
    ]
   },
   {
    "name_shown": "Ian Wilkerson",
    "url": "/authors/ian-wilkerson/",
    "source_group": "experts",
    "settled_count": 5,
    "match_count": 7,
    "portion": "archived",
    "portion_words": "Archived before kick-off · reconstructed at the last pre-match archive price",
    "return_percent": null,
    "too_few": true
   },
   {
    "name_shown": "James Milton",
    "url": "/authors/james-milton/",
    "source_group": "experts",
    "settled_count": 5,
    "match_count": 15,
    "portion": "archived",
    "portion_words": "Archived before kick-off · reconstructed at the last pre-match archive price",
    "return_percent": null,
    "too_few": true
   },
   {
    "name_shown": "Joe Townsend",
    "url": "/authors/joe-townsend/",
    "source_group": "experts",
    "settled_count": 5,
    "match_count": 11,
    "portion": "archived",
    "portion_words": "Archived before kick-off · reconstructed at the last pre-match archive price",
    "return_percent": null,
    "too_few": true
   }
  ],
  "competition_authors_total": 25,
  "competition_authors_10": 9,
  "full": false,
  "facts_only": false,
  "checked_count": null,
  "window": {
   "d_minus_14_at": "2026-09-05T11:30:00.000Z",
   "d_minus_3_at": "2026-09-16T11:30:00.000Z"
  },
  "first_screen": {
   "body": "No prediction on this match has been recorded yet.",
   "byline": "Split of recorded tipsters and sources.",
   "outcome_split": {
    "1": 0,
    "X": 0,
    "2": 0
   },
   "forecasters_outcome": 0,
   "from_score": {},
   "forecasters_from_score": 0,
   "other_markets_only": 0,
   "newcomers": null,
   "market_label": null,
   "market_at": null,
   "predictions_at": null,
   "comparison": null
  },
  "who_what": {
   "contracts": [],
   "newcomers": [],
   "not_counted": [],
   "after_start": [
    {
     "entry_id": "n-713de51fce49f6551793b73c",
     "author_name": "Enrico Giordano",
     "author_href": "/authors/enrico-giordano/",
     "source_group": "tipsters",
     "trust_tier": "established",
     "market_label": "Both teams to score",
     "market_key": "both_teams_score",
     "choice": "yes",
     "choice_key": "yes",
     "byline": "Source-reported history",
     "logged_at": "2026-10-12T20:07:53.798Z",
     "posted_at": "2026-09-18T07:27:00.000Z",
     "author_quoted_price": "1.57",
     "our_snapshot": null,
     "closing_line": "1.6200",
     "outcome_label": "Won",
     "pre_match": false,
     "proof": "/authors/enrico-giordano/picks/24/#pick-n-713de51fce49f6551793b73c",
     "original": "https://www.bottadiculo.it/pronostico-millwall-west-ham-19-settembre-2026-8a-giornata-di-championship/",
     "contradictory": false,
     "authorship": null,
     "tally": {
      "settled_picks": 28,
      "won": 13,
      "void": 0,
      "return_percent": "-24.9",
      "period_from": "2026-10-11",
      "period_to": "2026-11-07",
      "portion": "live",
      "market_label": "Both teams to score"
     },
     "source_type": "prediction_sites",
     "entry_record": {
      "scope": "market",
      "competition": null,
      "market_key": "both_teams_score",
      "portion": "archived",
      "n": 101,
      "won": 55,
      "lost": 46,
      "void": 0,
      "net_points_hundredths": -90500,
      "return_percent": "-9.0",
      "avg_odds": "1.68",
      "odds_from_author": 100,
      "odds_from_snapshot": 1,
      "league_market_n": 3,
      "market_n": 101,
      "small_sample": false,
      "period_from": "2025-08-22",
      "period_to": "2026-05-09",
      "as_of": "2026-09-19T11:30:00.000Z"
     }
    }
   ],
   "forecaster_split": {
    "contracts": [],
    "author_count": 0,
    "below_threshold": {
     "prediction_count": 0,
     "author_count": 0
    },
    "limit": 10
   },
   "chain": null,
   "differing_choices": 0,
   "visible_who": 0,
   "newcomers_who": 0,
   "newcomers_before": 0,
   "titles_shown": true,
   "legend": "Badges show titles earned before this prediction, by published rules."
  },
  "arguments": {
   "topics": [],
   "against": [],
   "other_languages": 0,
   "other_language_hosts": [],
   "mode": "quotes",
   "topics_total": 0,
   "checkable": 0
  },
  "market_label": null,
  "market_mode": "show",
  "fact_sheet": {
   "tournament": "EFL Championship (England)",
   "matchday": "Matchweek 8",
   "starts_at": "2026-09-19T11:30:00.000Z",
   "form": {
    "home_side": [
     {
      "res": "D",
      "scoreline": "2-2",
      "opponent": "Middlesbrough",
      "at_home": false,
      "data": "2026-09-15"
     },
     {
      "res": "L",
      "scoreline": "1-3",
      "opponent": "Blackburn Rovers",
      "at_home": false,
      "data": "2026-09-12"
     },
     {
      "res": "L",
      "scoreline": "0-1",
      "opponent": "Newcastle United",
      "at_home": true,
      "data": "2026-09-08"
     },
     {
      "res": "W",
      "scoreline": "4-0",
      "opponent": "Bolton Wanderers",
      "at_home": true,
      "data": "2026-09-05"
     },
     {
      "res": "L",
      "scoreline": "0-3",
      "opponent": "Wrexham",
      "at_home": true,
      "data": "2026-09-02"
     }
    ],
    "away": [
     {
      "res": "L",
      "scoreline": "2-3",
      "opponent": "Fulham",
      "at_home": true,
      "data": "2026-09-15"
     },
     {
      "res": "W",
      "scoreline": "6-0",
      "opponent": "Wrexham",
      "at_home": true,
      "data": "2026-09-11"
     },
     {
      "res": "W",
      "scoreline": "3-2",
      "opponent": "Bolton Wanderers",
      "at_home": false,
      "data": "2026-09-08"
     },
     {
      "res": "W",
      "scoreline": "3-0",
      "opponent": "Derby County",
      "at_home": true,
      "data": "2026-09-05"
     },
     {
      "res": "W",
      "scoreline": "4-2",
      "opponent": "Wolverhampton Wanderers",
      "at_home": true,
      "data": "2026-09-01"
     }
    ]
   },
   "head_to_head": [],
   "past_cards": [],
   "reach": ""
  },
  "after_match": {
   "scoreline": "2-2",
   "fact_code": "X",
   "row_list": [],
   "by_group": {},
   "placement": null,
   "checks": []
  },
  "prices": [],
  "revisions": [],
  "titles": {
   "shown": true,
   "legend": "Badges show titles earned before this prediction, by published rules.",
   "frozen_in": "sr-4b54e3edc24da9bd6ed1d131"
  },
  "tracker": null,
  "source_groups": {
   "as_of": "2026-09-19T11:30:00.000Z",
   "groups": [
    {
     "key": "prediction_sites",
     "label": "Prediction sites"
    },
    {
     "key": "media",
     "label": "Media"
    },
    {
     "key": "telegram_channels",
     "label": "Telegram channels"
    },
    {
     "key": "private_authors",
     "label": "Independent tipsters"
    }
   ],
   "authors": 0,
   "by_group": [
    {
     "key": "prediction_sites",
     "authors": 0
    },
    {
     "key": "media",
     "authors": 0
    },
    {
     "key": "telegram_channels",
     "authors": 0
    },
    {
     "key": "private_authors",
     "authors": 0
    }
   ],
   "markets": [
    {
     "key": "1x2",
     "label": "Match result",
     "authors": 0,
     "by_group": [
      {
       "key": "prediction_sites",
       "authors": 0
      },
      {
       "key": "media",
       "authors": 0
      },
      {
       "key": "telegram_channels",
       "authors": 0
      },
      {
       "key": "private_authors",
       "authors": 0
      }
     ],
     "choices": [
      {
       "code_name": "1",
       "in_words": "Millwall",
       "authors": 0,
       "by_group": [
        {
         "key": "prediction_sites",
         "authors": 0
        },
        {
         "key": "media",
         "authors": 0
        },
        {
         "key": "telegram_channels",
         "authors": 0
        },
        {
         "key": "private_authors",
         "authors": 0
        }
       ]
      },
      {
       "code_name": "X",
       "in_words": "Draw",
       "authors": 0,
       "by_group": [
        {
         "key": "prediction_sites",
         "authors": 0
        },
        {
         "key": "media",
         "authors": 0
        },
        {
         "key": "telegram_channels",
         "authors": 0
        },
        {
         "key": "private_authors",
         "authors": 0
        }
       ]
      },
      {
       "code_name": "2",
       "in_words": "West Ham United",
       "authors": 0,
       "by_group": [
        {
         "key": "prediction_sites",
         "authors": 0
        },
        {
         "key": "media",
         "authors": 0
        },
        {
         "key": "telegram_channels",
         "authors": 0
        },
        {
         "key": "private_authors",
         "authors": 0
        }
       ]
      }
     ]
    },
    {
     "key": "totals",
     "label": "Goal totals",
     "authors": 0,
     "by_group": [
      {
       "key": "prediction_sites",
       "authors": 0
      },
      {
       "key": "media",
       "authors": 0
      },
      {
       "key": "telegram_channels",
       "authors": 0
      },
      {
       "key": "private_authors",
       "authors": 0
      }
     ]
    },
    {
     "key": "other",
     "label": "Handicaps, both teams to score, correct score and other markets",
     "authors": 0,
     "by_group": [
      {
       "key": "prediction_sites",
       "authors": 0
      },
      {
       "key": "media",
       "authors": 0
      },
      {
       "key": "telegram_channels",
       "authors": 0
      },
      {
       "key": "private_authors",
       "authors": 0
      }
     ]
    }
   ]
  },
  "market_line": {
   "line_state": "no_snapshot",
   "line_frozen": true,
   "phrase": null,
   "line_markets": []
  },
  "pre_kickoff_snapshot": {
   "frozen_before_kickoff": true,
   "as_of_moment": "2026-09-19T11:30:00.000Z",
   "starts_at": "2026-09-19T11:30:00.000Z",
   "phrase": null,
   "market_line_brief": null,
   "market_groups": [],
   "predictions_before_kickoff": 0,
   "majority_threshold": {
    "min_predictions": 5,
    "min_share_percent": 60.0
   }
  },
  "teams_prev_next": [
   {
    "side": "home",
    "team": "Millwall",
    "team_url": "/football/teams/millwall/",
    "participant_id": "u-4eb52ff9d921",
    "previous": null,
    "next": {
     "kickoff": "2026-10-10T14:00:00.000Z",
     "name": "Preston North End vs Millwall",
     "url": "/football/matches/preston-north-end-vs-millwall-2026-10-10/",
     "competition": "EFL Championship",
     "state": "played",
     "score": "0-1"
    },
    "why": null
   },
   {
    "side": "away",
    "team": "West Ham United",
    "team_url": "/football/teams/west-ham-united/",
    "participant_id": "u-c5cafbc60290",
    "previous": {
     "kickoff": "2026-09-15T18:45:00.000Z",
     "name": "West Ham United vs Fulham",
     "url": null,
     "competition": "EFL Cup (Carabao)",
     "state": "played",
     "score": "2-3"
    },
    "next": {
     "kickoff": "2026-10-09T19:00:00.000Z",
     "name": "West Ham United vs Queens Park Rangers",
     "url": "/football/matches/west-ham-united-vs-queens-park-rangers-2026-10-09/",
     "competition": "EFL Championship",
     "state": "played",
     "score": "1-1"
    },
    "why": null
   }
  ]
 },
 "data_changes": {
  "records_corrected": 0,
  "last_correction_at": null,
  "corrections_url": "/corrections/"
 },
 "entity_id": "event:s-770e3e368b2b",
 "source_revision": 78,
 "title_short": {
  "length": 64,
  "names": [
   "Millwall",
   "West Ham"
  ],
  "title": "Millwall vs West Ham: Predictions & Results — 19 Sep 2026",
  "title_length": 57
 }
}
