World No. 106 · 15 career titles · career win–loss 504–352. Match history, ranking timeline and head-to-head records below.

| Country | United States |
| Born | 2003 |
| Plays | Canhoto |
| Height | 203 cm |
| Win–loss | 504–352 |
| Titles | 15 |
| Finals | 15 |
| Ranking | #106 · 583 pts |
| Career high | #42 |
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 | Chengdu Open · R16 | Hubert Hurkacz (POL) | 6-4, 3-6, 4-5 | Hard |
| W | Chengdu Open · R32 | Shintaro Mochizuki (JPN) | 6-1, 5-4 | Hard |
| W | HSBC Championships · SF | Daniel Merida Aguilar (SPA) | 6-3, 6-2 | Grass |
| L | Hertogenbosch · R16 | Alex De Minaur (AUS) | 6-7, 5-7 | Grass |
| W | Hertogenbosch · R32 | Jaume Munar (SPA) | 6-4, 4-3 | Grass |
| W | Hertogenbosch · F | Juan Pablo Ficovich (ARG) | 6-2, 5-2 | Grass |
| W | Hertogenbosch · SF | Max Houkes (NED) | 4-6, 6-3, 7-6 | Grass |
| L | Internazionali BNL d'Italia · SF | Pablo Carreno Busta (SPA) | 3-6, 3-6 | Clay |
| W | Tallahassee Tennis Challenger · UNK | Boris Arias (BOL) | 6-4, 6-3 | Clay |
| L | Mexico City Open presentado por Banco BX+ · R32 | Aidan Mayo (USA) | 6-3, 3-6, 6-7 | Clay |
| L | Banorte Tennis Open · R16 | Beibit Zhukayev (KAZ) | 6-7, 7-6, 4-6 | Clay |
| W | Banorte Tennis Open · R32 | Marc Andrea Huesler (SUI) | 7-6, 7-6 | Clay |
| Season | Win–Loss | Titles | Year-end rank |
|---|---|---|---|
| 2026 | 7–7 | ||
| 2025 | 31–12 | 2 | |
| 2024 | 2–5 | ||
| 2023 | 46–19 | 2 | |
| 2022 | 27–16 | 2 | |
| 2021 | 44–25 | 4 | |
| 2020 | 12–15 | ||
| 2019 | 66–27 | ||
| 2018 | 24–24 | ||
| 2017 | 40–25 | ||
| 2016 | 2–2 | ||
| 2014 | 5–2 |