{
  "metadata": {
    "season": "2026",
    "generated_at": "2026-10-03T10:44:53Z",
    "source": "Cricsheet",
    "source_url": "https://cricsheet.org/",
    "source_license": "ODC-By 1.0",
    "source_license_url": "https://opendatacommons.org/licenses/by/1-0/",
    "data_freshness_status": "fresh",
    "season_status": "complete",
    "warnings": [],
    "notes": [
      "Sunrisers Eastern Cape v Joburg Super Kings (2026-01-03): Abandoned without a ball bowled (rain)",
      "Durban's Super Giants v Pretoria Capitals (2026-01-03): Abandoned without a ball bowled (rain)",
      "Durban's Super Giants v Sunrisers Eastern Cape (2026-01-09): Abandoned without a ball bowled (rain)"
    ]
  },
  "league": {
    "id": "sa20-2025-26",
    "name": "SA20",
    "shortName": "SA20",
    "season": "2025/26",
    "seasonLabel": "2026",
    "matchesPerTeam": 10,
    "qualification": [
      {
        "size": 4,
        "label": "Top 4"
      },
      {
        "size": 2,
        "label": "Top 2"
      }
    ],
    "secondChanceStages": [
      "Qualifier 1"
    ],
    "points": {
      "win": 4,
      "noResult": 2,
      "tie": 2,
      "bonus": true
    },
    "teams": [
      {
        "key": "SEC",
        "shortName": "SEC",
        "fullName": "Sunrisers Eastern Cape",
        "color": "#F26522",
        "textColor": "#FFFFFF"
      },
      {
        "key": "PC",
        "shortName": "PC",
        "fullName": "Pretoria Capitals",
        "color": "#2561AE",
        "textColor": "#FFFFFF"
      },
      {
        "key": "PR",
        "shortName": "PR",
        "fullName": "Paarl Royals",
        "color": "#E5007E",
        "textColor": "#FFFFFF"
      },
      {
        "key": "JSK",
        "shortName": "JSK",
        "fullName": "Joburg Super Kings",
        "color": "#F9CD05",
        "textColor": "#000000"
      },
      {
        "key": "DSG",
        "shortName": "DSG",
        "fullName": "Durban's Super Giants",
        "color": "#0057E2",
        "textColor": "#FFFFFF"
      },
      {
        "key": "MICT",
        "shortName": "MICT",
        "fullName": "MI Cape Town",
        "color": "#004B8D",
        "textColor": "#FFFFFF"
      }
    ]
  },
  "standings": [
    {
      "teamKey": "SEC",
      "shortName": "SEC",
      "fullName": "Sunrisers Eastern Cape",
      "matches": 10,
      "wins": 5,
      "losses": 3,
      "noResult": 2,
      "ties": 0,
      "bonusPoints": 4,
      "points": 28,
      "nrr": 1.762,
      "rank": 1,
      "remainingMatches": 0
    },
    {
      "teamKey": "PC",
      "shortName": "PC",
      "fullName": "Pretoria Capitals",
      "matches": 10,
      "wins": 5,
      "losses": 4,
      "noResult": 1,
      "ties": 0,
      "bonusPoints": 2,
      "points": 24,
      "nrr": 0.218,
      "rank": 2,
      "remainingMatches": 0
    },
    {
      "teamKey": "PR",
      "shortName": "PR",
      "fullName": "Paarl Royals",
      "matches": 10,
      "wins": 5,
      "losses": 4,
      "noResult": 1,
      "ties": 0,
      "bonusPoints": 2,
      "points": 24,
      "nrr": -0.922,
      "rank": 3,
      "remainingMatches": 0
    },
    {
      "teamKey": "JSK",
      "shortName": "JSK",
      "fullName": "Joburg Super Kings",
      "matches": 10,
      "wins": 4,
      "losses": 4,
      "noResult": 2,
      "ties": 0,
      "bonusPoints": 2,
      "points": 22,
      "nrr": 0.045,
      "rank": 4,
      "remainingMatches": 0
    },
    {
      "teamKey": "DSG",
      "shortName": "DSG",
      "fullName": "Durban's Super Giants",
      "matches": 10,
      "wins": 3,
      "losses": 4,
      "noResult": 3,
      "ties": 0,
      "bonusPoints": 1,
      "points": 19,
      "nrr": -0.068,
      "rank": 5,
      "remainingMatches": 0
    },
    {
      "teamKey": "MICT",
      "shortName": "MICT",
      "fullName": "MI Cape Town",
      "matches": 10,
      "wins": 3,
      "losses": 6,
      "noResult": 1,
      "ties": 0,
      "bonusPoints": 0,
      "points": 14,
      "nrr": -1.013,
      "rank": 6,
      "remainingMatches": 0
    }
  ],
  "fixtures": [],
  "playoffs": {
    "matches": [
      {
        "id": "1494283",
        "stage": "Qualifier 1",
        "date": "2026-01-21",
        "teamA": "SEC",
        "teamB": "PC",
        "winner": "PC",
        "result": "PC won by 7 wickets",
        "venue": "Kingsmead, Durban"
      },
      {
        "id": "1494284",
        "stage": "Eliminator",
        "date": "2026-01-22",
        "teamA": "PR",
        "teamB": "JSK",
        "winner": "PR",
        "result": "PR won by 36 runs",
        "venue": "SuperSport Park, Centurion"
      },
      {
        "id": "1494285",
        "stage": "Qualifier 2",
        "date": "2026-01-23",
        "teamA": "PR",
        "teamB": "SEC",
        "winner": "SEC",
        "result": "SEC won by 7 wickets",
        "venue": "The Wanderers Stadium, Johannesburg"
      },
      {
        "id": "1494286",
        "stage": "Final",
        "date": "2026-01-25",
        "teamA": "PC",
        "teamB": "SEC",
        "winner": "SEC",
        "result": "SEC won by 6 wickets",
        "venue": "Newlands, Cape Town"
      }
    ],
    "champion": "SEC",
    "runnerUp": "PC"
  },
  "analysis": {
    "method": "Final standings",
    "simulationCount": 1,
    "generatedAt": "2026-10-03T10:44:53Z",
    "stateCount": 1,
    "modelNotes": [
      "The league stage is complete, so qualification is decided by the final table: points, then net run rate."
    ],
    "overallProbabilities": {
      "SEC": {
        "top4": 100.0,
        "top4Clear": 100.0,
        "top4Possible": 100.0,
        "top2": 100.0,
        "top2Clear": 100.0,
        "top2Possible": 100.0
      },
      "PC": {
        "top4": 100.0,
        "top4Clear": 100.0,
        "top4Possible": 100.0,
        "top2": 100.0,
        "top2Clear": 100.0,
        "top2Possible": 100.0
      },
      "PR": {
        "top4": 100.0,
        "top4Clear": 100.0,
        "top4Possible": 100.0,
        "top2": 0.0,
        "top2Clear": 0.0,
        "top2Possible": 0.0
      },
      "JSK": {
        "top4": 100.0,
        "top4Clear": 100.0,
        "top4Possible": 100.0,
        "top2": 0.0,
        "top2Clear": 0.0,
        "top2Possible": 0.0
      },
      "DSG": {
        "top4": 0.0,
        "top4Clear": 0.0,
        "top4Possible": 0.0,
        "top2": 0.0,
        "top2Clear": 0.0,
        "top2Possible": 0.0
      },
      "MICT": {
        "top4": 0.0,
        "top4Clear": 0.0,
        "top4Possible": 0.0,
        "top2": 0.0,
        "top2Clear": 0.0,
        "top2Possible": 0.0
      }
    },
    "teamAnalysis": {
      "4": {
        "SEC": {
          "percentage": 100.0,
          "results_df": {}
        },
        "PC": {
          "percentage": 100.0,
          "results_df": {}
        },
        "PR": {
          "percentage": 100.0,
          "results_df": {}
        },
        "JSK": {
          "percentage": 100.0,
          "results_df": {}
        },
        "DSG": {
          "percentage": 0.0,
          "results_df": {}
        },
        "MICT": {
          "percentage": 0.0,
          "results_df": {}
        }
      },
      "2": {
        "SEC": {
          "percentage": 100.0,
          "results_df": {}
        },
        "PC": {
          "percentage": 100.0,
          "results_df": {}
        },
        "PR": {
          "percentage": 0.0,
          "results_df": {}
        },
        "JSK": {
          "percentage": 0.0,
          "results_df": {}
        },
        "DSG": {
          "percentage": 0.0,
          "results_df": {}
        },
        "MICT": {
          "percentage": 0.0,
          "results_df": {}
        }
      }
    },
    "qualificationPath": {
      "4": {
        "SEC": {
          "possible": 0,
          "likely": 0,
          "guaranteed": 0,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        },
        "PC": {
          "possible": 0,
          "likely": 0,
          "guaranteed": 0,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        },
        "PR": {
          "possible": 0,
          "likely": 0,
          "guaranteed": 0,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        },
        "JSK": {
          "possible": 0,
          "likely": 0,
          "guaranteed": 0,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        },
        "DSG": {
          "possible": null,
          "likely": null,
          "guaranteed": null,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        },
        "MICT": {
          "possible": null,
          "likely": null,
          "guaranteed": null,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        }
      },
      "2": {
        "SEC": {
          "possible": 0,
          "likely": 0,
          "guaranteed": 0,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        },
        "PC": {
          "possible": 0,
          "likely": 0,
          "guaranteed": 0,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        },
        "PR": {
          "possible": null,
          "likely": null,
          "guaranteed": null,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        },
        "JSK": {
          "possible": null,
          "likely": null,
          "guaranteed": null,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        },
        "DSG": {
          "possible": null,
          "likely": null,
          "guaranteed": null,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        },
        "MICT": {
          "possible": null,
          "likely": null,
          "guaranteed": null,
          "target_matches": 0,
          "method": "Final standings",
          "ownWinBuckets": [],
          "fixtureImpacts": [],
          "nextFixtureImpacts": [],
          "impactFixtureWindow": 0
        }
      }
    },
    "scenarioBreakdown": {
      "4": {
        "SEC": {
          "clearRate": 100.0,
          "possibleRate": 100.0,
          "sharedTieAdjustedRate": 100.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        },
        "PC": {
          "clearRate": 100.0,
          "possibleRate": 100.0,
          "sharedTieAdjustedRate": 100.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        },
        "PR": {
          "clearRate": 100.0,
          "possibleRate": 100.0,
          "sharedTieAdjustedRate": 100.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        },
        "JSK": {
          "clearRate": 100.0,
          "possibleRate": 100.0,
          "sharedTieAdjustedRate": 100.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        },
        "DSG": {
          "clearRate": 0.0,
          "possibleRate": 0.0,
          "sharedTieAdjustedRate": 0.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        },
        "MICT": {
          "clearRate": 0.0,
          "possibleRate": 0.0,
          "sharedTieAdjustedRate": 0.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        }
      },
      "2": {
        "SEC": {
          "clearRate": 100.0,
          "possibleRate": 100.0,
          "sharedTieAdjustedRate": 100.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        },
        "PC": {
          "clearRate": 100.0,
          "possibleRate": 100.0,
          "sharedTieAdjustedRate": 100.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        },
        "PR": {
          "clearRate": 0.0,
          "possibleRate": 0.0,
          "sharedTieAdjustedRate": 0.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        },
        "JSK": {
          "clearRate": 0.0,
          "possibleRate": 0.0,
          "sharedTieAdjustedRate": 0.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        },
        "DSG": {
          "clearRate": 0.0,
          "possibleRate": 0.0,
          "sharedTieAdjustedRate": 0.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        },
        "MICT": {
          "clearRate": 0.0,
          "possibleRate": 0.0,
          "sharedTieAdjustedRate": 0.0,
          "ownWinBuckets": [],
          "fixtureImpacts": []
        }
      }
    }
  }
}
