{
 "schema_name": "page",
 "schema_version": "2.0",
 "page_type": "event",
 "url": "/football/matches/js-saoura-vs-js-kabylie-2026-11-21/",
 "canonical": "/football/matches/js-saoura-vs-js-kabylie-2026-11-21/",
 "language": "en",
 "hreflang": [],
 "translations": [],
 "heading": "JS Saoura vs JS Kabylie: tipsters, sources and their records",
 "description": "JS Saoura vs JS Kabylie, 21 November 2026 (Algeria Division 1): scheduled, kick-off 14:00 GMT.",
 "first_paragraph": {
  "body": "Forecast Record lists JS Saoura vs JS Kabylie (Algeria Division 1): scheduled, kick-off 21 November 2026, 14:00 GMT. 4 sources we monitor published predictions on Algeria Division 1 match in the last 30 days. Last round, Matches of 27 October 2026: 1 selection recorded before kick-off, 1 won.",
  "key_number": "1",
  "data": "2026-11-21",
  "source_info": "our match calendar and evidence archive",
  "brand": "Forecast Record"
 },
 "indexable": false,
 "noindex_reason": "map_gates",
 "indexing_threshold": {
  "settled_count": 0,
  "date_count": 0,
  "required_settled": 0,
  "required_dates": 0
 },
 "data_date": "2026-11-07T19:00:57.344Z",
 "built_at": "2026-11-07T19:52:23.438Z",
 "lastmod": "2026-11-08T02:12:33.000Z",
 "content_hash": null,
 "meaning_hash": "a011ff02a8fbeef8f3f282d68e54fbecd33a36e48fdcef0e03bd6a661e9eff91",
 "dependency_group": "event:s-ce148cc2d5a0",
 "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/js-saoura-vs-js-kabylie-2026-11-21/index.json",
   "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-ce148cc2d5a0",
  "display_name": "JS Saoura — JS Kabylie",
  "competition_name": "Algeria Division 1",
  "starts_at": "2026-11-21T14:00:00.000Z",
  "status": "scheduled",
  "scoreline": null,
  "condition": "scheduled",
  "condition_words": "scheduled",
  "result_received_at": null,
  "postponement": {
   "was": "5 November 2026 14:00 UTC",
   "now": "21 November 2026 14:00 UTC",
   "at": "2026-11-07T19:00:57.344Z"
  },
  "consensus": null,
  "country_name": "Algeria",
  "competition_full": "Algeria Division 1"
 },
 "evidence_items": [],
 "record_counts": {
  "dictionary_version": "1",
  "dictionary_url": "/methodology/#words",
  "statements": 0,
  "predictions": 0,
  "authors": 0,
  "statements_before_kickoff": 0,
  "settled_picks": 0,
  "duplicates": 0,
  "junk": 0
 },
 "match_summary": {
  "contract_version": "1",
  "final_score": null,
  "state_words": "scheduled",
  "distinct_predictions": 0,
  "sources": 0,
  "one_source": false,
  "sentence": "No prediction on this match has been recorded yet.",
  "who_predicted_what": [],
  "by_market": [],
  "found_after_kickoff": 0,
  "selections_before_kickoff": 0,
  "independent_sources": 0,
  "same_material_repeats": 0,
  "sources_list": [],
  "what_happened": null
 },
 "title_tag": "JS Saoura vs JS Kabylie: Tipster Coverage & Records — 21 Nov 2026",
 "snapshots": {
  "counting_rule": "1",
  "early": {
   "id": "sr-ea11bfc82064bd65cbe48104",
   "type_code": "early",
   "moment_at": "2026-11-04T11:02:57.156Z",
   "freeze_at": "2026-11-04T11:02:57.156Z",
   "approach": "at_the_time",
   "methodology_version": "2.2",
   "counting_rule": "1",
   "figures": {
    "chain": {
     "admissible": 1,
     "publications": 1,
     "comparable": 1,
     "unique": 1,
     "contributions": 1
    },
    "group_list": [
     {
      "phrase": "Over/Under 2.5 goals — Most common recorded selection: under 2.5 (1 of 1 eligible)",
      "source_group": "total|2.5|match|*|*#explicit",
      "leader": "under",
      "n": 1,
      "market_label": "Over/Under 2.5 goals",
      "row_list": [
       {
        "figure": 1,
        "in_words": "under 2.5",
        "choice": "under"
       }
      ]
     }
    ],
    "counting_rule": "1",
    "different_products": 0,
    "differing_choices": 0,
    "not_counted": 0
   },
   "composition": [
    "n-e877fca32a6a5c04ede0ef30"
   ],
   "hash": "c5220c233f8c9f16e23be5fcca21470eb48243d06156ab46a97615b20cbb585b"
  },
  "closing_line": {
   "id": "sr-9f052a045ee438145671c11e",
   "type_code": "closing_price",
   "moment_at": "2026-11-05T14:00:00.000Z",
   "freeze_at": "2026-11-05T14:19:48.338Z",
   "approach": "by_capture_time",
   "methodology_version": "2.2",
   "counting_rule": "1",
   "figures": {
    "chain": {
     "admissible": 2,
     "publications": 3,
     "comparable": 2,
     "unique": 2,
     "contributions": 2
    },
    "group_list": [
     {
      "phrase": "Over/Under 2.5 goals — Most common recorded selection: under 2.5 (2 of 2 eligible)",
      "source_group": "total|2.5|match|*|*#explicit",
      "leader": "under",
      "n": 2,
      "market_label": "Over/Under 2.5 goals",
      "row_list": [
       {
        "figure": 2,
        "in_words": "under 2.5",
        "choice": "under"
       }
      ]
     }
    ],
    "counting_rule": "1",
    "different_products": 0,
    "differing_choices": 0,
    "not_counted": 0
   },
   "composition": [
    "n-5668eba0d2de7c10de4bd2f9",
    "n-d00214671ab10a237fa14c02",
    "n-e877fca32a6a5c04ede0ef30"
   ],
   "hash": "8cb7204d2d1f76491ccab9af9f21ec206fdd71a5312e270bd6e12ff1aea9488d"
  },
  "author_rows": [
   {
    "id": "sr-de64ba8cb64997ea7b5ae475",
    "type_code": "author_before_match",
    "moment_at": "2026-11-05T14:00:00.000Z",
    "freeze_at": "2026-11-05T14:19:48.338Z",
    "approach": "by_capture_time",
    "methodology_version": "2.2",
    "counting_rule": "1",
    "figures": {
     "matches": 10,
     "method_version": "2.2",
     "net_points_hundredths": -16895,
     "period_from": "2026-10-22",
     "period_to": "2026-11-02",
     "price_rule": "Our market snapshot",
     "return_percent": "-16.89",
     "settled_picks": 10,
     "staked_hundredths": 100000,
     "void": 0
    },
    "composition": [
     "c|s-1215c796ece7|r-5c978d79d4d7313e|v-18e8c60c5e1dd6ad",
     "c|s-32a81e9a0b0a|r-d61da29df3894949|v-adbb74dc7735e836",
     "c|s-4727b7e31034|r-dde8a908c060e991|v-1b9a48bf2e9e5170",
     "c|s-5fbdfb317815|r-8f2b949b7ef1a4e7|v-f3386d3a1537e2b0",
     "c|s-8073dcafabb3|r-2c6ad02ee565ca65|v-c9edb7211da2776d",
     "c|s-c68b1684a6b4|r-9fb88952c2c95452|v-ae84453dcdbd6dc2",
     "c|s-de04821d4496|r-b57df83954a5b5e5|v-9a7d4555bcd1fb40",
     "c|s-e2a5e6ce6883|r-bdb5d1f77d181431|v-37cd691c01ba4e99",
     "c|s-e913fd39e164|r-e02fdc2c4add2f41|v-e6201cfe10ba1a5c",
     "c|s-fb9f2443b067|r-4b45e3f2aa5ae2f5|v-e70516d5fbd98e8e"
    ],
    "hash": "c2aac20471e31daab06e005527a8edbea8dc91dac8bcbe0d4351aec3f15b0736",
    "entity_ref": "e-2b9330fa6c5214f61c73c6e3",
    "name_shown": "wetttipps-heute.com",
    "url": "/sources/wetttipps-heute-com/"
   },
   {
    "id": "sr-58f15201301964230f659558",
    "type_code": "author_before_match",
    "moment_at": "2026-11-05T14:00:00.000Z",
    "freeze_at": "2026-11-05T14:19:48.338Z",
    "approach": "by_capture_time",
    "methodology_version": "2.2",
    "counting_rule": "1",
    "figures": {
     "matches": 3,
     "method_version": "2.2",
     "net_points_hundredths": -15556,
     "period_from": "2026-10-24",
     "period_to": "2026-10-24",
     "price_rule": "Our market snapshot",
     "return_percent": "-51.85",
     "settled_picks": 3,
     "staked_hundredths": 30000,
     "void": 0
    },
    "composition": [
     "c|s-4e6b6009395a|r-85497a8427471911|v-c7b04dcd8a6bd121",
     "c|s-7d09ca90ea91|r-662bc55b91e0f038|v-8b998956b041e737",
     "c|s-ef6c75e8191d|r-821af448a20ba48c|v-a118160ce9c64aae"
    ],
    "hash": "1f76655d5581b6934b4087ad4abd73688eeadd2c7f6730d87565cb97f352c6ac",
    "entity_ref": "e-8b89f2f0f7e8128630bb595b",
    "name_shown": "Tristan",
    "url": "/authors/tristan/"
   }
  ],
  "late_additions": null,
  "chips": {
   "id": "sr-6b906d85f0eebf5f00ba077b",
   "type_code": "chips",
   "moment_at": "2026-11-05T14:00:00.000Z",
   "freeze_at": "2026-11-05T14:19:48.338Z",
   "approach": "by_capture_time",
   "methodology_version": "2.2",
   "counting_rule": "1",
   "figures": {
    "chips": {
     "n-5668eba0d2de7c10de4bd2f9": [],
     "n-d00214671ab10a237fa14c02": [],
     "n-e877fca32a6a5c04ede0ef30": []
    },
    "in_catalog": "1"
   },
   "composition": [
    "n-5668eba0d2de7c10de4bd2f9",
    "n-d00214671ab10a237fa14c02",
    "n-e877fca32a6a5c04ede0ef30"
   ],
   "hash": "23a274151cdc20fe1b08fab415f6b05438848787aca6abcd339aeadfe7a9b698"
  }
 },
 "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": [],
   "started": false,
   "facts_only": true,
   "counted_predictions": 0,
   "counted_sources": 0
  },
  "gates_words": "Not open to search: fewer than 3 counted predictions from 3 different sources",
  "created_from": "calendar",
  "prediction_count": 0,
  "publisher_count": 0,
  "forecaster_count": 0,
  "newcomer_count": 0,
  "competition_authors": [],
  "competition_authors_total": 0,
  "competition_authors_10": 0,
  "full": false,
  "facts_only": true,
  "checked_count": null,
  "window": {
   "d_minus_14_at": "2026-11-07T14:00:00.000Z",
   "d_minus_3_at": "2026-11-18T14:00: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": [],
   "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": "Algeria Division 1",
   "matchday": null,
   "starts_at": "2026-11-21T14:00:00.000Z",
   "form": {
    "home_side": [
     {
      "res": "L",
      "scoreline": "0-1",
      "opponent": "CR Belouizdad",
      "at_home": false,
      "data": "2026-11-02"
     },
     {
      "res": "D",
      "scoreline": "0-0",
      "opponent": "ES Ben Aknoun",
      "at_home": true,
      "data": "2026-10-24"
     },
     {
      "res": "L",
      "scoreline": "0-1",
      "opponent": "MB Rouissat",
      "at_home": false,
      "data": "2026-10-18"
     },
     {
      "res": "L",
      "scoreline": "0-1",
      "opponent": "USM Alger",
      "at_home": false,
      "data": "2026-10-13"
     },
     {
      "res": "D",
      "scoreline": "0-0",
      "opponent": "Olympique Akbou",
      "at_home": true,
      "data": "2026-10-08"
     }
    ],
    "away": [
     {
      "res": "D",
      "scoreline": "0-0",
      "opponent": "Olympique Akbou",
      "at_home": false,
      "data": "2026-11-07"
     },
     {
      "res": "W",
      "scoreline": "1-0",
      "opponent": "JS El Biar",
      "at_home": true,
      "data": "2026-10-30"
     },
     {
      "res": "W",
      "scoreline": "3-0",
      "opponent": "USM Khenchela",
      "at_home": false,
      "data": "2026-10-24"
     },
     {
      "res": "W",
      "scoreline": "4-1",
      "opponent": "US Biskra",
      "at_home": true,
      "data": "2026-10-18"
     },
     {
      "res": "D",
      "scoreline": "1-1",
      "opponent": "ES Setif",
      "at_home": false,
      "data": "2026-10-14"
     }
    ]
   },
   "head_to_head": [],
   "past_cards": [],
   "reach": ""
  },
  "after_match": null,
  "prices": [],
  "revisions": [
   "First published with predictions on 4 November 2026."
  ],
  "titles": {
   "shown": true,
   "legend": "Badges show titles earned before this prediction, by published rules.",
   "frozen_in": "sr-9f052a045ee438145671c11e"
  },
  "tracker": null,
  "source_groups": {
   "as_of": "2026-11-21T14:00: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": "JS Saoura",
       "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": "JS Kabylie",
       "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": false,
   "phrase": null,
   "line_markets": []
  },
  "pre_kickoff_snapshot": {
   "frozen_before_kickoff": false,
   "as_of_moment": "2026-11-07T19:52:23.438Z",
   "starts_at": "2026-11-21T14:00: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": "JS Saoura",
    "team_url": null,
    "participant_id": "u-18a936a2333d",
    "previous": {
     "kickoff": "2026-11-19T14:00:00.000Z",
     "name": "MC Alger vs JS Saoura",
     "url": "/football/matches/mc-alger-vs-js-saoura-2026-11-19/",
     "competition": "Algeria Division 1",
     "state": "upcoming",
     "score": null
    },
    "next": null,
    "why": null
   },
   {
    "side": "away",
    "team": "JS Kabylie",
    "team_url": null,
    "participant_id": "u-0372da2917f6",
    "previous": {
     "kickoff": "2026-11-19T14:00:00.000Z",
     "name": "JS Kabylie vs ES Ben Aknoun",
     "url": "/football/matches/js-kabylie-vs-es-ben-aknoun-2026-11-19/",
     "competition": "Algeria Division 1",
     "state": "upcoming",
     "score": null
    },
    "next": null,
    "why": null
   }
  ],
  "competition_timing": {
   "phrase": null,
   "source_list": "4 sources we monitor published predictions on Algeria Division 1 matches in the last 30 days",
   "matchday": "Matches of 27 October 2026: 1 selection recorded before kick-off, 1 won",
   "in_first_paragraph": true,
   "url": "/football/competitions/algeria-division-1/#previous-round",
   "tournament": "Algeria Division 1"
  }
 },
 "data_changes": {
  "records_corrected": 0,
  "last_correction_at": null,
  "corrections_url": "/corrections/"
 },
 "entity_id": "event:s-ce148cc2d5a0",
 "source_revision": 26,
 "title_short": {
  "length": 65,
  "names": [
   "JS Saoura",
   "JS Kabylie"
  ],
  "title": null,
  "title_length": 65
 },
 "number_sets": [
  {
   "set": "match.snapshot",
   "entity": "/football/matches/js-saoura-vs-js-kabylie-2026-11-21/",
   "value": 3,
   "where": "pre-match-record",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.snapshot.on_page",
   "entity": "/football/matches/js-saoura-vs-js-kabylie-2026-11-21/",
   "value": 0,
   "where": "pre-match-record",
   "as_of": "2026-11-07T19:52:23.438Z"
  },
  {
   "set": "match.snapshot.left",
   "entity": "/football/matches/js-saoura-vs-js-kabylie-2026-11-21/",
   "value": 3,
   "where": "pre-match-record",
   "as_of": "2026-11-07T19:52:23.438Z"
  }
 ]
}
