World No. 92 · 5 career titles · career win–loss 953–379. Match history, ranking timeline and head-to-head records below.

| Country | United States |
| Born | 2004 |
| Plays | Right-handed |
| Height | 188 cm |
| Win–loss | 953–379 |
| Titles | 5 |
| Finals | 5 |
| Ranking | #92 · 642 pts |
| Career high | #92 |
Strength 0–100 is our own calculation, not an official tour ranking: 100 is the strongest in history, 70 is about the level of the world No. 100.
| Event · Round | Opponent | Score | Surface | |
|---|---|---|---|---|
| L | AITO Hangzhou Open · R32 | Bu Yunchaokete (CHN) | 6-4, 5-3 | Hard |
| L | ATP Challenger Tiburon, USA · SF | Darwin Blanch | 7-6(5), 7-6(9) | |
| L | Tiburon Challenger · SF | Darwin Blanch | 7-6, 7-6 | Hard |
| W | Tiburon Challenger · QF | Mitchell Krueger (USA) | 7-6, 6-2 | Hard |
| W | Tiburon Challenger · R16 | Trevor Svajda (USA) | 6-1, 6-4 | Hard |
| W | Tiburon Challenger · R32 | Evan Zhu (USA) | 6-1, 4-6, 7-5 | Hard |
| W | US Open · R64 | Yunchaokete Bu | 6-3, 2-6, 6-2, 6-3 | |
| W | US Open · R64 | Yunchaokete Bu | 6-3, 2-6, 6-2, 6-3 | Hard |
| W | US Open · R128 | Fabian Marozsan (HUN) | 6-4, 6-4, 6-2 | Hard |
| L | US Open · R32 | Arthur Gea (FRA) | 7-6, 3-6, 4-6, 6-3, 6-2 | Hard |
| W | Cincinnati Open · R64 | Ugo Humbert (FRA) | 6-4, 6-3 | Hard |
| L | Cincinnati Open · R32 | Lorenzo Musetti (ITA) | 6-1, 6-3 | Hard |
| Season | Win–Loss | Titles | Year-end rank |
|---|---|---|---|
| 2026 | 68–34 | ||
| 2025 | 130–34 | 3 | |
| 2024 | 98–37 | 2 | |
| 2023 | 88–43 | ||
| 2022 | 116–47 | ||
| 2021 | 96–41 | ||
| 2020 | 83–22 | ||
| 2019 | 74–32 | ||
| 2018 | 75–26 | ||
| 2017 | 93–50 | ||
| 2016 | 32–13 |