Gwen Tanner lives a deliberately ordinary life outside Boston, working as a recruiting assistant and spending her free time at Painting Pots, a ceramics store. Her closest friend is Porter, a 21-year-old employee there. On the same day her mother is released from prison, Gwen finds a box on her doorstep containing a man's severed left arm and a note card reading "Hi, Marin," the name she was born with and has spent 20 years hiding.
Gwen was born Marin Marie Haggerty, daughter of Abel Haggerty, a convicted serial killer serving a life sentence for eight counts of first-degree murder. She witnessed killings as a child, raised to see her father's violence as normal. After his arrest when she was nine, Detective James Calhoun erased her identity with the help of a lawyer named Oswald Shields and placed her in a residential treatment facility in East Buford, Pennsylvania, under the story that her parents had died in a fire.
Rather than call the police, Gwen disposes of the arms in public locations, hoping authorities will identify the victims. She confronts her mother, Reanne Haggerty, who insists she has told no one about Marin. To investigate whether her father is directing events from prison, Gwen arranges a visit to Edgar Valley Prison and observes Abel's sole regular visitor, a young man who introduces himself outside as Dominic. He runs the Abel Haggerty Murder Tour, a sightseeing business visiting crime scenes around Boston.
Gwen brings Porter on the tour, which ends at the abandoned Abbington house, where Abel murdered four members of the Abbington family. Only the youngest child, Elyse Abbington, survived, supposedly because she was at a park. Gwen privately knows the truth: She told her father that 10-year-old Cody Abbington had been bullying her. Abel went to the house, but it was nine-year-old Marin who attacked Cody with a rock. Abel killed the rest of the family to conceal what she had done. Cody lingered in the hospital before reportedly dying, and his brief consciousness gave police the lead to arrest Abel.
Dominic invites Gwen and Porter to a party at his stepbrother Jake's apartment. There Gwen meets Elyse, now Jake's girlfriend, and bonds with her over shared trauma. That night, "LIAR" appears in fake blood on Gwen's door. The authorities identify the arms: One belongs to Shields, the other to Calhoun. Dominic, who visits Abel weekly for book research, theorizes that Marin Haggerty has returned to kill people from her past. Gwen discourages him from going to the police, motivated by the need to protect her hidden identity.
Gwen breaks into Dominic's apartment and searches his notebooks, finding no evidence he knows her real identity. He catches her, and a tense confrontation ends with a kiss. At another of Jake's parties, Gwen participates in a group ritual involving knife cuts, carefully concealing the X-shaped scars Abel carved into her rib cage as a child. A new message appears on her door: "WHO'S NEXT?"
Worried the stalker will target Porter, who has written to Abel in prison, Gwen stays with Reanne for two nights under a false name, hoping to redirect the threat. The plan backfires: Porter reappears with Reanne's body in his car, explaining that a woman claiming to be Marin Haggerty directed him to a house where he found Reanne dead, his belongings planted to frame him. Gwen disposes of the body in a pond in New Hampshire.
Gwen and Dominic travel to Pennsylvania searching for old facility records. They locate storage units with student files, but Gwen's has been stolen. That night, Dominic discovers her scars and recognizes them as the marks Abel described carving into Marin. He realizes Gwen is Marin Haggerty. Shaken and angry, he agrees to keep her secret but distances himself.
A woman releases a video claiming to be Marin Haggerty. Gwen recognizes her as Natalie Shea, her childhood roommate at the facility. Part Two shifts to Natalie's perspective. At the facility, Gwen took the volatile Natalie under her wing, teaching her coping strategies. Their bond fractured when Natalie impulsively poisoned a boy who bullied her and then attempted to smother Gwen during a violent episode. In the present, Natalie has been watching Gwen for roughly eight years. A tenant calling himself Wesley discovered Natalie's surveillance, revealed Gwen's true identity, and recruited her into a supposed mission to protect Gwen by impersonating Marin.
Elyse confides in Gwen a secret she has kept for 20 years: She witnessed Marin attack Cody and told Calhoun, who suppressed the information. Elyse declares she wants to kill Marin. Gwen, concealing her identity, resolves to handle the threat herself. She visits Abel in prison and experiences a breakthrough, recognizing that his hold over her stemmed from his desperation for her to become like him, not from any inherent evil within her.
Gwen tracks Natalie to a motel, where Natalie insists she killed no one and that Wesley directed everything. When Gwen suggests Wesley is the real killer, Natalie flees. Gwen follows her home and finds her dying from stab wounds. She holds Natalie as she dies. Natalie's journal confirms she was a manipulated pawn who genuinely cared for Gwen.
Searching for Dominic after their fallout, Gwen visits the home of his terminally ill mother, Barbara Cook. In storage boxes, she finds a photograph connecting Jake to Oswald Shields through a family relation. She races to warn Elyse, but Jake is waiting at the apartment. He knocks Gwen unconscious. She wakes handcuffed in a van as Jake reveals his true identity: He is Cody Abbington. He did not die in the hospital; Calhoun and Shields faked his death and placed him with a new family. He grew up with no memories until psychedelic use in adulthood triggered fragmentary recall. He then orchestrated everything: reconnecting with Elyse, steering Dominic toward Abel, creating the Wesley persona to manipulate Natalie, and committing the murders as revenge against Gwen.
Jake takes Gwen to the Abbington house, where Dominic and Porter are bound inside. He brings Elyse, intending for them to kill Gwen together, but Elyse refuses. Jake strikes her unconscious and handcuffs Gwen to the backyard swing set, planning to force her to listen while he kills Dominic and Porter. Gwen adopts a cold persona and calls him "Cody," which enrages him. When he lunges at her, she headbutts him, kicks him, and topples the rusted swing set to free herself. She handcuffs him to the frame and walks away.
Jake pleads guilty to four counts of murder and four of attempted murder. Two weeks after entering Edgar Valley Prison, he is found strangled in his cell, with Abel the clear suspect. Gwen now knows Cody survived her childhood attack, confirming she is not a killer, though she recognizes that years of trauma cannot be undone by a single revelation. At the wake for Dominic's mother, Gwen reunites with Porter and shares a tentative exchange with Elyse, who no longer wants to kill her but offers only an ambiguous remark about the future. Gwen chooses to go by Gwen, not Marin, as she moves forward.