The Good Daughter novel ending explained: the girl holding the gun wasn't the one who pulled the trigger

The Good Daughter novel ending explained: the girl holding the gun wasn't the one who pulled the trigger
Image credit: Legion Media

Karin Slaughter's The Good Daughter is built around a school shooting that looks open-and-shut. Peacock is about to find out how many viewers figure out the twist before episode six.

Karin Slaughter published The Good Daughter in 2017, and on November 12, Peacock drops all six episodes of its adaptation at once. Slaughter created the series and wrote every episode herself, Steph Green directs, and the cast is stacked: Rose Byrne and Meghann Fahy play sisters Sam and Charlie Quinn, with Brendan Gleeson as their father, Rusty. Slaughter's own pitch calls it a story about "two resilient, funny, difficult sisters."

It's also a book with two crimes 28 years apart, and the second one is not what it looks like. Spoilers from here on.

The crime in 1989

The Quinns are a small-town defense lawyer's family, and in 1989 Rusty's work comes to the door. Two masked men show up at the house and shoot the girls' mother, Gamma, dead. They march Sam and Charlie into the woods.

Sam is shot in the head and buried alive, and she digs herself out. Charlie runs to a farmhouse.

Sam recognizes one of the men as Zachariah Culpepper, a former client of Rusty's, and he goes to prison. Police kill his brother Daniel as the presumed second man. The book eventually reveals that Daniel wasn't there at all: the other masked man was Mason Huckabee.

The shooting in Pikeville

Twenty-eight years later, a shooting at Pikeville's middle school leaves Principal Doug Pinkman and a little girl named Lucy dead. The girl found with the gun is Kelly Wilson, a high school student from a poor family with learning disabilities. She's arrested, and she even tells Sam she did it.

Ramón Rodríguez in Will Trent (2023), ABC's series based on Karin Slaughter's books. Slaughter created The Good Daughter series and wrote every episode herself
Ramón Rodríguez in Will Trent (2023), ABC's series based on Karin Slaughter's books. Slaughter created The Good Daughter series and wrote every episode herself. Image credit: Legion Media

What actually happened, as the book lays it out:

  • The shooter: Judith Pinkman, the principal's wife and Kelly's former tutor, shot Doug.
  • The motive: Doug was abusive, and he was the father of the baby Kelly was carrying. He wanted Kelly to move in so the three of them could raise it together.
  • The girl: Judith had groomed Kelly to take part, and the security footage shows the two of them holding the gun together. Lucy was killed by accident.

The case cracks on the CCTV. Sam and Charlie rewatch the footage and spot a second person. Mason, who hid the gun after the shooting, slips up and confesses to Charlie's husband, Ben, and then Charlie confronts Judith, who confesses too.

Everybody in Pikeville saw Kelly Wilson with the gun. Nobody looked at who was holding it with her.

How it ends

Kelly takes a plea deal for 10 years. Mason gets six for taking the gun from the scene and lying about it. Rusty doesn't make it to the end: he's stabbed in the hospital and dies, and the book never proves who did it. Charlie and Ben get back together, and Charlie finds a hidden photo of their mother that she sends to Sam, the closest the sisters get to a happy ending.

Don't miss: The Institute ending explained: Stephen King's book ends with the Institute exposed — the show doesn't

Will Peacock change it?

Nobody involved has said. The series cast includes Shayna Benardo as Kelly and Paula Malcomson as Judith, so both halves of the twist are on the call sheet. Olivia Williams plays the girls' mother, and Byrne also executive produces.

The one person who could change the ending is the woman who wrote it, and she wrote all six scripts. If anybody gets to decide who's holding the gun on November 12, it's Slaughter.

Previously we wrote: 'I work on this show': a Criminal Minds crew member learned it's ending from Reddit