In a brief prologue, the teenaged Samantha Kingston says that though many people claim that just before you die your life flashes before your eyes, that is not how things happened for her. Rather than seeing a slideshow of her life, Sam saw only one thing in the moment of her death: the face of Vicky Hallinan, a classmate her best friend Lindsay had tormented in elementary school. Lindsay was driving the car which crashed, resulting in Sam’s death—Lindsay, Sam, and their friends Elody and Ally were on their way home from a party. Sam regrets that earlier that morning, she was too busy worrying about her school’s annual Valentine’s Day celebration, “Cupid Day,” to even wish her parents goodbye.
It is Friday February 12th—the morning of Cupid Day. Lindsay calls to Sam from the driveway, and Sam hustles out of the house, ignoring her little sister Izzy and her parents altogether. Lindsay is waiting outside to take Sam to school. The girls next pick up Elody for school, and they psyche Sam up for her “big day”—she is planning on losing her virginity to her hot, popular boyfriend Rob Cokran tonight. Elody hands Sam a condom, and though the mortified Sam says, “Kill me now,” Lindsay proclaims that she’d never let her best friend die a virgin.
During Cupid Day, underclassmen pass out roses with little notes attached, or “Valograms,” and one’s popularity is determined by how many roses one gets. As Sam goes through her first few classes, she is stressed to only have received five roses—last year, Lindsay got twenty-two—and upset by the lukewarm note attached to Sam’s rose from Rob. In calculus class, Sam flirts with her young, handsome teacher Mr. Daimler, himself once a student at this very school, and then she receives a rose from Kent McFuller—a genial nerd who was Sam’s best friend, and first kiss, back in elementary school. After class, Kent approaches Sam to tell her that he’s having a party that evening and asks if she will come, but she brushes Kent off, telling him her plans will depend on what everybody else is doing. Once Lindsay texts Sam that she wants to go to the party, though, Sam is all in.
At lunch, Sam, Lindsay, Elody, and their friend Ally sit together at their usual table—Rob comes over to say hi to Sam and ask if she received his rose. Rob makes Sam more nervous than happy, and Sam finds herself wondering if she even really loves him—or if he even really loves her. When Juliet Sykes, the class weirdo, enters the cafeteria, Lindsay begins singing the song “Psycho Killer” by the Talking Heads and making stabbing motions with a fake knife. Sam, Lindsay, Elody, and Ally torment Juliet in this way every day, and each year on Cupid Day, they send her a single rose with an attached note which reads “Maybe next year, but probably not.” Sam knows that their behavior toward Juliet is mean, but she believes Juliet deserves it for being a “freak.” The girls have always been mean to Juliet—Lindsay gave her the nickname “Mellow Yellow” after she peed her sleeping bag on a Girl Scout trip in fifth grade, and has hated Juliet with a strange intensity ever since.
After lunch, Lindsay and Sam cut class to walk to TCBY. On the way, they pass a cheap Chinese restaurant where a class bad-boy, Alex Liment, and the class “slut,” Anna Cartullo,re eating together, despite the fact that Alex has a goody-two-shoes girlfriend named Bridget McGuire. Lindsay and Sam briefly harass the two of them before going for their yogurts. When they return to school, they spot Alex and Anna again—this time, arguing in a secret smokers’ area behind the tennis courts while Lindsay smokes a quick cigarette. Ms. Winters, a teacher with a vendetta against all smokers begins approaching, but Sam and Lindsay don’t warn Alex and Anna that she’s coming, and instead make a run for it themselves. As they run gleefully back toward school, Sam remembers the day she and Lindsay became friends—they played a cruel prank on a girl at a pool party, throwing tampons and pads at her after realizing she’d gotten her period.
After school, Sam joins Lindsay and Elody at Ally’s house, where the four of them get ready for the party and take shots of vodka until it’s time to leave for Kent’s. At the party, Sam flirts with Rob and drinks with her friends, promising herself she’ll always remember this night and the fun times she’s had in high school. At the height of the evening, though, Juliet Sykes walks into the party. She goes straight for Lindsay, Sam, Ally, and Elody, and calls them all “bitches” to their faces. Ally pours her drink on Juliet, and soon everyone else gathered around her is doing the same. Sam pushes Juliet toward the door, and she leaves, humiliated. Kent has seen everything—as Sam hustles out of the room to look for Rob, Kent intercepts her and berates her for being so cruel to Juliet. When Sam finds Rob, she realizes that he is too drunk to have sex, and she leaves dejectedly with Lindsay, Ally, and Elody. As the girls drive home, they listen to music and smoke cigarettes. Suddenly, Lindsay screams a word Sam can’t make out, and the car flies off the road. As Sam experiences the moment of her death, she is full of heat and sound and pain.
Sam wakes up from a dream in which she is falling to her alarm going off. Her sister bursts into her room and wakes her up—Sam protests that it is a Saturday, but when she checks her phone, she sees a text from Lindsay and notices the date. It is Friday, February 12th—again. Sam, disoriented, attempts to get into the shower, but Lindsay comes upstairs from the driveway and tells Sam there’s no time to get ready; she doesn’t want to be late for Cupid Day. Confused, Sam follows Lindsay to the car, and as they pick Elody up from her house, Sam experiences an intense feeling of unease as the jokes and conversations from the previous day repeat themselves. As Sam goes through her morning classes, she notices that though many things are the same, some small things are different—she begins to suspect that something bigger and more sinister than mere déjà vu is going on.
At lunchtime, Sam is relieved to see Rob, and confides in him that she’s not feeling well. Rather than reacting with sympathy, he accuses her of trying to get out of their big night. Lindsay and Rob both tell Sam that they want to go to Kent’s party, and though Sam is reluctant to go back to the party, she ultimately agrees. That night, as the girls get ready at Ally’s house, Lindsay tells Sam urgently that she needs to confess something to her—Sam is relieved, thinking that perhaps Lindsay is experiencing the same thing she is, but instead Lindsay just pranks her by burping in her face. Feeling more alone than ever, Sam begrudgingly goes along to the party, but the whole time she feels weak, lightheaded, and insecure. Sam tries to get Rob or Lindsay to leave with her so that she can avoid what is coming next, but it is too late—Juliet Sykes shows up, repeats her tirade, and is again harassed and humiliated by everyone at the party. Shortly after the confrontation, Sam and her friends leave—again in Lindsay’s truck, with Lindsay at the wheel—and again, they see a flash in front of the car just before Lindsay drives them off the road and into the woods.
Sam dreams that she is falling once again, and when she wakes up, she realizes that it is, for a third time now, February 12th. Sam remembers what has happened to her two nights in a row now, and wonders if both days were real. She feels she is stuck in the “after-death equivalent of the movie Groundhog Day,” and begins to consider that she has died and is stuck in some kind of time loop. Sam begs to stay home from school—her mother agrees to allow her to sleep in a little bit, but drives her to school before lunch. When Sam gets dropped off at school, she vows to herself that tonight there will be no accident—she will close the loop for good. The events of the day repeat themselves—Sam receives her roses, Kent invites her to his party, and she joins her friends in the cafeteria. Over lunch, she tells the girls that she doesn’t want to go out tonight, and begs to stay in like they used to as underclassmen. Her friends agree. That evening, they all gather at Ally’s house to eat sushi, watch movies, and have a sleepover on Ally’s giant couch. The girls go to bed as the clock ticks past 12:39, and Sam is convinced that she has done it—she has escaped death and closed the loop. Soon after lights-out, though, Ally’s mother comes downstairs to wake them up—she has just gotten a phone call telling her that Juliet Sykes is dead: she shot herself in her bedroom. The girls wonder aloud whether Juliet killed herself because of their constant torment, and Ally and Elody, frightened, head upstairs to sleep in Ally’s room. Sam gets up from the couch and goes down to the basement to look at old yearbooks—as she does, she notices that Lindsay and Juliet were together in every single picture from kindergarten through the fourth grade. She realizes that Lindsay and Juliet were once friends, but when she confronts Lindsay about it, Lindsay deflects, explaining that Juliet and her entire family are “totally wacked.” Sam returns to the couch and falls asleep, feeling herself pulled through darkness once again.
Before Sam even opens her eyes, she knows her plan did not work. Sam is angry with Lindsay, angry at her own failure to fix things, and angry at the banal repetitions of Cupid Day. On the drive from Elody’s house to campus, Sam picks a fight with Lindsay for being so cruel to everyone around her. Lindsay kicks Sam out of the car, and she is forced to walk the rest of the way to school in the cold. Sam knows that the fight doesn’t matter, and wonders if anything matters anymore. Sam cuts class for the first few periods, and when she arrives at calculus class, her handsome teacher Mr. Daimler makes a flirtatious remark about her outfit. Sam flirts right back. When the Cupids deliver Sam’s roses, she throws them in the trash at the front of the classroom, shocking all of her classmates, who view the roses as valuable markers of states and popularity. Mr. Daimler tells Sam that she’s “breaking hearts,” and Sam asks Mr. Daimler if she’s breaking his. She openly flirts with him in front of the whole class until he demands she retake her seat. After class, Mr. Daimler asks Sam to stay back—he reprimands her for being so inappropriate, but Sam pushes things even further, telling Mr. Daimler that she “wants” him, and soon he is kissing her and pushing her on her back on a student’s desk. Sam manages to push Mr. Daimler off of her, and he asks her to keep quiet about what just happened between them. Sam hurriedly leaves, wishing she could tell Lindsay, but remembering that the two of them are in a fight. Sam skips lunch and heads for an out-of-the-way bathroom to be alone. There, she finds Anna Cartullo holed up smoking a joint. Sam joins her, and the two of them bond as they discuss the obscure mechanisms of popularity, and Sam obliquely apologizes for her role in having damaged Anna’s social status. After school, Sam goes to the parking lot but sees Lindsay, Elody, and Ally leaving without her. Sam is approached by three girls who are on the fringes of her social circle, Tara, Beth, and Courtney, and they invite her to the mall. Sam accepts. On the way, Sam asks them to stop at her house—she sneaks inside and steals her mother’s credit card. At the mall, Sam takes herself on a shopping spree, spending wildly and knowing that none of it will matter. Sam treats the girls to a fancy dinner and then they all head to Kent’s party. Sam does not speak to Lindsay, Elody, or Ally, but when Juliet shows up, Sam finds Rob and drags him into a bedroom, desperate to avoid watching the whole spectacle again. Rob, who is very drunk, falls asleep before the two of them can have sex, and Sam retreats to another room, where she begins crying. Kent comes into the room and asks Sam if she’s okay; he offers her a glass of water, and tells her that she can talk to him if she needs to. He confesses that he only had a party because he hoped Sam would show up. Sam apologizes for her cruelty to Kent over the years, and asks if she can stay in one of Kent’s guest bedrooms rather than going home. Kent leads Sam to a spare bedroom and tucks her in, and she feels safe and warm.
Sam wakes up gasping, relieved for the first time to be waking up on February 12th yet again. When Izzy comes in to jump on Sam’s bed and rouse her, she tickles her sister playfully. Sam’s mother comes to get them both and instruct them to get ready for school, but Sam pleads with her mother to let them both stay home—Sam tells her mother a white lie, which is that she and Rob have broken up. Sam agrees to let the girls stay home from school, but tells Sam she needs to take care of Izzy. Sam happily agrees. Sam takes Izzy to one of her favorite childhood hideaways—a big rock in the woods which Sam named Goose Point. As Sam spends the day with her sister, she marvels at Izzy’s intrepid spirit and independence, and wishes that she could know who her sister will grow up to be. That night, rather than going out with her friends, Sam accompanies her family to dinner—it is the first time they’ve all been together on a Friday night in years. They have a joyful meal, but towards the end of it, a group of students from Sam’s high school walks in—among them is the blond girl who gave Sam her roses in calculus class. Sam realizes she must be Juliet’s younger sister. Sam approaches the girl, who introduces herself as Marian, and asks her to tell Juliet not to “do it”—Sam tells Juliet’s sister that she is referring to a science project, and Juliet will know what she means. Juliet’s sister says she’ll deliver the message, but not until tomorrow morning—Juliet is out tonight. After dinner, Sam returns home with her family, but is bothered and concerned about Juliet. She takes her mother’s car and drives to Juliet’s house, where she meets Juliet’s parents—who seem normal, if a little sad—and, under the guise of being Juliet’s lab partner and needing to get some notes from her, asks Juliet’s mother to call Juliet. Juliet’s mother can’t get through, though, and Sam leaves, heading for Kent’s party. When Sam gets to the party, Juliet has already delivered her tirade and left. Sam chases Juliet through the woods, and finds her standing at the edge of the highway. Though Sam pleads with Juliet, begging her to come away from the road, come home with Sam, and talk everything out, Juliet throws herself into oncoming traffic—directly in front of Lindsay’s Range Rover. The car crashes into Juliet just as Kent reaches Sam. The two of them watch as Lindsay and Ally stumble from the wreckage, and the police and ambulances arrive to take two lifeless bodies away from the scene—Juliet’s, and Elody’s. Kent takes Sam back to her house, comforts her with hot chocolate, a shower, and fresh pajamas, and puts her to bed. As she falls asleep, Sam believes she can feel Kent kiss her, but is quickly pulled under into sleep.
Sam wakes up in the morning in an uncharacteristically good mood—she hugs her parents and her sister goodbye as she rushes out of the house to meet Lindsay, planning to save to lives today: Juliet’s, and her own. As Lindsay and Sam drive to school with Elody, Sam thinks of how much she loves her friends despite their imperfections. Sam goes to the room where all the Cupid Day roses are stored and makes a few alterations, buying Juliet Sykes a huge bundle of roses. At lunch, Sam waits for Juliet to walk into the cafeteria with the bouquet, but is disappointed when Juliet enters the room with no roses. Sam urges her friends not to tease Juliet today, but they call her a hypocrite. Sam follows Juliet out of the cafeteria, but is unable to catch up to her—instead, she runs into Kent. She flirts openly with him until Lindsay cuts in to drag Sam away to TCBY. That evening, as the girls get ready for Kent’s party, Sam rehearses what she’ll say to him at the event. She volunteers to be her friends’ designated driver for the evening, hoping that she’ll still be able to change the course of events. At the party, Sam humiliates Rob by telling him to wait in a spare room for her, naked, and then sending the school’s biggest gossip into the room, and tells Alex Liment’s girlfriend, Bridget McGuire, that he’s cheating on her. She feels as if she is doing everything right today, and gears up for Juliet’s arrival. As soon as she spots her, she drags Juliet into the nearest bathroom and tries to apologize for all the hurt she’s caused, but Juliet won’t hear any of it. Juliet enumerates the countless hurts Sam and her friends have inflicted upon her over the years, and reveals that it was Lindsay who peed her sleeping bag in the fifth grade, not Juliet. Juliet waited for years for the harassment to stop on its own, but it never did, and now it is too late for Sam to fix anything, according to Juliet. Juliet leaves the bathroom and the party—Sam chases after her, following her through the woods to the road, where she begs her not to jump out in front of Lindsay’s car. Juliet tells Sam that she never meant to jump in front of Lindsay’s car specifically—not everything is about Sam. Juliet then leaps in front of a random truck, and is killed. Sam drives Lindsay home, and confronts her about her lies concerning Juliet. Lindsay confesses that she, too, thought that the teasing wouldn’t last. Kent has followed Sam to Lindsay’s house so that Sam could drive Lindsay’s truck home, and now Sam gets into Kent’s car so that he can drive her home. When they arrive, Sam confesses that the best part of her whole day was her short car ride with Kent—the two kiss, and Sam feels time seem to freeze.
Sam wakes up on the seventh February 12th knowing at last that the time loop was never about saving her own life—at least not in the way she thought. Sam says goodbye to her parents and to Izzy, knowing she will never see them again. As Lindsay, Sam, and Elody drive to school, Sam takes in the sights and sounds of her hometown one last time. Sam once again goes to the rose room to adjust the Valograms, and then heads to class. When it’s time for calculus, Sam arrives early—Mr. Daimler attempts to flirt with her, but Sam shoots him down, berating him for hitting on high school girls. After class, Kent approaches Sam to ask about the mysterious rose she sent—the note attached urges him to pay attention to his phone tonight, so that he can come to her need and “be [her] hero.” Kent tells Sam that he can count on her for whatever she needs, and Sam resists the urge to kiss him. At lunch, Sam breaks up with Rob—he reacts cruelly, but Sam is glad to be rid of him. As Juliet walks into the cafeteria, Sam sees that she has a single rose with her—Sam altered the note to read, “It’s never too late.” That night, when the girls arrive at the party, Sam urges her friends to head inside while she drives Lindsay’s car home. They protest, but Sam insists they trust her. Sam texts Kent to pick her up at Lindsay’s—he does, as promised, but doesn’t ask any questions. When the two of them pull up to Kent’s house, Sam thanks him, and kisses him intensely. She tells Kent that he has saved her life, before jumping out of the car and heading inside for the last party of her life. Sam waits in the doorway for Juliet—when she arrives, Sam tells her that she knows what she’s planning to do. Juliet, alarmed, slips away from Sam and out into the woods. Kent approaches Sam to ask why she would kiss him and leave, and Sam apologizes for not having the time to talk to him right now. She runs off after Juliet, calling for her, and hears Kent, calling her own name. Sam at last comes upon Juliet at the side of the highway. Sam tries to talk Juliet away from the road, but fails. Juliet runs out into oncoming traffic—Sam follows her and pushes her out of harm’s way, and is herself struck by a vehicle. As Sam lies in the road, dying, she sees Juliet’s face appear above her. Juliet’s blond hair appears as a halo to Sam, and though Juliet marvels aloud that Sam saved her, Sam knows that the “opposite” is true.
In her final moments, Sam watches her “greatest hits” pass her by—all the best moments of her life speed past one by one. Sam says she isn’t afraid to die, and remarks that the moment of death is full of light, warmth, and beauty. One day, she says, her readers will see for themselves.