The Presley family has just moved into a big, run-down Victorian house in Chicago. It looks like the type of house you’d see on the cover of a ghost story, and that’s because the house is indeed haunted — by Ernest (David Harbour), a balding spirit who can only make moans and groans (you seem to lose your voice when you die, along with some of your memories). At the start of the film, we see a family flee in terror from the haunted house, but the Presleys are different.
Kevin (Jahi Winston), the youngest son of the family, is a lonely kid who just happens to see Ernest first. Rather than run away in fear, Kevin finds Ernest’s ghoulish antics amusing, and the two form an unlikely bond. You might think that Kevin will spend the rest of the movie trying to keep his new ghost buddy a secret from his family, but “We Have a Ghost” twists expectations and has all the Presleys learn about Ernest pretty quickly. Kevin’s mom (Erica Ash) stresses that she doesn’t want to be like every white family in every horror movie and insists they pack up and leave. However, Kevin’s father Frank (Anthony Mackie) has dollar signs in his eyes. We learn that Frank has a history of failed get-rich-quick schemes, and he wants to make Ernest his latest claim to fame and fortune. Frank and Kevin’s older brother (Niles Fitch) upload footage of Ernest to YouTube, and soon Ernest is going viral — resulting in a very funny sequence in which social media embraces the ghost and turns him into a celebrity.
Harbour has a somewhat tricky role here — his character is almost entirely dialogue-free, which means the actor leans into broad, somewhat over-the-top physicality mixed with a surprising sadness that reveals it ain’t easy being ectoplasm. Ernest can’t remember how he died, and he’s spent decades thinking he’s trapped in the house unable to leave — a belief that turns out to be false as we see when Kevin and his friend Isabella (Joy Yoshino) take Ernest out into the world.