Set in Decatur, Georgia, the novel follows three teenagers whose intertwined friendships and romantic feelings collide over the course of a school year. The story is told in three rotating perspectives: Courtney "Coop" Cooper, Rae Chin, and Jupiter "Jupe" Charity-Sanchez.
Coop, a 17-year-old junior and star basketball player, has been secretly in love with his best friend Jupiter since childhood, despite knowing she is openly gay. Their bond began when Coop was seven: After his father died in a car crash, he and his mother, Neeta, moved next door to Jupiter and her two dads, Troy Charity and Emilio "Papi" Sanchez. Jupiter comforted him through his grief, and they became inseparable. Every girlfriend Coop dates eventually dumps him because she feels threatened by his closeness with Jupiter.
After his latest breakup, Coop and Jupiter perform their ritual, the Jam, a dance to Queen's "Another One Bites the Dust." Jupiter mentions texting a new girl named Rae, sparking Coop's jealousy. His teammates, Jesse "Golly" Cox and Britain Grier, confront him about his feelings for Jupiter and propose a Game Plan: Coop must find a real romantic prospect and stay away from Jupiter to break his cycle.
Separated from Jupiter, Coop is plagued by a recurring nightmare tied to his father's death, centered on a merry-go-round at Carl's Carnival. Carl's Carnival was a live event hosted by Carousel Carl, a beloved children's science TV host. When seven-year-old Coop attended with his mother, the show was abruptly canceled after Carl broke down onstage. That same night, Coop's father was killed in a car crash. He has never told anyone about this connection.
When Neeta invites a new colleague, Dr. Kenneth Chin, and his daughter to dinner, Jupiter squeals with excitement. The guest is Rae Chin, the girl Jupiter has been texting. Rae is a biracial sophomore who recently moved from Alabama. Throughout dinner, Jupiter and Rae flirt openly while Coop watches with growing unease. Rae earns a spot on the cheerleading squad but barely acknowledges Coop, remaining warm with everyone at school except him.
The reason becomes clear after Coop faints at a carnival merry-go-round during a school outing. Rae visits and confesses she stole a photo from his mother's album showing young Coop and Neeta with Carousel Carl. She attended the same carnival as a child, and Carl's disappearance coincided with her parents' divorce. Coop reveals the secret he has never shared: The carnival was the day his father died. This shared trauma forges a deep bond, and they agree to investigate what happened to Carl.
Their investigation, the Carl Conundrum, becomes a secret shared life. They grow flirtatious in private while hiding their closeness from Jupiter. Meanwhile, Jupiter becomes more affectionate with Coop, confiding her vulnerabilities and calling him the safest place in the world for her. She mentions developing a crush on someone but refuses to say who.
When Rae calls Coop in the middle of the night, alone while her father is away, he drives over immediately. She confesses that her perpetual happiness is a facade developed to cope with abandonment by her mother and older sister, Bess. The experience shifts something in Coop: He feels needed and protective, signaling his growing romantic interest.
The second part shifts to Rae's perspective. She is drawn to both Jupiter and Coop but cannot determine which attraction is stronger. At Thanksgiving, after sneaking extra drinks, she asks Jupiter provocative questions about intimacy and asks to kiss her. During a later conversation, Coop warns Rae not to experiment with Jupiter, who is a hopeless romantic. Jupiter wears a charm bracelet from her _Quinceañera_, or 15th birthday celebration. Its five gemstone charms each represent an intimate first she intends to give to the person she truly loves. Coop admits he would be jealous, hinting at his own interest in Rae.
Their investigation leads them to Carl's foreclosed mansion, where they find a room covered in family photos from Carl's carnivals. Side by side hang Coop's childhood photo and Rae's family photo. After Christmas, Rae's estranged sister Bess arrives unexpectedly, and the sisters reconcile. Bess warns Rae that she is leading Jupiter on and that her real feelings are for Coop.
On New Year's Eve, Rae kisses Jupiter. Jupiter's mouth opens slightly before she jerks away, furious, accusing Rae of wanting to use her as an experiment. They resume their friendship, but it feels strained. Meanwhile, Rae and Coop text secretly, and Coop discovers Carousel Carl is alive, running a clothing bank called Carl's Closet in downtown Atlanta. He takes Rae to see Carl, solving the mystery. Rae realizes she is falling in love with Coop.
When Rae tells Jupiter about her feelings for Coop, she unknowingly cuts off the confession Jupiter has been rehearsing: that Jupiter has feelings for Rae. Jupiter swallows her heartbreak and tells Rae she approves.
The third part shifts to Jupiter's perspective. Desperate not to lose Coop, Jupiter offers to let him fulfill a seventh-grade pledge to lose his virginity to her, framing it as his 18th birthday gift. They have sex, and Jupiter is stunned by the intensity of her desire. She tells Coop she loves him and afterward removes her charm bracelet, leaving it for him with all five charms. They continue sleeping together secretly for a week until Rae asks Coop on a date. When Coop discovers Jupiter knew about Rae's feelings all along, he accuses her of sleeping with him to stake her claim. Jupiter insists she is gay and that their affair meant nothing. Coop storms out.
Coop begins dating Rae while privately refusing to speak to Jupiter. Jupiter hooks up with Breanna Banks, a college student and friend, and is tormented to find the experience physically compelling but emotionally hollow compared to being with Coop. She enters a full identity crisis, unable to reconcile her attraction to women with her feelings for him.
Jupiter confides everything to Britain and Golly. At the next meeting of Iridis, the school's Gay-Straight Alliance, she announces she is dropping her label: She still likes girls, but girls are not all she likes, and no existing label feels right. When someone pushes back, Coop defends her right to love whoever she wants.
Jupiter apologizes to Breanna for using her, then confesses everything to Rae. On Jupiter's 17th birthday, Rae sends a letter acknowledging she also led Jupiter on, that her feelings were real, and that she believes she is bisexual. Coop reveals that Rae dumped him days earlier, sensing his emotional distance. Rae is transferring schools and spending the summer in Nicaragua.
Alone together, Jupiter tells Coop that Rae's stolen kiss was technically her first, but his was the first she actually wanted, which is why he has the entire bracelet. She admits she is not ready for any kind of partner and that they cannot sleep together again. Coop accepts with grace. Jupiter asks him to cue the Jam. She presses Play, and together they perform the dance that has defined their friendship from the beginning, signaling that while everything has changed, the bond between them endures.