Amy Whey is a 42-year-old scuba diving instructor living in suburban Florida with her husband, Davis, and their daughter, Maddy. Her carefully constructed life begins to unravel when a striking stranger named Angelica Roux arrives uninvited at the neighborhood book club Amy hosts in her basement, organized by her best friend and neighbor, Charlotte Baxter. Roux, the latest tenant in a short-term rental on Charlotte's cul-de-sac, commandeers the evening, pouring wine to excess and steering the group into an escalating confession game. Players must reveal the worst thing they have ever done, reaching further and further into the past. When Roux suggests Amy would win the game outright and tells her they "have a lot to talk about" (24), Amy orders Roux to leave.
Amy's panic has deep roots. As a 15-year-old named Amy Smith, she attended Brighton, an elite private school in the Florida panhandle, where her only real friend was Tig Simms, a full-scholarship student. One night, after drinking and smoking pot in the woods, Tig kissed Amy for the first time. Overwhelmed, Amy insisted they drive to get food. She took the wheel despite having only a learner's permit and crashed into the car of Dana Shipley, Amy's babysitting client, who had been driving her small children, three-year-old Lolly and baby Paul, around to help them sleep. Mrs. Shipley was killed instantly. Amy's wealthy family hired a top defense attorney, and Amy, traumatized and unable to remember clearly, stayed silent when memories of being behind the wheel began to surface. Tig, who had no legal resources, took a plea deal and served three years in juvenile detention. Amy's family relocated to Boston, where she spent years punishing herself through starvation before finding salvation in scuba diving, which taught her to bury guilt deep.
In the present, Roux visits Amy's home and drops all pretense. She calls Amy by her maiden name, claims she was Lolly Shipley and witnessed the crash from the backseat, and presses Amy until decades of suppressed guilt spill out in a confession Roux records on her phone. She says she came for "justice" (99) and demands that Amy liquidate her remaining trust fund, approximately $240,000, or face criminal prosecution for a felony connected to a death, which carries no statute of limitations in Florida.
Amy dismantles Roux's claim by revealing that the real Lolly drowned at age five trying to save her brother Paul. Roux drops the pretense without apology, but the recorded confession still gives her leverage. Amy bluffs, saying she needs time, and Roux, desperate for cash, grudgingly agrees.
Determined to fight back, Amy returns to her childhood neighborhood and discovers that the lot from which Roux claimed to have seen the crash was empty in 1991. The only person who could have told Roux that Amy was driving is Tig. Amy drives to Mobile, Alabama, where Tig runs a classic-car garage whose mortgage Amy anonymously paid off through a foundation. He confirms that a woman calling herself "Ange Renault" stayed with him, slept with him, and coaxed out his story. Over the years, Tig told women a version of the accident in which he nobly took the blame. He still believes he was driving; Amy still believes she was. Neither can be certain. Tig records a video declaring he was the driver, giving Amy a weapon to counter Roux's recording.
Amy plays this card, but Roux has been equally busy. During a conversation, Roux steers Charlotte into volunteering that her childhood nickname was "Lolly" and her brother's name is Paul. Amy realizes Roux has uncovered the connection Amy has hidden for years: Charlotte is the grown-up Lolly Shipley. A flashback reveals that Amy discovered Charlotte's identity months into their friendship when she spotted a wedding invitation bearing the name "Charlotte Marie Shipley." Rather than flee, Amy chose to stay as a secret act of atonement, silently caring for Charlotte's family. Exposing this layered deception would destroy Charlotte's trust, Amy's marriage, and her community standing, a consequence far worse than prison.
Roux shadows Amy relentlessly. Amy steals a house key belonging to Roux's son, Luca, copies it, and breaks into the Sprite House, Roux's rental, while Roux is away. In the closet she finds a loaded revolver, bundles of cash, four passports under different names, fake IDs, and Polaroid photographs of Roux's battered face and body. Amy photographs everything but cannot determine Roux's real name. She catches Luca and Maddy in a sexual situation and recognizes that Maddy likely knows Luca's real name and hometown, but refuses to pressure her daughter into revealing it, understanding it would mirror Roux's methods. Late-night phone calls with Tig rekindle old feelings, and Amy recognizes the emotional connection as a dangerous escape route.
On Luca's open-water certification dive, Roux enters a sunken freighter wreck alone, becomes tangled in netting, and runs out of air. Amy finds her, endures a panicked struggle underwater, and shares her dwindling air supply to bring Roux to the surface alive. The rescue changes something in Amy. She sends Tig a final message affirming her commitment to Davis, then blocks his number. At a bar, she tells Roux she will neither pay nor confess, deduces that Roux is fleeing a custody battle rather than a warrant, and asks her to walk away. Roux refuses.
Roux retaliates by telling Charlotte about an affair between Charlotte's husband, Phillip, and a neighbor. Charlotte arrives at Amy's door devastated; Phillip confirms the affair and announces he is leaving. Amy comforts Charlotte through the night, recognizing Roux's strategy: By making Amy indispensable to Charlotte, Roux has raised the stakes. They negotiate by text and settle on $200,000, due Monday. Amy agrees but has no intention of paying.
That night, using the word "Seattle" that Maddy accidentally let slip, Amy finds a missing-child page for Ezra Wheeler, whose photo matches Luca. His mother, Faith Wheeler, explains that a woman named Rose Angier groomed and sexually abused Ezra beginning when he was 13, then fled with him. The Polaroids, the gun, and Roux's behavior point to a serial predator of children, not a survivor of domestic violence.
Amy goes to the Sprite House and, through a bedroom window, witnesses Roux sexually abusing Ezra. Unable to wait for police, she bangs on the door. Roux opens it holding the revolver. Amy stalls, pretending to negotiate, while Roux orders the boy to pack the car. Amy calls him by his real name and tells him his mother is coming. When Ezra hesitates, Amy grabs the fireplace poker and swings at Roux's gun hand. Roux's shot grazes Amy's shoulder; Amy's blow breaks Roux's wrist and sends the gun flying. After a struggle, Amy recovers the revolver. They face each other across the room. Roux begins to speak, and Amy pulls the trigger, killing her with a single shot to the chest. Police arrive moments later and find Ezra safe outside.
In the months that follow, the shooting is ruled self-defense. Police uncover extensive criminal history under Roux's many aliases but never determine her real name. Amy secretly funds Charlotte's divorce attorney and pays off her mortgage. Charlotte begins rebuilding her life with her daughters, Ruby and newborn Esther. Davis remains devoted; Amy's secrets about the accident and Charlotte's identity have not surfaced. Faith Wheeler brings Ezra to say goodbye to Maddy, and Faith silently thanks Amy not just for the rescue but for pulling the trigger. Months later, Amy and Maddy return to the wreck site. Amy mentally wraps her guilt, her memories of Roux, and her unresolved secrets together and lets them sink into the blue, knowing they will rise again and she will bring them back down, as many times as needed.