The Bulls’ 2019-20 season is officially over after 65 games.

And what a season it was.

Yes, a .338 winning percentage left them well short of preseason playoff expectations, even with the league’s novel 22-team resumption format allowing for teams within six games of the eighth seed into play-in contention (the Bulls finished eight back of the Orlando Magic).

But widespread front office overhaul — punctuated by the hires of Arturas Karnisovas as executive vice president of basketball operations and Marc Eversley as general manager —  somewhat salvaged a lost season. The two now face the rigors of an unprecedented, potentially nine-month offseason that will involve draft prep, continued roster and front office evaluation, and possibly a coaching search — all while continuing to grapple with the reality of the COVID-19 pandemic, which has pushed much of the team out-of-market, limited training capabilities and could act as a buzzsaw to the CBA as we know it.

That’s a lot to digest. And we’ll get to it all. But first, let’s tie a bow on the on-court good, bad, ugly and otherwise the Bulls endured this season, in report card form. We’ll start with the guards, with wings and bigs rolling out in the very near future.

Tomas Satoransky

65 G, 28.9 MPG | 9.9 PPG, 3.9 RPG, 5.4 APG | 43% FG, 32.2% 3P, 87.6% FT | 2020-21 contract: $10,000,000

Satoransky’s was not the season the Bulls expected when they inked him via sign-and-trade to a three-year, $30 million deal this offseason, nor the one Satoransky expected of himself in his first chance as a starter in the NBA. He’ll be the first to tell you that.

The highs — a 27-point, 8-assist outing vs. the Hawks, every game against the Wizards — were high. But the lows — a 45-game stretch from December to March in which he shot 26.8% from 3-point range — were doldrums. As billed, he was the best facilitator on the team (leading the Bulls both in assists per game and AST/TO ratio) and has a tremendous feel for the game. But Sato isn’t one to shatter opposing defenses off-the-dribble or generate instant offense on a whim. The pitfalls of the latter qualities became glaring as the safety net of his game, catch-and-shoot jump shooting, fell off precipitously; in his first three years in the NBA, Satoransky shot 42.8% on 1.3 catch-and-shoot 3-point attempts per game. This season, he doubled his diet to 2.6 per contest (love it), but his efficiency plunged to 32.9% (ah). Those figures could be due for some positive regression, and his steady hand on the controls is valuable for a young team, but this season cast serious doubt that the subtle traits Satoransky brings serve Zach LaVine as a full-time backcourt mate better than the explosiveness of a Coby White. 

Fittingly and in that vein, Satoransky’s tumultuous campaign culminated with White supplanting him for the starting point guard spot in the Bulls’ final game. It was a move that could have justifiably been made long before it was, in part due to Satoransky’s swoons, White’s improvements and the Bulls’ team-wide woes. Satoransky handled it with grace. He’s as congenial as they come, one of two players to appear in all 65 of the Bulls’ games this season (for this group, a feat), and, at 28, a bonafide vet. But the starting spot he coveted upon joining the Bulls could be gone by the time the 2020-21 season tips off. When it does, he’ll have much to prove with a partial guarantee (for $5,000,000) looming in 2021-22.

Grade: C

Zach LaVine

60 G, 34.8 MPG | 25.5 PPG, 4.8 RPG, 4.2 APG | 45% FG, 38% 3P, 80.2% FT | 2020-21 contract: $19,500,000

You’d be hard-pressed to ask for much more from LaVine this season. In his sixth year, he cemented himself as a premiere bucket-getter in the NBA, bumping his volume (31.2% usage, 20 FGA/g, 8.1 3PA/g) to the superstar strata while maintaining steady shooting percentages, traditional and advanced. After a shaky first month of the season, his 49-point, 13 3-pointer outing in Charlotte (undoubtedly the most exhilarating highlight of the season) catalyzed a rare, extended scoring tear from late November through February. On the season, he had more 30-point games (19) than any other Bull had 20-point outings (Coby White was closest with 13).

Still, questions about LaVine’s defense and playmaking aren’t going away anytime soon. The Bulls’ star consistently displayed a willingness to get better in those areas, but the results again lagged behind. Two nuggets emblematic of that dichotomy: He finished the season averaging the second-most passes per game on the team, but 10th in AST/TO ratio. He’s active in passing lanes and his athleticism makes him a serviceable on-ball defender when engaged, but the Bulls defended at a rate of 10 points per 100 possessions better with him off the floor. 

The Bulls also found themselves in the fourth-most “Clutch” games (imperfect but useful) this season, yet for every batch of LaVine heroics, there were multiple nights that starred empty, tunnel-vision possessions down the stretch. Of 42 players who played 100 or more “Clutch” minutes this season, LaVine took the second most field goals (91), and shot the fourth-worst percentage (33%). That’s not entirely his fault. Aside from White, whose emergence came late, LaVine is just about the only Bull that can generate his own offense (making targeted double-teams, at least, a nightly occurrence), and his late-game gumption drew consistent praise throughout the locker room, in good times and bad. There were public clashes with Boylen, but again, the locker room veneration persisted.

The two biggest takeaways for LaVine from this year: In his second full year back from an ACL tear that truncated his third and fourth professional seasons, he again improved markedly across the board, a theme throughout his career. But nothing about this campaign will stymie the ‘empty stats on a bad team’ label that hounds him. 

For two more years, he’s on one of the better contracts in the league given his production. Though LaVine ascending into the highest echelon of NBA stardom may never be in the cards, he’s better than what was put around him this season. With gradual improvements in the above areas, and a couple extra wins, adding All-Star hardware to his shelf next year on the weight of his rising stardom as a scorer isn’t outlandish. That he was even on the fringe this year speaks volumes.

Grade: A

Coby White

65 G, 25.8 MPG | 13.2 PPG, 3.5 RPG, 2.7 APG | 39.4% FG, 35.4% 3P, 79.1% FT | 2020-21 contract: $5,572,680

It’s amazing how quickly a narrative can flip. Entering the All-Star break, Coby White had logged 20 points just once in his previous 38 outings, and despite flashes of brilliance — his first month in the NBA featured four 20-point games, including a record-smashing seven 3-pointer fourth quarter barrage against the Knicks — was largely an enigma, defined as much by his inconsistency as his microwave scoring ability.

Then, he busted through his self-professed rookie wall. In ten post-All-Star-break games, White averaged 24.7 points, 3.8 rebounds, 4.8 assists on 46.8/40.7/89.5 shooting splits (19 FGA/g, 8.6 3PA/g), carrying the Bulls’ offense to a scoring rate of 112.8 per 100 possessions with him on the floor and just 94.5 with him off. All of a sudden, off-the-dribble jumpers were falling with regularity, he was finishing through contact at the rim and his fight on the defensive end began to leap off the screen. The game appeared to markedly slow down for him, and it coincided with increased opportunity. After Kris Dunn went down with a sprained MCL on Jan. 31, White’s minutes per game average lept from 23.9 to 32.4, and his production with it.

Is he the point guard of the future? Is he a traditional point guard at all? The jury is still out. One of the only basketball-related reasons to mourn the Bulls’ shortened 2019-20 slate (which could have ended… really ugly) is a lost chance at evaluating White and LaVine as a starting backcourt tandem; while White made his first NBA start on March 11, LaVine was nursing a quad that kept him out of the team’s final five games after proving a mainstay for the first 60. Theoretically, they make for a potent offensive combination, given both’s ability to play dynamically on- and off-the-ball. But whether the two share enough defensive and playmaking acumen to form a winning duo remains to be seen.

Regardless, White’s season ends with unvarnished optimism. All the tools — the breakneck speed, the quick-twitch jumper, the 6-foot-4 frame and improving vision — now have tangible results to back them up. Boylen consistently lauded White’s film study and practice habits throughout the year. That, along with his undeniable talent, will carry him to the next level. 

Grade: B+

Kris Dunn


51 G, 24.9 MPG | 7.3 PPG, 3.6 RPG, 3.4 AST | 44.4% FG, 25.9% 3P, 74.1% FT | 2020-21 contract: RFA 

Dunn took an offseason that saw the Bulls publicly shop him, sign a replacement to start at point guard (Satoransky), draft a potential lead guard of the future (White) and re-sign to a multi-year contract a Jim Boylen-favored reserve competitor (Arcidiacono)… And parlayed it into a career-reviving campaign.

Perhaps that’s a tad strong. But Dunn truly found and established an identity as a defensive linchpin in this, his fourth season. When Otto Porter Jr. and Chandler Hutchison went down in November, his 6-foot-4 frame and tenacious ballhawking ability allowed him to dutifully slide into a wing spot in the starting lineup and thrive at the head of the Bulls’ blitzing pick-and-roll coverages. Dunn started his first game of the season on Nov. 29. In the month of December, the Bulls played to a 7-7 record with the second-rated defense in the NBA. On the season, the Bulls’ defense was 6.8 points per 100 possessions better with Dunn on the floor — roughly the equivalent of the disparity between the 18th and second-rated defenses in the league. He was second in the league in steals when he went down on Jan. 31 with a sprained MCL, while averaging just 24.9 minutes per contest. And while steals are no surefire measure of comprehensive defensive impact, the magnitude with which the Bulls defense cratered in his (plus Wendell Carter Jr.’s) absence in February demonstrate his value.

Skeptics will immediately point to his 3-point shooting as a shortcoming — and indeed, any fastbreak fruits the Bulls reaped from Dunn turnovers echo quieter than bricks laid in the halfcourt. Shooting is coachable, but Dunn’s 25.9% clip from deep (with a ton of bad misses peppered in) is uninspiring and a ; already 26, it might be too late to expect a Marcus Smart-ian pivot to league-average long-range capacity. Opposing defense’s consistent willingness to ignore him from behind the arc in favor of clogging passing and driving lanes was actively detrimental to spacing for a team that already struggled for quality looks. In spite of him slicing his volume and dialing up his efficiency at the rim, the Bulls’ offense was bottom-of-the-barrell whether Dunn was on the floor or not this season, and slightly worse with him on.

Dunn’s offensive deficiencies were at times destructive on a bad team, but deployed strategically, his rare defensive instincts and ability have a place in the NBA — in the right situation. But when free agency opens, he’ll be fresh off a major knee injury (he hasn’t eclipsed 52 games in a season since his rookie year) and without a tidy landing spot on the horizon. He’s an ideal fit as a discount defensive specialist on a winning team, with the chops to swallow top-tier guards and swingmen on assignment, but the hiatus’ impact on the salary cap is yet unknown in a summer without many cap-space-flush teams to begin with. I wrote about pros, cons and financial particulars of the Bulls bringing Dunn back at greater length here. But for now, he gets a pat on the back for a solid season.

Grade: B

Ryan Arcidiacono

58 G, 16 MPG | 4.5 PPG, 1.9 RPG, 1.7 APG | 40.9% FG, 39.1% 3P, 71.1% FT | 2020-21 contract: $3,000,000

Arcidiacono is capable enough as a deep reserve guard. He’s far from the most athletically gifted player in the league (a clause I’m sure I’m the first to write), but he occasionally scrapes his way to punching above his weight defensively, makes his open ones and brings a tone-setting brand of hustle at his best.

With injuries dotting the roster, Arcidiacono was thrust into more minutes this season than in what I’d imagine the Bulls’ best possible 2019-20 timeline would have been. Still, for a team that was ninth in 3-point attempts per game and 24th in 3-point percentage, a 39.1% clip from deep (2.2 attempts per game) is nothing to sniff at. For a team as injury-prone as this, neither is 58 appearances. 

Simply put, Arcidiacono is hardly the Bulls’ biggest problem, nor a part of the long-term solution. After a fully-guaranteed $3,000,000 in 2020-21, the Bulls will have the chance to get out from under his number with a club option in advance of a highly-anticipated summer of ’21. If they do, it won’t be for a lack of grit.

Grade: C

RELATED: It's over: Bulls' highlights and lowlights from 2019-20 season