Twelve-year-old Anna McConnell, an aspiring actress from Philadelphia, opens the story with a promise to a girl she has seen only once: a frightened child with large, pleading eyes whom Anna vows never to forget.
Anna has spent weeks performing as a costumed cranberry mascot at a Philadelphia mall alongside her best friend and acting partner, Lorenzo Lu. But her run is ending. Her parents' marriage is falling apart. Eight days before her departure, her father, Brian, a teacher laid off from a job he loved and now back in accounting, chased down a driver who cut him off in traffic while Anna sat in the passenger seat. Back home, Brian's rage boiled over: When Anna's mother, Sarah, confronted him, he flipped the dining room table and left. The next day, Sarah told Anna they would be separating. Sarah would stay with her brother in New Jersey, and Anna would spend the summer with Brian's mother, Mim, in Rosemont, Virginia.
Rosemont is a small town devoted to flowers, with an annual flower festival and parade approaching. Mim's home radiates warmth, and she runs a florist shop called Flower People while overseeing the festival's planning. Anna quickly settles in, delivering bouquets and meeting Burke, a talented teenage employee who warns her to stay away from the town's wealthiest resident, Coleman Crudup. She also befriends Taylor, a 16-year-old who lives next door with her grandmother and rides a white horse named Zoe. Mim hints that Zoe once saved Taylor but does not elaborate.
Anna volunteers at the library dressed as a petunia, where she meets Ben, a drummer and aspiring songwriter in the Rosemont Middle School Jazz Band, and clashes with Caitlin Crudup, Coleman's daughter and the band's lead trumpet player. One day, while on a break outside, Anna witnesses a disturbing scene. A van pulls into the parking lot. A woman exits, talking loudly on a purple phone in an unfamiliar language, wearing a hot pink shirt with a silver star. She demands Anna show her to the bathroom, then drags a nervous girl inside and slams the stall door. After they leave, the girl jumps from the van and tries to run. A man catches her, claiming she is sick, and carries her back. For a brief moment, the girl looks at Anna with huge, pleading eyes before the van drives away.
Anna tells Winnie Dugan, Mim's best friend and a librarian, what she saw. Together they record every detail. Deputy Bitterson dismisses the account, citing no matching missing persons report and limited resources. Over the following days, Anna's memory surfaces additional details: the girl wore a yellow scrunchie, the woman had a daisy tattoo, and the van bore an Iowa license plate and a partially torn "Proud to Be an American" flag sticker. Anna buys yellow scrunchies and wears one as a bracelet, a promise to remember the girl. Mim, Winnie, and Taylor wear them too. When Anna discovers the deputy never filed his report, she goes to the sheriff's office and insists the information be entered.
Winnie's grandson Brad, an agent for the Department of Homeland Security, arranges for Anna to work with a police sketch artist. Together they produce composite sketches of the girl, the woman, and the van, which are distributed through law enforcement channels. Winnie explains that Brad believes the situation may involve human trafficking, a form of modern-day slavery in which people are held and forced to work against their will. A new witness, Siri, a girl who had also been at the library on the day of the incident, then approaches Anna with a matchbook she found on the bathroom floor after the woman and girl left. It bears a silver star logo and the address of Star Nails, a local nail salon. Winnie sends the matchbook to Brad for fingerprint analysis, and he opens a full investigation.
Anna, Taylor, and Mim visit Star Nails to observe the salon firsthand. A smiling man repeatedly shouts "Happy!" and the Vietnamese nail workers smile on cue, which strikes Anna as robotic and forced. On a return visit, a nail worker with big, scared eyes slips Anna a small blue envelope hidden inside a magazine. The note inside is written in Vietnamese. Winnie contacts Brad, who reveals that the note is from the girl's mother, stating that she and her daughter are being held against their will.
Brian arrives unexpectedly in Rosemont, seeming like his old self: laughing, helpful, and free of anger. He apologizes to Anna for his behavior and steps in to manage festival duties for Mim. Anna's mother also arrives, wanting to bring Anna home, but the shock on top of accumulated stress causes Anna to faint. After she recovers, Brad shows her a photograph of the girl and reveals her name is Kim Su.
When Mim suffers a stress-related heart episode, Anna stakes out Star Nails despite her father's objections. She spots the van, now decorated with flowers for the festival but still bearing the torn flag sticker, pull behind the salon through a tall gate. Anna alerts Brian, who calls Winnie, who contacts Brad. Brian blocks the van in an intersection by faking engine trouble, and Brad arrives to arrest the driver. Homeland Security agents simultaneously raid Star Nails, arresting the owner, Mr. Deng, and freeing five Vietnamese women who had been forced to work under threats and beatings. Kim Su is not found.
Brad explains that four nail salons in total were shut down for trafficking. The woman who slipped Anna the note is confirmed to be Kim Su's mother; Mr. Deng had separated them to maintain control. Anna conceives a plan for the parade: a campaign called One Girl Matters, or OGM, to spread Kim Su's photo and rally the community. She enlists Ben, Siri, Caitlin, and, at Caitlin's insistence, Coleman Crudup himself, who becomes emotional and agrees to fund the entire effort.
The Parade of Flowers unfolds with Taylor as Queen of the Flowers riding Zoe. At a trumpet blast from Caitlin, OGM banners unfurl on every float, marchers carry Kim Su's photo, and yellow scrunchies are distributed to the crowd. Anna sings Ben's song "Tell Me" from the Middle School Blues float, delivering the strongest vocal performance of her life. Afterward, a tip from a Vietnamese businessman two towns away leads Homeland Security to Kim Su, who is recovered safely and reunited with her mother.
Brad arranges for Kim Su and her mother to visit Mim's home. Through a translator, Kim Su's mother takes Anna's hands and thanks her. Kim Su gives Anna a flower and says "thank you, my friend." Bean, Mim's dog, breaks the tension by bringing Kim Su a tennis ball; she throws it and laughs freely. Anna gives Kim Su a bouquet and a bracelet with a pink heart, and the families exchange bows before Kim Su and her mother leave.
Back in Philadelphia, Anna resumes her cranberry role with Lorenzo. Brian attends the performance, and Sarah arrives too. Though tensions remain, Anna's parents show signs of reconciliation, and Anna coaxes her father into an impromptu dance in front of the store, the do-over father-daughter dance she has always wanted. In an epilogue, Anna, now 13, reflects on the summer's lasting impact. She redefines bravery as not only bold leaps but also small, uncertain steps, concluding that sometimes it takes great courage simply to be who you are.