Ending Explained

‘We Have a Ghost’ Ending Explained: Netflix’s Horror Comedy Ends With Complicated Plot Twist

Where to Stream:

We Have a Ghost

Powered by Reelgood

We Have a Ghost, which began streaming on Netflix today, starts off as a fun-filled spectral adventure.

Written and directed by Christopher Landon, best known for the Happy Death Day films, this new film is more of a family comedy than it is a horror movie. Jahi Di’Allo Winston stars as Kevin, a teenage boy who moves into a new home with his father (played by Anthony Mackie), mother, and brother. One day, Kevin discovers another member of the household—a ghost living in the attic (played with charm by Stranger Things star David Harbour). Though the ghost can’t talk, the name tag on his shirt says his name is Ernest. Kevin wants to help Ernest move on to the afterlife, but Kevin’s father has other ideas—like using Ernest to turn the family into famous social media stars.

Unfortunately, what could have been a fun romp eventually gets bogged down by an overly complicated plot, resulting in a two-hour-and-seven-minute runtime. That’s all well and good for Marvel, but a Netflix family comedy? C’mon. If you grew impatient, or confused, by the We Have a Ghost ending, don’t worry, because Decider is here to help. Read on for a breakdown of the We Have a Ghost plot summary and We Have a Ghost ending, explained. Spoilers ahead, obviously.

We Have a Ghost plot summary:

Kevin (Jahi Di’Allo Winston) is a teenage boy who moves to a new town and discovers that his family’s new house is haunted by a ghost named Ernest (David Harbour). Thankfully, Ernest is a friendly ghost—he just can’t remember who he is. Kevin resolves to help figure out who Ernest was when he was alive, with the help of his tech-savvy new friend, Joy (Isabella Russo).

But when Kevin’s father, Frank (Anthony Mackie), finds out about Ernest, he has other ideas. Frank posts a video of Ernest the ghost on social media that goes viral, and Frank sees an opportunity to use Ernest to bring his family fame and fortune. That goes well for a while until the videos catch the eye of a government agent named Dr. Leslie Monroe who wants to hunt down Ernest and lock him up in a ghost cage. After an incident in which Ernest terrifies a psychic (Jennifer Coolidge) and accidentally terrorizes some kids in a park, Kevin, Joy, and Ernest go on the run, hoping to find out who Ernest is and help him move on to the afterlife before he is locked up.

Through internet sleuthing, Kevin and Joy discover that the real man named Ernest is not, in fact, their ghost friend. They track down the real Ernest, who tells the kids that the ghost’s real name is Randy. Randy was Ernest’s brother-in-law. Randy’s wife died in labor and left him as a single father to a daughter named June. Ernest says that Randy became an alcoholic after his wife died, and abandoned his daughter with Ernest and his wife. He disappeared, and Ernest assumed that Randy drank himself to death.

Before ghost-Ernest has a chance to confirm whether the story is true, a scary SWAT team busts into the room. Ghost-Ernest is captured while trying to protect Kevin. He is brought to a scary government facility and put in a ghost cage. But after sharing a touching moment with the ghost, Tig Notaro’s character, Dr. Monroe, is uneasy with the plan to possibly hurt ghost-Ernest.

We Have a Ghost plot twist explained:

While he is being ordered around by the government men, the ghost-Ernest suddenly remembers his past: When he was alive, as Randy, he dropped off his daughter June at his friend Ernest’s house. Ernest attacked and killed Randy, getting blood on his bowling shirt. He put the shirt on Randy’s dead body and buried him in the backyard of his house. And that house just happens to be the same house that Kevin and his family moved into.

Why did he do all of that? Because the real Ernest and his wife weren’t able to have children, and really wanted them. So instead of trying to, like, adopt a child, they decided to steal their 5-year-old niece, June, and kill her father! Perfectly sound logic! Apparently, though, it backfired, because the real-Ernest reveals that June is no longer speaking to him or his wife. “Maybe, deep down, she knows,” he says.

We Have a Ghost ending explained:

Tig Notaro helps the ghost Ernest escape. Meanwhile, the real Ernest breaks into his own house, aka Kevin’s house, and drunkenly threatens to kill Kevin, because he’s worried that Kevin knows everything. Luckily, ghost-Ernest shows up just in time to save Kevin and his family. That said, technically Kevin’s father Frank is the one who kills human-Ernest—he attempts to attack the ghost, goes right through him, and accidentally pushes the human Ernest out of the window.

After it’s all over, Kevin tells the government agents a half-truth—that the ghost disappeared, now that he was able to get closure. Kevin leaves out the part where he was able to reunite June, now a grown woman, with her ghost dad. After their touching reunion, ghost-Ernest slowly fades away, finally able to move on to whatever comes next after this life. In the final scene of the movie, Kevin and Joy take one last look at the attic, now that Kevin’s family is moving out of the house. Kevin expresses his hope that Ernest can still see them, wherever he is. Then Kevin takes Joy’s hand as they leave the attic, and the movie ends. And no, there is not a We Have a Ghost after credits scene.

Does it make sense? No, not really! We Have a Ghost is fun, but unfortunately got bogged down by this convoluted plot in the end. Oh, well. We’ll always have David Harbour’s facial expressions.