The novel opens with eighteen-year-old Tessa Palmer fleeing through the woods near Scarlet Lake on a September night, pursued by a man she trusted. Tessa regrets the angry words she said to her grandparents and wishes she could apologize. The pursuer catches her at the lake's edge and stabs her to death. In a chapter told from the killer's perspective, he washes her blood from his hands, collects the murder weapon, and returns to her body to say goodbye, expressing love and remorse.
Morgan Dane is a thirty-three-year-old widowed former assistant district attorney and mother of three young daughters: Ava, Mia, and Sophie. Her husband, John, was killed by an improvised explosive device (IED) in Iraq two years earlier, and she moved back to her grandfather Art's house in Scarlet Falls. Art, a retired homicide detective, helps raise the girls alongside Gianna, a live-in nanny. Morgan's sister, Stella Dane, is a local detective. Morgan has recently accepted a job offer from District Attorney Bryce Walters but keeps a sealed letter John left for her in her nightstand, unable to read it.
Late one Friday night, Tessa's grandmother calls Morgan to report that Tessa did not come home after a fight the previous day. Morgan learns that Tessa used babysitting for Morgan as a cover story. She calls Lance Kruger, an ex-cop turned private investigator with whom she has recently reconnected. Lance left the Scarlet Falls police force three months earlier while recovering from a gunshot wound to the thigh and now works for Lincoln Sharp, a retired detective who runs Sharp Investigations. Morgan and Lance drive to the lake and find Tessa's car with slashed tires, her keys and blood-spattered phone on the ground. Following a trail toward the water, Morgan discovers Tessa's body in a patch of cattails, stabbed multiple times, with the word "SORRY" written in blood across her forehead.
The investigation focuses on Nick Zabrowski, Morgan's twenty-year-old neighbor who is close to the family. Nick had been secretly dating Tessa and fought with Jacob Emerson, a boy Tessa briefly dated, at a lake party the night she died. Police Chief Horner takes personal control of the case. Officers find a blood-encrusted knife buried behind Nick's shed and a bloody T-shirt in his hamper, and Nick is arrested on his front lawn.
Nick's father, Bud, a single dad managing a local oil-change shop, cannot afford a private attorney. Morgan, convinced of Nick's innocence partly because she has witnessed his visceral vomiting response at the sight of blood, offers to represent him pro bono. She withdraws her application from the DA's office and enlists Lance and Sharp to investigate. The decision draws community hostility: Someone spray-paints "KILLER" on Bud's garage, and a cow heart is pinned to Morgan's front door with a knife.
Morgan interviews Nick and learns that Jacob provoked the fight by calling Tessa a slut. Afterward, Nick and Tessa had consensual sex in his car before Tessa broke up with him, crying and refusing to explain why. Nick drove around alone until midnight with a dead phone, leaving him without an alibi. Bryce presents the prosecution's evidence: Nick's DNA matches biological evidence found on Tessa, the autopsy shows she was sexually assaulted and stabbed nine times, and she was pregnant with someone else's child. Bryce offers twenty-five years for a guilty plea.
Morgan, Lance, and Sharp build a murder board and identify inconsistencies. No bloody pants or shoes are found at Nick's house, and Morgan discovers that Tessa's father did not die in a car accident as the Palmers claimed but is serving a prison sentence for aggravated vehicular homicide.
Lance introduces Morgan to his mother, Jennifer, who developed severe anxiety and agoraphobia after Lance's father vanished twenty-three years earlier. A former computer science professor, Jennifer agrees to conduct background research and reveals that Dean Voss, a combat-wounded veteran and former high school teacher, resigned after accusations of inappropriate behavior with a student. Morgan and Lance also visit the Barone farm, where Robby Barone's father, Dwayne, a man connected to the White Survival Alliance (WSA), a local white supremacist militia, intimidates his son into silence during questioning.
At the lake, Morgan and Lance discover a campsite belonging to Voss, who fires a rifle at them but appears to deliberately miss. Voss sobs about a dead girl before Lance subdues him. At Voss's apartment, they find delusional writings on the walls and a yearbook confirming Voss served on the yearbook committee with Tessa, establishing a direct connection.
A critical breakthrough comes when Tessa's friend Felicity Weber reveals that Jacob sent Tessa photos of himself molesting her unconscious body at a party in early July, around the time she became pregnant. Felicity saved screenshots. Morgan confronts Bryce with the evidence and secures an order for Jacob's DNA to be compared to the fetus.
The Barone farm is found completely deserted when Morgan and Lance return, the family having vanished overnight. Nick is then stabbed three times in the abdomen by a fellow inmate and undergoes emergency surgery. Morgan goes home with Lance and kisses him, but Lance pulls back, unwilling to let their first intimate encounter be driven by grief.
Voss escapes from his psychiatric facility and takes Morgan, Lance, and Voss's wife hostage. Morgan breaks Voss's wrist with a self-defense technique, and Lance tackles him, but a rookie officer shoots Voss, killing him. Before dying, Voss makes cryptic statements about guilt but does not confess to Tessa's murder. His statements create enough doubt for Bryce to drop the charges against Nick.
Sharp's investigation reveals that Tessa's grandmother arranged Nick's jailhouse stabbing and nailed the cow heart to Morgan's door; she is arrested. Meanwhile, Sharp Investigations has been separately searching for Jamie Lewis, a missing teenager. Sharp discovers that Kevin Murdoch, the fiancé of Jamie's mother, is actually Byron Dixon, a registered sex offender who stole the real Murdoch's identity. Dixon had been molesting Jamie, who ran away because she believed no one would believe her. Federal agents arrest Dixon, and Jamie, sick with pneumonia, is eventually reunited with her mother.
The true killer is revealed when Phillip Emerson, Jacob's attorney father, disguises himself as a doctor and attempts to smother Nick in his hospital room. Morgan pulls Emerson off Nick, but Emerson takes her hostage at knifepoint. Lance provokes Emerson into confessing: Phillip killed Tessa. He had been sexually abusing her since she was twelve, when she came to live with her grandparents, and she called him the night of the party threatening to expose him. Morgan frees herself by inserting her arm between the blade and her throat, taking a deep cut but giving Lance a clear shot. Lance shoots Emerson twice; Emerson survives and is arrested.
DNA results confirm that Phillip fathered Tessa's baby: The paternity test shows a 26% match with Jacob, indicating a half-sibling relationship. Police find photographs of Tessa spanning six years and a lock of her hair in Phillip's office. He is charged with rape and murder. Nick is fully cleared, and he and Bud plan to move to Manhattan.
Morgan finally reads John's letter, in which he urges her to live fully and love again. She moves his photo from her nightstand to her daughters' room, accepts Sharp's offer to join his firm as a lawyer, and asks Lance on a date. They share a kiss, acknowledging their feelings and the challenges ahead.