{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "event",
 "url": "/football/matches/vila-nova-vs-juventude-2026-10-31/",
 "canonical": "/football/matches/vila-nova-vs-juventude-2026-10-31/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "Vila Nova vs Juventude: recorded predictions and results",
 "description": "Vila Nova vs Juventude, 31 October 2026. Final score 2-2 · Brasileiro Série B: 1 distinct prediction from 1 author.",
 "first_paragraph": {
  "body": "Vila Nova finished 2-2 against Juventude. The recorded prediction is listed below with its outcome. Forecast Record recorded 1 statement from 1 author on Vila Nova vs Juventude (Brasileiro Série B, kick-off 31 October 2026): 1 distinct prediction, recorded before kick-off. The kick-off was moved by the organiser: originally 31 October 2026, 21:00 GMT, now 31 October 2026, 20:30 GMT; picks are timed against the new kick-off.",
  "key_number": "1",
  "data": "2026-10-31",
  "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-31T23:11:18.782Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-08T02:12:33.000Z",
 "content_hash": null,
 "meaning_hash": "e619e0d78e0da55cd6953ec30d8a05f55bed65b4d95b3d23848e68565475d2bb",
 "dependency_group": "event:s-95536db21100",
 "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/vila-nova-vs-juventude-2026-10-31/index.json",
   "bytes": null
  },
  {
   "type_code": "csv",
   "url": "/football/matches/vila-nova-vs-juventude-2026-10-31/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-95536db21100",
  "display_name": "Vila Nova — Juventude",
  "competition_name": "Brasileiro Série B",
  "starts_at": "2026-10-31T20:30:00.000Z",
  "status": "finished",
  "scoreline": "2-2",
  "condition": "finished",
  "condition_words": "finished",
  "result_received_at": "2026-10-31T23:11:18.782Z",
  "postponement": {
   "was": "31 October 2026 21:00 UTC",
   "now": "31 October 2026 20:30 UTC",
   "at": "2026-10-29T12:19:37.413Z"
  },
  "consensus": null,
  "country_name": "Brazil",
  "competition_full": "Brasileiro Série B (Brazil)"
 },
 "evidence_items": [
  {
   "observation_id": "n-babb3cd8dd32547678b4bd89",
   "url": "/sources/wincomparator-com/products/a-equipe-wincomparator-prognosticos-brasileirao-serie-b/picks/4/#pick-n-babb3cd8dd32547678b4bd89",
   "quote_text": "Nosso prognóstico\n\nVila Nova vence partida",
   "fragment_from": 648,
   "fragment_to": 690,
   "quote_allowed": true,
   "source_info": {
    "medium": "website",
    "url": "https://www.wincomparator.com/pt/prognosticos/vila-nova-go-juventude-rs-8315630/",
    "display_name": null,
    "speaker": "A equipe Wincomparator",
    "authorship": "channel_owner",
    "media_from_ms": null,
    "bundle_id": "e99d6a408ab3e95a8c829ddcc25e50e539e763dfcef6dafaca2c291a3b04fd23",
    "material_removed": false
   },
   "published_at": null,
   "detected_at": "2026-10-27T09:11:33.098Z",
   "executed_at": "2026-10-30T18:38:47.935Z",
   "statement_class": "unpriced",
   "status": "recognised",
   "cause": null,
   "cause_code": null,
   "event": {
    "event_id": "s-95536db21100",
    "display_name": "Vila Nova — Juventude",
    "competition_name": "Brasileiro Série B",
    "starts_at": "2026-10-31T20:30:00.000Z",
    "url": "/football/matches/vila-nova-vs-juventude-2026-10-31/",
    "scoreline": "2-2",
    "condition": "finished"
   },
   "market_label": "1X2, match result",
   "outcome_label": "Vila Nova",
   "odds_set": {
    "by_author": null,
    "our_snapshot": "2.3650",
    "our_snapshot_at": "2026-10-27T09:09:27.672Z",
    "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": null,
    "detected_at": "2026-10-27T09:11:33.098Z",
    "archive_snapshot_at": null,
    "flags": [
     "no_date"
    ],
    "flag_words": "The source states no publication date.",
    "rule_version": "1.1"
   },
   "origin": "recorded_before_kickoff",
   "origin_detail": null,
   "origin_words": "Recorded by us before kick-off",
   "added_on": null,
   "late_publication": null,
   "author_claim": {
    "market_label": "1X2, match result",
    "choice": "Vila Nova",
    "author_odds": null,
    "market_key": "1x2",
    "choice_key": "1",
    "period": "match",
    "line": null,
    "subject": "goals_total",
    "in_words": "1X2, match result: Vila Nova"
   },
   "author_claim_outcome": {
    "result": "loss",
    "scoreline": "2-2",
    "data_status": "measured",
    "cause": null,
    "methodology_version": "2.2",
    "in_words": "Lost: the final score was Vila Nova 2-2 Juventude."
   },
   "settlements": [
    {
     "operation_id": "2d280b89c8cd2f920f87d8bd4729d45977c2b3a725d18426e6389b798f93a87d",
     "series_key": "market_price",
     "series_label": "At an independent odds snapshot",
     "derived": false,
     "site_simulation": true,
     "author_words": true,
     "market_label": "1X2, match result",
     "choice": "Vila Nova",
     "decimal_odds": "2.3650",
     "odds_role": "market_price",
     "stake_hundredths": 10000,
     "status": "confirmed",
     "status_text": "Executed",
     "result": "loss",
     "result_words": "Lost",
     "change_hundredths": -10000,
     "executed_at": "2026-10-30T18:38:47.935Z",
     "methodology_version": "2.2",
     "on_claim_market": true,
     "replaced": false
    }
   ],
   "corrections": [],
   "funnel_stage": "settled_pick",
   "authorship": {
    "material_author": "A equipe Wincomparator",
    "publisher": "Wincomparator — prognósticos Brasileirão Série B",
    "forecaster": "A equipe Wincomparator",
    "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.wincomparator.com/pt/prognosticos/vila-nova-go-juventude-rs-8315630/",
    "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": 1,
  "settled_picks": 1,
  "duplicates": 5,
  "junk": {}
 },
 "match_summary": {
  "contract_version": "1",
  "final_score": "2-2",
  "state_words": "finished",
  "distinct_predictions": 1,
  "sources": 1,
  "one_source": true,
  "sentence": "Vila Nova finished 2-2 against Juventude. The recorded prediction is listed below with its outcome.",
  "who_predicted_what": [
   {
    "record_id": "n-babb3cd8dd32547678b4bd89",
    "url": "/sources/wincomparator-com/products/a-equipe-wincomparator-prognosticos-brasileirao-serie-b/picks/4/#pick-n-babb3cd8dd32547678b4bd89",
    "author": "Wincomparator",
    "author_url": "/sources/wincomparator-com/",
    "market": "1X2, match result",
    "selection": "Vila Nova",
    "outcome": "Lost",
    "price": null,
    "published_at": null,
    "recorded_at": "2026-10-27T09:11:33.098Z",
    "lead_hours": 107.3,
    "origin": "Recorded by us before kick-off",
    "outcome_reason": null,
    "before_kickoff": true,
    "attribution": null
   }
  ],
  "by_market": [
   {
    "market": "1X2, match result",
    "predictions": 1,
    "sources": 1,
    "one_source": true,
    "eligible": 1,
    "different_selections": 0,
    "selections": [
     {
      "selection": "Vila Nova",
      "predictions": 1,
      "eligible": 1
     }
    ],
    "median_odds": "2.37",
    "odds_from_author": 0,
    "odds_from_snapshot": 1
   }
  ],
  "found_after_kickoff": 0,
  "selections_before_kickoff": 1,
  "independent_sources": 1,
  "same_material_repeats": 0,
  "sources_list": [
   {
    "source": "wincomparator.com",
    "materials": 1,
    "authors": 1,
    "selections": 1
   }
  ],
  "what_happened": {
   "won": 0,
   "lost": 1,
   "void": 0,
   "half_won": 0,
   "half_lost": 0,
   "not_settled": 0
  },
  "scenarios": [],
  "lead_time": {
   "contract_version": 1,
   "threshold_hours": 2.0,
   "picks": 1,
   "before_kickoff": 1,
   "after_kickoff": 0,
   "at_least_2h": 1,
   "share_2h_plus": 100.0,
   "median_hours": 107.3,
   "min_hours": 107.3,
   "max_hours": 107.3,
   "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": "Vila Nova vs Juventude: Predictions and Results — 31 Oct 2026",
 "snapshots": {
  "counting_rule": "1",
  "early": {
   "id": "sr-801f973b4c81a5cd843b5908",
   "type_code": "early",
   "moment_at": "2026-10-27T19:38:12.387Z",
   "freeze_at": "2026-10-27T19:38:12.387Z",
   "approach": "at_the_time",
   "methodology_version": null,
   "counting_rule": "1",
   "figures": {
    "chain": {
     "admissible": 2,
     "publications": 2,
     "comparable": 2,
     "unique": 2,
     "contributions": 2
    },
    "group_list": [
     {
      "phrase": "Draw no bet — Most common recorded selection: Juventude (1 of 1 eligible)",
      "source_group": "draw_no_bet|*|match|*|*#explicit",
      "leader": "2",
      "n": 1,
      "market_label": "Draw no bet",
      "row_list": [
       {
        "figure": 1,
        "in_words": "Juventude",
        "choice": "2"
       }
      ]
     },
     {
      "phrase": "Correct score — Most common recorded selection: Vila Nova 2-2 Juventude (1 of 1 eligible)",
      "source_group": "correct_score_market|*|match|*|*#explicit",
      "leader": "2-2",
      "n": 1,
      "market_label": "Correct score",
      "row_list": [
       {
        "figure": 1,
        "in_words": "Vila Nova 2-2 Juventude",
        "choice": "2-2"
       }
      ]
     }
    ],
    "counting_rule": "1",
    "different_products": 0,
    "differing_choices": 0,
    "not_counted": 0
   },
   "composition": [
    "n-a9f5cf7c4bb472fe536bdfb7",
    "n-f5ff096d7b84daff684775b6"
   ],
   "hash": "73fbf5c01bd340dd22fcbbc36afdec78524dba0331250d84d98e4758bb57b2b0"
  },
  "closing_line": {
   "id": "sr-fe872d466e95caf27f346f9d",
   "type_code": "closing_price",
   "moment_at": "2026-10-31T20:30:00.000Z",
   "freeze_at": "2026-10-31T20:52:12.314Z",
   "approach": "by_capture_time",
   "methodology_version": null,
   "counting_rule": "1",
   "figures": {
    "chain": {
     "admissible": 3,
     "publications": 6,
     "comparable": 3,
     "unique": 3,
     "contributions": 3
    },
    "group_list": [
     {
      "phrase": "1X2, match result — No single most common selection: Vila Nova and Juventude (1 of 2 eligible each)",
      "source_group": "1x2|*|match|*|*#explicit",
      "leader": null,
      "n": 2,
      "market_label": "1X2, match result",
      "row_list": [
       {
        "figure": 1,
        "in_words": "Vila Nova",
        "choice": "1"
       },
       {
        "figure": 1,
        "in_words": "Juventude",
        "choice": "2"
       }
      ]
     },
     {
      "phrase": "Correct score — Most common recorded selection: Vila Nova 2-2 Juventude (1 of 1 eligible)",
      "source_group": "correct_score_market|*|match|*|*#explicit",
      "leader": "2-2",
      "n": 1,
      "market_label": "Correct score",
      "row_list": [
       {
        "figure": 1,
        "in_words": "Vila Nova 2-2 Juventude",
        "choice": "2-2"
       }
      ]
     }
    ],
    "counting_rule": "1",
    "different_products": 0,
    "differing_choices": 0,
    "not_counted": 0
   },
   "composition": [
    "n-21204f6a7b3ebf020bca3ba0",
    "n-245f4a85b4b59fe57d7cd798",
    "n-28acf6d9e3f25803ab46665b",
    "n-335de74196e784bea3a2b59d",
    "n-babb3cd8dd32547678b4bd89",
    "n-d4d7d1d3c6d2776d89bc701a"
   ],
   "hash": "d03368eac0ceb6b03bfa818a4d69fdbc95ce77d1638f615f954e73afbcba4341"
  },
  "author_rows": [
   {
    "id": "sr-abe78eaadf92e2f492858bf9",
    "type_code": "author_before_match",
    "moment_at": "2026-10-31T20:30:00.000Z",
    "freeze_at": "2026-10-31T20:52:12.314Z",
    "approach": "by_capture_time",
    "methodology_version": "2.2",
    "counting_rule": "1",
    "figures": {
     "matches": 8,
     "method_version": "2.2",
     "net_points_hundredths": -24898,
     "period_from": "2026-10-21",
     "period_to": "2026-10-24",
     "price_rule": "Our market snapshot",
     "return_percent": "-24.90",
     "settled_picks": 10,
     "staked_hundredths": 100000,
     "void": 0
    },
    "composition": [
     "c|s-26ab5e4e5ad9|r-a8892311e0ac8319|v-893a58e828b040c6",
     "c|s-31ff7e2ddae8|r-a09990b830a7f898|v-9c3c4deaff76c098",
     "c|s-768d6e0748bb|r-86bbf0a570ce6878|v-c51604fd5c012e76",
     "c|s-79db15a3c707|r-1c5bc93fbd2315a9|v-9a9580791ce83997",
     "c|s-79db15a3c707|r-d378033b9eb6e22f|v-85c2d261e23dbc74",
     "c|s-9b50ee5dca05|r-8129db2772d5c947|v-3c013a8afdd260cd",
     "c|s-9f8079be711c|r-d11d908e2472f219|v-70ae46e79124120f",
     "c|s-a8bbeec2678a|r-2614b77eeee6e303|v-3148e02352f27568",
     "c|s-a8bbeec2678a|r-f75fd31dc59a91ce|v-6eb35d296a78cb8e",
     "c|s-cd30add47062|r-863e0b6246c1a2fa|v-054368be556a56ce"
    ],
    "hash": "4a24bfb97bf6d5a1e1d0e1c923ea6533f7d44167f43cc15bff043d2467938507",
    "entity_ref": "e-706a43f0ab20e6f5bcf47d40",
    "name_shown": "WinDrawWin — pronósticos Brasileirão Série B",
    "url": "/sources/windrawwin-com/products/windrawwin-pronosticos-brasileirao/"
   },
   {
    "id": "sr-432953357c20fb38f5d0df3e",
    "type_code": "author_before_match",
    "moment_at": "2026-10-31T20:30:00.000Z",
    "freeze_at": "2026-10-31T20:52:12.314Z",
    "approach": "by_capture_time",
    "methodology_version": "2.2",
    "counting_rule": "1",
    "figures": {
     "matches": 6,
     "method_version": "2.2",
     "net_points_hundredths": -35200,
     "period_from": "2026-10-16",
     "period_to": "2026-10-24",
     "price_rule": "Our market snapshot",
     "return_percent": "-58.67",
     "settled_picks": 6,
     "staked_hundredths": 60000,
     "void": 0
    },
    "composition": [
     "c|s-0f0d7401d5a8|r-39388ab7d0e751e8|v-c2a92abf5c202e1a",
     "c|s-432d13d9aa94|r-52138e602f5e505b|v-f1c33263ccca04a7",
     "c|s-59ea0e3c2a1a|r-0eb104121f997cba|v-8509b0bd1af12442",
     "c|s-6277223d1523|r-6267fe132ff2e8d8|v-68523e90673f689b",
     "c|s-8afad5a47711|r-6f32a4b324b4e1a0|v-acf030465912da55",
     "c|s-e57ac9ae0240|r-d50acbf201a23788|v-c24deff3416748f0"
    ],
    "hash": "1d6382efa839c0f77d03fe720b2d0b027e18d3cd6681386994ec7db0aad3da5d",
    "entity_ref": "e-90ac8134d0b612b981201c69",
    "name_shown": "Wincomparator — A equipe Wincomparator (prognósticos Brasileirão Série B)",
    "url": "/sources/wincomparator-com/products/a-equipe-wincomparator-prognosticos-brasileirao-serie-b/"
   }
  ],
  "late_additions": null,
  "chips": {
   "id": "sr-669cbead06cf2a077780c853",
   "type_code": "chips",
   "moment_at": "2026-10-31T20:30:00.000Z",
   "freeze_at": "2026-10-31T20:52:12.314Z",
   "approach": "by_capture_time",
   "methodology_version": null,
   "counting_rule": "1",
   "figures": {
    "chips": {
     "n-21204f6a7b3ebf020bca3ba0": [],
     "n-245f4a85b4b59fe57d7cd798": [],
     "n-28acf6d9e3f25803ab46665b": [],
     "n-335de74196e784bea3a2b59d": [],
     "n-babb3cd8dd32547678b4bd89": [],
     "n-d4d7d1d3c6d2776d89bc701a": []
    },
    "in_catalog": "1"
   },
   "composition": [
    "n-21204f6a7b3ebf020bca3ba0",
    "n-245f4a85b4b59fe57d7cd798",
    "n-28acf6d9e3f25803ab46665b",
    "n-335de74196e784bea3a2b59d",
    "n-babb3cd8dd32547678b4bd89",
    "n-d4d7d1d3c6d2776d89bc701a"
   ],
   "hash": "67967b12a97d593035d972227556e0008998611598309c9db1ba56a24cc1709a"
  }
 },
 "match_card": {
  "revision": "1",
  "gates": null,
  "open_to_search": false,
  "inputs": {
   "prediction_count": 1,
   "publisher_count": 1,
   "contract": "1x2|*|match|*|*#explicit",
   "forecaster_count": 1,
   "publishers_all": 1,
   "topic_count": 0,
   "checked_count": false,
   "competition_authors": [
    {
     "settled_count": 7
    },
    {
     "settled_count": 2
    }
   ],
   "started": true,
   "facts_only": false,
   "counted_predictions": 1,
   "counted_sources": 1
  },
  "gates_words": "Not open to search: fewer than 3 counted predictions from 3 different sources",
  "created_from": "prediction_page",
  "prediction_count": 0,
  "publisher_count": 1,
  "forecaster_count": 0,
  "newcomer_count": 1,
  "competition_authors": [
   {
    "name_shown": "FootballPredictions.net",
    "url": "/sources/footballpredictions-net/",
    "source_group": "websites",
    "settled_count": 7,
    "match_count": 23,
    "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-47cc45887781ed2bc810",
      "code_name": "P-09",
      "title_tier": "dated_record",
      "badge_label": "1st of 3 · week of 5 Oct",
      "body": "UEFA Nations League, week of 5 Oct 2026: 4/5 result calls right, first of 3 tipsters and sources with 3+ calls",
      "provenance": "live",
      "anchor_id": "title-47cc45887781",
      "url": null,
      "tier": null,
      "event_at": "2026-10-11"
     },
     {
      "title_id": "zk-3f294e364978e9d313ed",
      "code_name": "S-01",
      "title_tier": "dated_record",
      "badge_label": "5 right in a row · 6 Oct",
      "body": "5 matches in a row, every pick correct · 6 Oct 2026",
      "provenance": "live",
      "anchor_id": "title-3f294e364978",
      "url": null,
      "tier": null,
      "event_at": "2026-10-06"
     }
    ]
   },
   {
    "name_shown": "Ayaz Karacan",
    "url": "/authors/ayaz-karacan/",
    "source_group": "tipsters",
    "settled_count": 2,
    "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
   }
  ],
  "competition_authors_total": 2,
  "competition_authors_10": 0,
  "full": false,
  "facts_only": false,
  "checked_count": null,
  "window": {
   "d_minus_14_at": "2026-10-17T20:30:00.000Z",
   "d_minus_3_at": "2026-10-28T20:30:00.000Z"
  },
  "first_screen": {
   "body": "Before kick-off, 1 tipster with 10 or more predictions checked against the final score to date had a 90-minute match-result prediction: Vila Nova 1 · Draw 0 · Juventude 0.",
   "byline": "Split of recorded tipsters and sources.",
   "outcome_split": {
    "1": 1,
    "X": 0,
    "2": 0
   },
   "forecasters_outcome": 1,
   "from_score": {},
   "forecasters_from_score": 0,
   "other_markets_only": 0,
   "newcomers": null,
   "market_label": "Market favourite at kick-off: Vila Nova · implied 40%",
   "market_at": "2026-10-31T20:30:00.000Z",
   "predictions_at": "2026-10-27T09:11:33.098Z",
   "comparison": null
  },
  "who_what": {
   "contracts": [],
   "newcomers": [
    {
     "entry_id": "n-babb3cd8dd32547678b4bd89",
     "author_name": "Wincomparator",
     "author_href": "/sources/wincomparator-com/",
     "source_group": "websites",
     "trust_tier": "probation",
     "market_label": "1X2, match result",
     "market_key": "1x2",
     "choice": "Vila Nova",
     "choice_key": "1",
     "byline": "Recorded by us before kick-off",
     "logged_at": "2026-10-27T09:11:33.098Z",
     "posted_at": null,
     "author_quoted_price": null,
     "our_snapshot": "2.3650",
     "closing_line": null,
     "outcome_label": "Lost",
     "pre_match": true,
     "proof": "/sources/wincomparator-com/products/a-equipe-wincomparator-prognosticos-brasileirao-serie-b/picks/4/#pick-n-babb3cd8dd32547678b4bd89",
     "original": null,
     "contradictory": false,
     "authorship": null,
     "source_type": "telegram_channels",
     "own_page": true,
     "trust_settled_count": 2135
    }
   ],
   "not_counted": [],
   "after_start": [],
   "forecaster_split": {
    "contracts": [
     {
      "contract_code": "1x2|*|match|*|*#explicit",
      "source_group": "explicit",
      "market_label": "1X2, match result",
      "market_key": "1x2",
      "choices": [
       {
        "code_name": "1",
        "in_words": "Vila Nova",
        "tips": [
         {
          "author_name": "Wincomparator",
          "entry_id": "n-babb3cd8dd32547678b4bd89",
          "outcome_label": "Lost",
          "source_group": "websites"
         }
        ],
        "figure": 1
       },
       {
        "code_name": "X",
        "in_words": "Draw",
        "tips": [],
        "figure": 0
       },
       {
        "code_name": "2",
        "in_words": "Juventude",
        "tips": [],
        "figure": 0
       }
      ],
      "n": 1,
      "publisher_count": 1
     }
    ],
    "author_count": 1,
    "below_threshold": {
     "prediction_count": 0,
     "author_count": 0
    },
    "limit": 10
   },
   "chain": null,
   "differing_choices": 0,
   "visible_who": 0,
   "newcomers_who": 1,
   "newcomers_before": 1,
   "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": {
   "favourite_code": "1",
   "favourite": "Vila Nova",
   "probabilities": [
    {
     "outcome_label": "1",
     "in_words": "Vila Nova",
     "percent_value": 40
    },
    {
     "outcome_label": "X",
     "in_words": "Draw",
     "percent_value": 32
    },
    {
     "outcome_label": "2",
     "in_words": "Juventude",
     "percent_value": 28
    }
   ],
   "prices": {
    "1": "2.32",
    "X": "2.86",
    "2": "3.32"
   },
   "group_count": 13,
   "bookmakers": 15,
   "snapshot_at": "2026-10-31T20:30:00.000Z",
   "closing_line": true,
   "first_at": "2026-10-27T02:47:18.621Z",
   "shift_pp": 1.4,
   "phrase": "The market has barely changed its mind since our first snapshot on 27 October 2026: Vila Nova 39% then, 40% at kick-off.",
   "technique": "Median across groups of bookmakers, without margin: brands on one platform count once (median within the group); betting exchanges and prediction markets are excluded. Market price from an odds aggregator; the data provider is not named.",
   "t24": {
    "snapshot_at": "2026-10-30T20:30:00.000Z",
    "probabilities": {
     "1": 39,
     "2": 29,
     "X": 32
    }
   },
   "t2": {
    "snapshot_at": "2026-10-31T18:30:00.000Z",
    "probabilities": {
     "1": 39,
     "2": 29,
     "X": 32
    }
   }
  },
  "market_mode": "show",
  "fact_sheet": {
   "tournament": "Brasileiro Série B (Brazil)",
   "matchday": "Matchweek 36",
   "starts_at": "2026-10-31T20:30:00.000Z",
   "form": {
    "home_side": [
     {
      "res": "L",
      "scoreline": "2-3",
      "opponent": "São Bernardo",
      "at_home": false,
      "data": "2026-10-24"
     },
     {
      "res": "D",
      "scoreline": "2-2",
      "opponent": "Novorizontino",
      "at_home": true,
      "data": "2026-10-18"
     },
     {
      "res": "W",
      "scoreline": "2-0",
      "opponent": "Náutico",
      "at_home": false,
      "data": "2026-10-11"
     },
     {
      "res": "D",
      "scoreline": "0-0",
      "opponent": "Cuiaba",
      "at_home": true,
      "data": "2026-10-08"
     },
     {
      "res": "W",
      "scoreline": "1-0",
      "opponent": "Botafogo SP",
      "at_home": false,
      "data": "2026-10-03"
     }
    ],
    "away": [
     {
      "res": "W",
      "scoreline": "4-0",
      "opponent": "Náutico",
      "at_home": true,
      "data": "2026-10-26"
     },
     {
      "res": "D",
      "scoreline": "2-2",
      "opponent": "Ceará",
      "at_home": false,
      "data": "2026-10-17"
     },
     {
      "res": "D",
      "scoreline": "2-2",
      "opponent": "São Bernardo",
      "at_home": true,
      "data": "2026-10-11"
     },
     {
      "res": "W",
      "scoreline": "2-0",
      "opponent": "Ponte Preta",
      "at_home": false,
      "data": "2026-10-07"
     },
     {
      "res": "W",
      "scoreline": "3-0",
      "opponent": "Operário PR",
      "at_home": true,
      "data": "2026-10-03"
     }
    ]
   },
   "head_to_head": [
    {
     "data": "2026-07-10",
     "match_list": "Juventude 1-0 Vila Nova",
     "event_id": "sm:19667268"
    }
   ],
   "past_cards": [],
   "reach": ""
  },
  "after_match": {
   "scoreline": "2-2",
   "fact_code": "X",
   "row_list": [
    "Match-result predictions from tipsters and sources with 10 or more predictions checked against the final score to date: 0 of 1 matched",
    "Most common selection among tipsters and sources with 10 or more predictions checked against the final score to date: Vila Nova (1 of 1), missed",
    "Market favourite at kick-off: Vila Nova (missed)"
   ],
   "by_group": {
    "websites": {
     "correct": 0,
     "of": 1
    }
   },
   "placement": null,
   "checks": []
  },
  "prices": [],
  "revisions": [
   "Market 24 hours before kick-off: Vila Nova 39%.",
   "Market 2 hours before kick-off: Vila Nova 39%.",
   "First published with predictions on 27 October 2026."
  ],
  "titles": {
   "shown": true,
   "legend": "Badges show titles earned before this prediction, by published rules.",
   "frozen_in": "sr-fe872d466e95caf27f346f9d"
  },
  "tracker": null,
  "source_groups": {
   "as_of": "2026-10-31T20: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": 1,
   "by_group": [
    {
     "key": "prediction_sites",
     "authors": 0
    },
    {
     "key": "media",
     "authors": 0
    },
    {
     "key": "telegram_channels",
     "authors": 1
    },
    {
     "key": "private_authors",
     "authors": 0
    }
   ],
   "markets": [
    {
     "key": "1x2",
     "label": "Match result",
     "authors": 1,
     "by_group": [
      {
       "key": "prediction_sites",
       "authors": 0
      },
      {
       "key": "media",
       "authors": 0
      },
      {
       "key": "telegram_channels",
       "authors": 1
      },
      {
       "key": "private_authors",
       "authors": 0
      }
     ],
     "choices": [
      {
       "code_name": "1",
       "in_words": "Vila Nova",
       "authors": 1,
       "by_group": [
        {
         "key": "prediction_sites",
         "authors": 0
        },
        {
         "key": "media",
         "authors": 0
        },
        {
         "key": "telegram_channels",
         "authors": 1
        },
        {
         "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": "Juventude",
       "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": "barely_moved",
   "line_frozen": true,
   "phrase": "Market line at kick-off (31 October 2026, 20:30 GMT): Vila Nova 40%, draw 32%, Juventude 28%. From 27 October 2026, 02:47 GMT to kick-off it barely moved: the largest change was 1.4 percentage points (Juventude down).",
   "line_markets": [
    {
     "market_text": "1X2, match result",
     "market_group": "1x2",
     "line_kind": "median_line",
     "margin_included": false,
     "snapshot_at": "2026-10-31T20:30:00.000Z",
     "closing_line": true,
     "probabilities": [
      {
       "outcome_label": "1",
       "in_words": "Vila Nova",
       "percent_value": 40
      },
      {
       "outcome_label": "X",
       "in_words": "Draw",
       "percent_value": 32
      },
      {
       "outcome_label": "2",
       "in_words": "Juventude",
       "percent_value": 28
      }
     ],
     "group_count": 13,
     "first_at": "2026-10-27T02:47:18.621Z",
     "first_probabilities": {
      "1": 39,
      "2": 29,
      "X": 32
     },
     "shift_pp": 1.4,
     "shift_outcome": "2",
     "shift_direction": "down",
     "line_state": "barely_moved",
     "phrase": "Market line at kick-off (31 October 2026, 20:30 GMT): Vila Nova 40%, draw 32%, Juventude 28%. From 27 October 2026, 02:47 GMT to kick-off it barely moved: the largest change was 1.4 percentage points (Juventude down)."
    }
   ]
  },
  "pre_kickoff_snapshot": {
   "frozen_before_kickoff": true,
   "as_of_moment": "2026-10-31T20:30:00.000Z",
   "starts_at": "2026-10-31T20:30:00.000Z",
   "phrase": "Before kick-off on 31 October 2026, 20:30 GMT: market line at kick-off Vila Nova 40%, draw 32%, Juventude 28%; 1X2, match result, recorded picks before the match (1): 1 on Vila Nova, 0 on the draw, 0 on Juventude.",
   "market_line_brief": {
    "snapshot_at": "2026-10-31T20:30:00.000Z",
    "closing_line": true,
    "probabilities": {
     "1": 40,
     "X": 32,
     "2": 28
    }
   },
   "market_groups": [
    {
     "market_group": "1x2",
     "group_markets": [
      {
       "market_text": "1X2, match result",
       "prediction_count": 1,
       "row_count": 1,
       "market_choices": [
        {
         "choice": "Vila Nova",
         "figure": 1
        }
       ],
       "phrase_mode": "listing",
       "leader_choice": null,
       "leader_count": null,
       "share_percent": 100,
       "phrase": "1X2, match result, recorded picks before the match (1): 1 on Vila Nova, 0 on the draw, 0 on Juventude",
       "sides_1x2": [
        {
         "side": "1",
         "in_words": "Vila Nova",
         "figure": 1
        },
        {
         "side": "X",
         "in_words": "draw",
         "figure": 0
        },
        {
         "side": "2",
         "in_words": "Juventude",
         "figure": 0
        }
       ]
      }
     ]
    }
   ],
   "predictions_before_kickoff": 1,
   "majority_threshold": {
    "min_predictions": 5,
    "min_share_percent": 60.0
   }
  },
  "teams_prev_next": [
   {
    "side": "home",
    "team": "Vila Nova",
    "team_url": null,
    "participant_id": "u-66ee67c4f9bc",
    "previous": {
     "kickoff": "2026-10-24T19:30:00.000Z",
     "name": "São Bernardo vs Vila Nova",
     "url": "/football/matches/sao-bernardo-vs-vila-nova-2026-10-24/",
     "competition": "Brasileiro Série B",
     "state": "played",
     "score": "3-2"
    },
    "next": {
     "kickoff": "2026-11-07T23:00:00.000Z",
     "name": "Vila Nova vs Criciuma",
     "url": "/football/matches/vila-nova-vs-criciuma-2026-11-07/",
     "competition": "Brasileiro Série B",
     "state": "upcoming",
     "score": null
    },
    "why": null
   },
   {
    "side": "away",
    "team": "Juventude",
    "team_url": null,
    "participant_id": "u-6675587dbe70",
    "previous": {
     "kickoff": "2026-10-26T23:30:00.000Z",
     "name": "Juventude vs Náutico",
     "url": "/football/matches/juventude-vs-nautico-2026-10-26/",
     "competition": "Brasileiro Série B",
     "state": "played",
     "score": "4-0"
    },
    "next": {
     "kickoff": "2026-11-07T23:00:00.000Z",
     "name": "Cuiaba vs Juventude",
     "url": "/football/matches/cuiaba-vs-juventude-2026-11-07/",
     "competition": "Brasileiro Série B",
     "state": "upcoming",
     "score": null
    },
    "why": null
   }
  ]
 },
 "number_sets": [
  {
   "set": "match.market_line.percent",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/|1x2|1",
   "value": 40,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.market_line.percent",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/|1x2|X",
   "value": 32,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.market_line.percent",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/|1x2|2",
   "value": 28,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.before_kickoff.market",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/|1X2, match result",
   "value": 1,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.before_kickoff.leader_share_percent",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/|1X2, match result",
   "value": 100,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.before_kickoff.selection",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/|1X2, match result|Vila Nova",
   "value": 1,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.before_kickoff.selection",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/|1X2, match result|draw",
   "value": 0,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.before_kickoff.selection",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/|1X2, match result|Juventude",
   "value": 0,
   "where": null,
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.other_forecasters",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/",
   "value": 1,
   "where": "new-forecasters",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.snapshot",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/",
   "value": 6,
   "where": "pre-match-record",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.snapshot.on_page",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/",
   "value": 1,
   "where": "pre-match-record",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.snapshot.left",
   "entity": "/football/matches/vila-nova-vs-juventude-2026-10-31/",
   "value": 5,
   "where": "pre-match-record",
   "as_of": "2026-11-07T19:52:23.438Z"
  }
 ],
 "data_changes": {
  "records_corrected": 0,
  "last_correction_at": null,
  "corrections_url": "/corrections/"
 },
 "entity_id": "event:s-95536db21100",
 "source_revision": 61,
 "title_short": {
  "length": 61,
  "names": [
   "Vila Nova",
   "Juventude"
  ],
  "title": null,
  "title_length": 61
 }
}
