The novel alternates between 1986 and 2016, both narrated by Ed Adams. A brief prologue depicts an unknown figure discovering a girl's severed head in the woods, closing her eyes, and placing the head in a bag alongside broken stubs of chalk. Police later recover the rest of the dismembered body, but the head is never found.
In 2016, Ed is a forty-two-year-old teacher living in the English market town of Anderbury, in the same house where he grew up, sharing it with Chloe, a sardonic lodger in her late twenties. He settles on the day of the fair in 1986 as the moment everything stopped being normal.
In 1986, twelve-year-old Eddie lives with his mother, a doctor who runs an abortion clinic, and his father, a freelance writer. His friends include Fat Gav, the group's de facto leader; Metal Mickey, younger brother of the town bully Sean Cooper; Hoppo (David Hopkins), a kind peacemaker; and Nicky, the tough daughter of the local vicar, Reverend Martin. At the annual fair, the Waltzers, a spinning fairground ride, malfunction, and a flying shard of metal shears away half the face of a girl Ed calls "Waltzer Girl." Mr. Halloran, the children's new teacher, a tall albino man, instructs Ed to hold the girl's leg while he fashions a tourniquet, saving her life. Ed secretly pockets an item belonging to the girl, the first sign of a compulsive collecting habit. The girl, whose real name is Elisa, survives but is badly scarred.
In 2016, Ed opens a letter containing a stick figure with a noose and a single piece of white chalk. At the pub, Gav, who now uses a wheelchair after a car accident caused by a drunk Mickey years earlier, punches Ed for concealing that Mickey has returned to town. That evening, Mickey visits Ed for dinner, reveals he wants to write a book about the 1986 events, and claims to know who really killed Elisa. He refuses to elaborate and leaves on foot, drunk.
In 1986, Fat Gav receives a bucket of colored chalks for his birthday. Inspired by Mr. Halloran, the gang develops a chalk-symbol communication system, each member using a different color. Tensions escalate when Sean Cooper corners Ed in a playground, beats him, and attempts to sexually assault him before Mr. Halloran intervenes. At Halloran's cottage, Ed discovers paintings of Elisa and realizes Halloran is in love with her. Anti-abortion protesters led by Reverend Martin, meanwhile, target Ed's mother with threats.
In 2016, Ed wakes from a sleepwalking episode to find the hearth covered in white chalk figures. Chloe discovers Mickey's wallet under the hall table. Detectives inform Ed that Mickey's body has been pulled from the river, a stick hangman and white chalk found on the body, matching Ed's letter.
In 1986, someone steals Sean Cooper's BMX and throws it in the river. Sean wades in, is dragged under by the current, and drowns. At Sean's funeral, PC Thomas, a local policeman, bursts into the church with his teenage daughter Hannah and accuses the dead Sean of raping her. After the funeral, Hoppo's dog Murphy is found dying from poisoning near a mysterious white chalk figure on a gravestone.
In 2016, Gav confesses the secret he has carried for thirty years: He stole Sean's bike as retribution for Sean's assault on Ed, never imagining Sean would drown trying to retrieve it. All three surviving friends received identical threatening letters.
In 1986, Hoppo's mother Gwen, who cleans the church, arrives one morning to find its interior covered in white chalk figures. Behind the pulpit, Reverend Martin lies beaten nearly to death, with knife wounds carved in the shape of angel wings on his back. The injury leaves him in a near-catatonic state. Ed's father becomes a suspect, but Mr. Halloran provides an alibi, revealing in the process that he was near the churchyard visiting Elisa, now seventeen. The scandal over Halloran's relationship with the teenager forces his resignation. Nicky's mother, long believed dead, arrives to take Nicky to Bournemouth.
In 2016, Ed discovers Chloe was fired from her job after an argument with a customer named Nicola Martin. Tracking Nicky to Bournemouth, Ed learns Chloe is Nicky's half-sister, the daughter of Hannah Thomas and Reverend Martin. Hannah was never raped by Sean; the reverend fathered her child and told Hannah to blame the conveniently dead Sean. Mickey had paid Chloe to spy on Ed for his book and sent the threatening letters himself.
In 1986, the gang receives chalk messages in mixed-up colors leading them to a white chalk drawing of a girl in disconnected pieces. They follow chalk arrows into the woods and discover Elisa's dismembered arm. Ed stays with the arm while the others fetch police and secretly slips Elisa's silver ring off her finger. Police recover the rest of the body but never find the head.
Chloe returns in 2016 and gives Ed Mickey's stolen notebook, which contains a crucial note: "No one wanted to hurt Elisa, important. HAIR." Ed realizes Elisa had recently dyed her hair blond, making her resemble Hannah Thomas. The murder was a case of mistaken identity. Ed visits retired PC Thomas, who recalls seeing a figure in workman's overalls with a limp near the woods that night. At St. Magdalene's nursing home, the supposedly catatonic reverend grabs Ed's arm and whispers "Confess." Ed pieces together the truth: Reverend Martin left the home, went to the woods expecting to find Hannah, and killed Elisa by mistake in the dark, dismembering the body as a twisted biblical act.
Ed learns Chloe visited her father and mentioned she was camping in the woods with newly blond hair, triggering the reverend's violent impulses. Ed, Hoppo, and Gav rush to the home and find the reverend's room empty. In the woods, Ed and Hoppo discover Chloe unconscious but alive. The reverend emerges wielding an ax, dragging one lame leg, and attacks Hoppo, nearly severing his arm. Nicky arrives from Bournemouth and kills her father with the ax, saving Ed and Hoppo.
In the aftermath, Ed's mother confesses her own role: She told Ed's father about Hannah and the reverend in confidence, and he drunkenly revealed the secret at the pub, inciting PC Thomas and his friends to beat the reverend years earlier. The Elisa case is reopened. Ed decides to leave Anderbury. At Gwen Hopkins's funeral, Hoppo reveals Murphy was likely poisoned accidentally by Gwen's early-onset dementia. Ed confronts Hoppo about Mickey's death, noting Hoppo knew the exact stretch of path where Mickey drowned without being told. Hoppo responds: "Sometimes, Ed . . . it's better not to know all the answers."
On moving day, Ed retrieves the final item hidden beneath his bedroom floorboards: a yellowed skull. He reveals the novel's last secret. On the morning the gang found Elisa's body, Ed had gone to the woods alone first and discovered everything, including the head. Overcome by his compulsion to collect, twelve-year-old Ed placed Elisa's head in his rucksack and took it home, then drew the chalk directions so police would find the rest of her. He summoned his friends with messages in mixed-up colors and pretended to discover the scene alongside them. He has kept the skull for thirty years. As Ed posts his house keys through the letter slot, he momentarily cannot recall the words "letter hole," experiencing a flash of the same word-finding difficulty that marked the onset of his father's Alzheimer's. He recovers the phrase and drives away.