{
  "canonical_id": "charlie-dennis",
  "canonical_name": "Charlie Dennis",
  "positions": [
    "CM"
  ],
  "leagues": [
    "USL1"
  ],
  "sport_names": [],
  "ambiguous": false,
  "appearances": [
    {
      "id": 1502224,
      "full_name": "Charlie Dennis",
      "team": "",
      "position": "CM",
      "sport_id": null,
      "league": "USL1",
      "jersey": null,
      "college": null,
      "college_stats": null,
      "height": "6'2\"",
      "weight": "181",
      "college_full": null
    },
    {
      "id": 1505086,
      "full_name": "Charlie Dennis",
      "team": "",
      "position": "",
      "sport_id": null,
      "league": "USLC",
      "jersey": null,
      "college": null,
      "college_stats": null,
      "height": null,
      "weight": null,
      "college_full": null
    }
  ],
  "career_totals": {
    "minutes_played": 15177.0,
    "shots": 318.0,
    "shots_on_target": 104.0,
    "goals": 40.0,
    "xg": 33.527699999999996,
    "xg_place": -0.14680000000000004,
    "goals_minus_xg": 6.472300000000001,
    "key_passes": 322.0,
    "assists": 26.0,
    "xa": 34.3082,
    "assists_minus_xa": -8.3082,
    "goals_plus_assists": 66.0,
    "xg_plus_xa": 67.83589999999998,
    "points_added": 18.307199999999998,
    "xpoints_added": 18.1518,
    "passes_attempted": 6974.0,
    "pass_completion_pct": 6.5815,
    "xpass_completion_pct": 6.589699999999999,
    "passes_over_expected": -12.2611,
    "passes_over_expected_p100": -0.8272999999999997,
    "avg_pass_distance": 201.80560000000003,
    "avg_pass_vertical": 27.199099999999998
  },
  "season_totals": {
    "USL1-2019": {
      "minutes_played": 2369.0,
      "shots": 46.0,
      "shots_on_target": 11.0,
      "goals": 3.0,
      "xg": 3.4033,
      "xg_place": -0.9454,
      "goals_minus_xg": -0.4033,
      "key_passes": 51.0,
      "assists": 3.0,
      "xa": 5.7044,
      "assists_minus_xa": -2.7044,
      "goals_plus_assists": 6.0,
      "xg_plus_xa": 9.1078,
      "points_added": 0.9528,
      "xpoints_added": 2.0488,
      "passes_attempted": 1102.0,
      "pass_completion_pct": 0.7196,
      "xpass_completion_pct": 0.7259,
      "passes_over_expected": -6.9269,
      "passes_over_expected_p100": -0.6286,
      "avg_pass_distance": 19.5999,
      "avg_pass_vertical": 1.6712
    },
    "USL1-2020": {
      "minutes_played": 1278.0,
      "shots": 28.0,
      "shots_on_target": 5.0,
      "goals": 0.0,
      "xg": 1.5131,
      "xg_place": -1.1438,
      "goals_minus_xg": -1.5131,
      "key_passes": 35.0,
      "assists": 5.0,
      "xa": 3.6608,
      "assists_minus_xa": 1.3392,
      "goals_plus_assists": 5.0,
      "xg_plus_xa": 5.174,
      "points_added": 0.0,
      "xpoints_added": 0.7957,
      "passes_attempted": 624.0,
      "pass_completion_pct": 0.7612,
      "xpass_completion_pct": 0.7679,
      "passes_over_expected": -4.1748,
      "passes_over_expected_p100": -0.669,
      "avg_pass_distance": 22.3109,
      "avg_pass_vertical": 4.0731
    },
    "USL1-2021": {
      "minutes_played": 2076.0,
      "shots": 46.0,
      "shots_on_target": 18.0,
      "goals": 10.0,
      "xg": 5.8191,
      "xg_place": 1.8014,
      "goals_minus_xg": 4.1809,
      "key_passes": 44.0,
      "assists": 8.0,
      "xa": 3.7608,
      "assists_minus_xa": 4.2392,
      "goals_plus_assists": 18.0,
      "xg_plus_xa": 9.5799,
      "points_added": 5.4753,
      "xpoints_added": 3.4063,
      "passes_attempted": 962.0,
      "pass_completion_pct": 0.738,
      "xpass_completion_pct": 0.7413,
      "passes_over_expected": -3.1153,
      "passes_over_expected_p100": -0.3238,
      "avg_pass_distance": 24.2648,
      "avg_pass_vertical": 5.796
    },
    "USLC-2022": {
      "minutes_played": 2547.0,
      "shots": 49.0,
      "shots_on_target": 13.0,
      "goals": 4.0,
      "xg": 3.9619,
      "xg_place": -0.3888,
      "goals_minus_xg": 0.0381,
      "key_passes": 56.0,
      "assists": 2.0,
      "xa": 6.5629,
      "assists_minus_xa": -4.5629,
      "goals_plus_assists": 6.0,
      "xg_plus_xa": 10.5248,
      "points_added": 2.6415,
      "xpoints_added": 2.3938,
      "passes_attempted": 1228.0,
      "pass_completion_pct": 0.7003,
      "xpass_completion_pct": 0.7067,
      "passes_over_expected": -7.8766,
      "passes_over_expected_p100": -0.6414,
      "avg_pass_distance": 24.026,
      "avg_pass_vertical": 3.7358
    },
    "USLC-2023": {
      "minutes_played": 2820.0,
      "shots": 63.0,
      "shots_on_target": 25.0,
      "goals": 11.0,
      "xg": 8.6511,
      "xg_place": 0.788,
      "goals_minus_xg": 2.3489,
      "key_passes": 61.0,
      "assists": 3.0,
      "xa": 5.9615,
      "assists_minus_xa": -2.9615,
      "goals_plus_assists": 14.0,
      "xg_plus_xa": 14.6126,
      "points_added": 3.9859,
      "xpoints_added": 4.8928,
      "passes_attempted": 1272.0,
      "pass_completion_pct": 0.7744,
      "xpass_completion_pct": 0.7679,
      "passes_over_expected": 8.1894,
      "passes_over_expected_p100": 0.6438,
      "avg_pass_distance": 23.1906,
      "avg_pass_vertical": 2.2786
    },
    "USLC-2024": {
      "minutes_played": 1888.0,
      "shots": 38.0,
      "shots_on_target": 14.0,
      "goals": 3.0,
      "xg": 3.6664000000000003,
      "xg_place": -0.9642999999999999,
      "goals_minus_xg": -0.6663999999999999,
      "key_passes": 43.0,
      "assists": 2.0,
      "xa": 4.8571,
      "assists_minus_xa": -2.8571,
      "goals_plus_assists": 5.0,
      "xg_plus_xa": 8.5234,
      "points_added": 0.8417,
      "xpoints_added": 1.9405999999999999,
      "passes_attempted": 893.0,
      "pass_completion_pct": 1.5631,
      "xpass_completion_pct": 1.4945,
      "passes_over_expected": 25.7288,
      "passes_over_expected_p100": 6.8604,
      "avg_pass_distance": 45.401300000000006,
      "avg_pass_vertical": 4.3034
    },
    "USLC-2025": {
      "minutes_played": 1553.0,
      "shots": 32.0,
      "shots_on_target": 15.0,
      "goals": 8.0,
      "xg": 4.1804,
      "xg_place": 1.8121,
      "goals_minus_xg": 3.8196,
      "key_passes": 25.0,
      "assists": 2.0,
      "xa": 2.5888,
      "assists_minus_xa": -0.5888,
      "goals_plus_assists": 10.0,
      "xg_plus_xa": 6.7691,
      "points_added": 4.3444,
      "xpoints_added": 1.8,
      "passes_attempted": 620.0,
      "pass_completion_pct": 0.6839,
      "xpass_completion_pct": 0.7055,
      "passes_over_expected": -13.4333,
      "passes_over_expected_p100": -2.1667,
      "avg_pass_distance": 22.2405,
      "avg_pass_vertical": 2.4349
    },
    "USLC-2026": {
      "minutes_played": 646.0,
      "shots": 16.0,
      "shots_on_target": 3.0,
      "goals": 1.0,
      "xg": 2.3324,
      "xg_place": -1.106,
      "goals_minus_xg": -1.3324,
      "key_passes": 7.0,
      "assists": 1.0,
      "xa": 1.2119,
      "assists_minus_xa": -0.2119,
      "goals_plus_assists": 2.0,
      "xg_plus_xa": 3.5443,
      "points_added": 0.0656,
      "xpoints_added": 0.8738,
      "passes_attempted": 273.0,
      "pass_completion_pct": 0.641,
      "xpass_completion_pct": 0.68,
      "passes_over_expected": -10.6524,
      "passes_over_expected_p100": -3.902,
      "avg_pass_distance": 20.7716,
      "avg_pass_vertical": 2.9061
    }
  },
  "season_coaches": {},
  "game_log": [
    {
      "game_id": "soccer-usl1-2019-gOMna8JQwN",
      "game_slug": "soccer-usl1-2019-gomna8jqwn",
      "display": "USL1 2019 Season",
      "season": 2019,
      "week": 1,
      "league": "USL1",
      "sport_slug": "usl1-2019",
      "away_team": "",
      "home_team": "",
      "date_str": "",
      "score_home": "",
      "score_away": "",
      "stats": {
        "minutes_played": 2369.0,
        "shots": 46.0,
        "shots_on_target": 11.0,
        "goals": 3.0,
        "xg": 3.4033,
        "xg_place": -0.9454,
        "goals_minus_xg": -0.4033,
        "key_passes": 51.0,
        "assists": 3.0,
        "xa": 5.7044,
        "assists_minus_xa": -2.7044,
        "goals_plus_assists": 6.0,
        "xg_plus_xa": 9.1078,
        "points_added": 0.9528,
        "xpoints_added": 2.0488,
        "passes_attempted": 1102.0,
        "pass_completion_pct": 0.7196,
        "xpass_completion_pct": 0.7259,
        "passes_over_expected": -6.9269,
        "passes_over_expected_p100": -0.6286,
        "avg_pass_distance": 19.5999,
        "avg_pass_vertical": 1.6712
      }
    },
    {
      "game_id": "soccer-usl1-2020-4wM4Z04qjB",
      "game_slug": "soccer-usl1-2020-4wm4z04qjb",
      "display": "USL1 2020 Season",
      "season": 2020,
      "week": 1,
      "league": "USL1",
      "sport_slug": "usl1-2020",
      "away_team": "",
      "home_team": "",
      "date_str": "",
      "score_home": "",
      "score_away": "",
      "stats": {
        "minutes_played": 1278.0,
        "shots": 28.0,
        "shots_on_target": 5.0,
        "goals": 0.0,
        "xg": 1.5131,
        "xg_place": -1.1438,
        "goals_minus_xg": -1.5131,
        "key_passes": 35.0,
        "assists": 5.0,
        "xa": 3.6608,
        "assists_minus_xa": 1.3392,
        "goals_plus_assists": 5.0,
        "xg_plus_xa": 5.174,
        "points_added": 0.0,
        "xpoints_added": 0.7957,
        "passes_attempted": 624.0,
        "pass_completion_pct": 0.7612,
        "xpass_completion_pct": 0.7679,
        "passes_over_expected": -4.1748,
        "passes_over_expected_p100": -0.669,
        "avg_pass_distance": 22.3109,
        "avg_pass_vertical": 4.0731
      }
    },
    {
      "game_id": "soccer-usl1-2021-4wM4Z04qjB",
      "game_slug": "soccer-usl1-2021-4wm4z04qjb",
      "display": "USL1 2021 Season",
      "season": 2021,
      "week": 1,
      "league": "USL1",
      "sport_slug": "usl1-2021",
      "away_team": "",
      "home_team": "",
      "date_str": "",
      "score_home": "",
      "score_away": "",
      "stats": {
        "minutes_played": 2076.0,
        "shots": 46.0,
        "shots_on_target": 18.0,
        "goals": 10.0,
        "xg": 5.8191,
        "xg_place": 1.8014,
        "goals_minus_xg": 4.1809,
        "key_passes": 44.0,
        "assists": 8.0,
        "xa": 3.7608,
        "assists_minus_xa": 4.2392,
        "goals_plus_assists": 18.0,
        "xg_plus_xa": 9.5799,
        "points_added": 5.4753,
        "xpoints_added": 3.4063,
        "passes_attempted": 962.0,
        "pass_completion_pct": 0.738,
        "xpass_completion_pct": 0.7413,
        "passes_over_expected": -3.1153,
        "passes_over_expected_p100": -0.3238,
        "avg_pass_distance": 24.2648,
        "avg_pass_vertical": 5.796
      }
    },
    {
      "game_id": "soccer-uslc-2022-7VqGZE35vW",
      "game_slug": "soccer-uslc-2022-7vqgze35vw",
      "display": "USLC 2022 Season",
      "season": 2022,
      "week": 1,
      "league": "USLC",
      "sport_slug": "uslc-2022",
      "away_team": "",
      "home_team": "",
      "date_str": "",
      "score_home": "",
      "score_away": "",
      "stats": {
        "minutes_played": 2547.0,
        "shots": 49.0,
        "shots_on_target": 13.0,
        "goals": 4.0,
        "xg": 3.9619,
        "xg_place": -0.3888,
        "goals_minus_xg": 0.0381,
        "key_passes": 56.0,
        "assists": 2.0,
        "xa": 6.5629,
        "assists_minus_xa": -4.5629,
        "goals_plus_assists": 6.0,
        "xg_plus_xa": 10.5248,
        "points_added": 2.6415,
        "xpoints_added": 2.3938,
        "passes_attempted": 1228.0,
        "pass_completion_pct": 0.7003,
        "xpass_completion_pct": 0.7067,
        "passes_over_expected": -7.8766,
        "passes_over_expected_p100": -0.6414,
        "avg_pass_distance": 24.026,
        "avg_pass_vertical": 3.7358
      }
    },
    {
      "game_id": "soccer-uslc-2023-2vQ1NowMrA",
      "game_slug": "soccer-uslc-2023-2vq1nowmra",
      "display": "USLC 2023 Season",
      "season": 2023,
      "week": 1,
      "league": "USLC",
      "sport_slug": "uslc-2023",
      "away_team": "",
      "home_team": "",
      "date_str": "",
      "score_home": "",
      "score_away": "",
      "stats": {
        "minutes_played": 2820.0,
        "shots": 63.0,
        "shots_on_target": 25.0,
        "goals": 11.0,
        "xg": 8.6511,
        "xg_place": 0.788,
        "goals_minus_xg": 2.3489,
        "key_passes": 61.0,
        "assists": 3.0,
        "xa": 5.9615,
        "assists_minus_xa": -2.9615,
        "goals_plus_assists": 14.0,
        "xg_plus_xa": 14.6126,
        "points_added": 3.9859,
        "xpoints_added": 4.8928,
        "passes_attempted": 1272.0,
        "pass_completion_pct": 0.7744,
        "xpass_completion_pct": 0.7679,
        "passes_over_expected": 8.1894,
        "passes_over_expected_p100": 0.6438,
        "avg_pass_distance": 23.1906,
        "avg_pass_vertical": 2.2786
      }
    },
    {
      "game_id": "soccer-uslc-2024-2vQ1NowMrA",
      "game_slug": "soccer-uslc-2024-2vq1nowmra",
      "display": "USLC 2024 Season",
      "season": 2024,
      "week": 1,
      "league": "USLC",
      "sport_slug": "uslc-2024",
      "away_team": "",
      "home_team": "",
      "date_str": "",
      "score_home": "",
      "score_away": "",
      "stats": {
        "minutes_played": 579.0,
        "shots": 19.0,
        "shots_on_target": 6.0,
        "goals": 1.0,
        "xg": 1.8765,
        "xg_place": -1.1895,
        "goals_minus_xg": -0.8765,
        "key_passes": 23.0,
        "assists": 1.0,
        "xa": 2.7391,
        "assists_minus_xa": -1.7391,
        "goals_plus_assists": 2.0,
        "xg_plus_xa": 4.6155,
        "points_added": 0.4155,
        "xpoints_added": 0.9478,
        "passes_attempted": 257.0,
        "pass_completion_pct": 0.7471,
        "xpass_completion_pct": 0.6998,
        "passes_over_expected": 12.1401,
        "passes_over_expected_p100": 4.7238,
        "avg_pass_distance": 22.1334,
        "avg_pass_vertical": 2.3194
      }
    },
    {
      "game_id": "soccer-uslc-2024-NWMWllL5lz",
      "game_slug": "soccer-uslc-2024-nwmwlll5lz",
      "display": "USLC 2024 Season",
      "season": 2024,
      "week": 1,
      "league": "USLC",
      "sport_slug": "uslc-2024",
      "away_team": "",
      "home_team": "",
      "date_str": "",
      "score_home": "",
      "score_away": "",
      "stats": {
        "minutes_played": 1309.0,
        "shots": 19.0,
        "shots_on_target": 8.0,
        "goals": 2.0,
        "xg": 1.7899,
        "xg_place": 0.2252,
        "goals_minus_xg": 0.2101,
        "key_passes": 20.0,
        "assists": 1.0,
        "xa": 2.118,
        "assists_minus_xa": -1.118,
        "goals_plus_assists": 3.0,
        "xg_plus_xa": 3.9079,
        "points_added": 0.4262,
        "xpoints_added": 0.9928,
        "passes_attempted": 636.0,
        "pass_completion_pct": 0.816,
        "xpass_completion_pct": 0.7947,
        "passes_over_expected": 13.5887,
        "passes_over_expected_p100": 2.1366,
        "avg_pass_distance": 23.2679,
        "avg_pass_vertical": 1.984
      }
    },
    {
      "game_id": "soccer-uslc-2025-NWMWllL5lz",
      "game_slug": "soccer-uslc-2025-nwmwlll5lz",
      "display": "USLC 2025 Season",
      "season": 2025,
      "week": 1,
      "league": "USLC",
      "sport_slug": "uslc-2025",
      "away_team": "",
      "home_team": "",
      "date_str": "",
      "score_home": "",
      "score_away": "",
      "stats": {
        "minutes_played": 1553.0,
        "shots": 32.0,
        "shots_on_target": 15.0,
        "goals": 8.0,
        "xg": 4.1804,
        "xg_place": 1.8121,
        "goals_minus_xg": 3.8196,
        "key_passes": 25.0,
        "assists": 2.0,
        "xa": 2.5888,
        "assists_minus_xa": -0.5888,
        "goals_plus_assists": 10.0,
        "xg_plus_xa": 6.7691,
        "points_added": 4.3444,
        "xpoints_added": 1.8,
        "passes_attempted": 620.0,
        "pass_completion_pct": 0.6839,
        "xpass_completion_pct": 0.7055,
        "passes_over_expected": -13.4333,
        "passes_over_expected_p100": -2.1667,
        "avg_pass_distance": 22.2405,
        "avg_pass_vertical": 2.4349
      }
    },
    {
      "game_id": "soccer-uslc-2026-NWMWllL5lz",
      "game_slug": "soccer-uslc-2026-nwmwlll5lz",
      "display": "USLC 2026 Season",
      "season": 2026,
      "week": 1,
      "league": "USLC",
      "sport_slug": "uslc-2026",
      "away_team": "",
      "home_team": "",
      "date_str": "",
      "score_home": "",
      "score_away": "",
      "stats": {
        "minutes_played": 646.0,
        "shots": 16.0,
        "shots_on_target": 3.0,
        "goals": 1.0,
        "xg": 2.3324,
        "xg_place": -1.106,
        "goals_minus_xg": -1.3324,
        "key_passes": 7.0,
        "assists": 1.0,
        "xa": 1.2119,
        "assists_minus_xa": -0.2119,
        "goals_plus_assists": 2.0,
        "xg_plus_xa": 3.5443,
        "points_added": 0.0656,
        "xpoints_added": 0.8738,
        "passes_attempted": 273.0,
        "pass_completion_pct": 0.641,
        "xpass_completion_pct": 0.68,
        "passes_over_expected": -10.6524,
        "passes_over_expected_p100": -3.902,
        "avg_pass_distance": 20.7716,
        "avg_pass_vertical": 2.9061
      }
    }
  ],
  "college": null,
  "nfl": null,
  "articles": []
}