Season 28 of “Dancing With the Stars” taught us all a valuable lesson: Never think you can predict what will happen on a reality TV competition. A few examples from this season:

Prediction No. 1: President Trump’s former press secretary Sean Spicer would last only an episode or two, given that he had no dance skills. Incorrect — he survived for nine weeks.

After a colorful debut and eight weeks of low scores, former White House press secretary Sean Spicer was voted off “Dancing With the Stars” on Nov. 11. (The Washington Post)

Prediction No. 2: The judges would never eliminate front-runner James Van Der Beek, especially after he shared that he was going through a family tragedy. Not true — he was booted off last week.

Prediction No. 3: There’s no way that “Bachelorette” star Hannah Brown would actually win, given that the judges gave her some of the harshest critiques of any contestant. Wrong again! Brown and her professional partner, Alan Bersten, won the Mirror Ball Trophy during Monday’s finale. She triumphed over actor Kel Mitchell, who was runner-up, along with singers Ally Brooke and Lauren Alaina, who landed in third and fourth place, respectively.

Brown, 25, looked stunned as host Tom Bergeron announced her victory — possibly because a week ago, she had a tearful confrontation with judge Carrie Ann Inaba over what she felt was overly tough criticism.

It wasn’t the first time that the judges (Inaba, Len Goodman and Bruno Tonioli) seemed to hold Brown to an especially high standard. While they often complimented her dance skills, they also criticized issues that they overlooked with other contestants and gave her lower scores. Viewers certainly noticed; some of her fans were quite vocal on social media. Sometimes, the comments got personal.

“It looked more like a cheerleading dance,” Inaba said in the third week after Brown’s rumba. The audience started booing. “Bring it on, I can take it!” Inaba said, then turned back to Brown. “You need to lose the jazz stylings, because you’re an excellent dancer, but this is about Latin and ballroom.”

Later, Brown — a former beauty pageant contestant — admitted that the “cheerleader” dig stung. “Carrie Ann’s comment was hurtful, but there was some truth to it,” she said. “In the pageant world, I was taught to put on this plastic smile.”

Things improved after that until an especially uncomfortable moment in the seventh week. Brown was already on edge, as she admitted she was discouraged that her scores kept sinking. After she performed a jazz routine, Goodman was complimentary, but Tonioli wasn’t a fan. “I’m going to be tough on you, because I know you can do better,” he said.

Inaba called it “crisp and clear” but ultimately agreed with Tonioli. “There’s something lacking in your performance that I really want to get serious about,” she said, as the audience booed again. “You are disconnected from the movements. … It’s almost like there’s a bit of a shyness in you. You kind of close off to the dance."

In the post-dance interview with co-host Erin Andrews, Bersten weighed in on Inaba’s candid commentary: “I think, honestly, it’s so accurate. I mean, Hannah is incredible. But she’s a bit insecure, and I’ve been working so hard to get it,” Bersten said. “She has no reason to be insecure.”

“This is free therapy, enjoy it! No insurance has to pay for this, love it!” Andrews said, as Brown looked devastated. Brown wrote a long Instagram post the next day about how the night had been “really defeating” for her, and Bersten semi-apologized for his comments.

It all culminated in last week’s awkward scene, as Inaba visited Brown and Bersten during rehearsal for the penultimate episode. As Inaba offered more and more critiques, Brown’s eyes started filling up with tears.

“You can always be honest with me. I can take it, I’m a judge, trust me. I’m not here for any other a reason than to help you,” Inaba said, stepping forward to comfort her.

“No, I don’t want to be touched,” Brown said, moving away.

Inaba looked shocked. “I’m not an adversary, okay? I can’t help if I don’t really know how you’re feeling,” she pleaded.

Brown admitted that she shuts down when she feels like she’s being attacked. “I feel like a lot of the critiques that the judges give me are very personal, which makes them sting a little bit more,” she admitted to the camera.

“I can appreciate that feedback. And I’m so sorry that’s how you felt because that makes me sad. I’m sorry,” said Inaba, also on the verge of tears. “Because that’s not what we’re here for. My job is to help you.”

Later, Brown apologized for her reaction — and the judges loved her last several dances. In Monday’s finale, shortly before her victory, Inaba pronounced her final Viennese waltz as Brown’s best dance of the season.

“Sometimes, the greatest struggles give you the greatest rewards,” Inaba said wisely.

Ultimately, Brown’s win was somehow both shocking and utterly predictable. It was shocking because although the judges appeared to admire Brown, they seemed to be rooting for Brooke, who received the most perfect scores of any contestant — which goes a long way toward audience votes, and fans determined the winner. Plus, Mitchell had a huge fan base, and country singers were urging their millions of social media followers to vote for their fellow Nashvillian Alaina.

But Brown’s rough journey also made it almost too obvious that she would ultimately wind up victorious. After all, viewers love an underdog contestant who shocks everybody to take home the big prize. Brown’s narrative over 11 weeks on the show had everything: defeat, tears, drama, hard work and ultimately triumph. Really, what more could any reality TV show want?

Read more: