Actions

Work Header

Yesterday, Today, Tomorrow

Summary:

This is a story about Jason Todd: how he broke time, how he learned to live, how he learned to love—and how he’s still figuring out how to move on.

It’s about 5:16 AM, a sushi restaurant, and those pesky upstairs neighbors.

Notes:

I’ve basically written everything but the last chapter. I’m not super happy with the end product but I thought I should just post it before I do something drastic like delete everything and lose all my progress.

Chapter 1: 5:16 AM

Chapter Text

_____


Jason would do anything to not wake up to the sound of screaming from the couple a floor above him.

 

Of all the days to get stuck in a time loop, it had to be this one. The one time he actually crashed at his apartment instead of skulking around rooftops or passed out on someone else’s couch. One goddamn night of pretending he had a life, and this is where he landed. Back in bed. Back to square one. Back to—

 

CRASH.

 

Right on cue. A plate shatters above him. Muffled shouting bleeds through the ceiling like it always does, like it always will. The woman’s voice cracks, desperate. The man’s is just noise: loud, blunt, mean.

 

He doesn’t check the clock. He doesn’t have to.

 

It’s 5:16 AM.

 

He stares up at the ceiling like it personally betrayed him. His jaw ticks. His hands are already moving—pulling on jeans, holstering a pistol, slipping the domino mask into place like it’s muscle memory. Because it is.

 

He’s done this before.

 

Too many times to count.

 

_____

 

Three steps at a time, up the stairwell. His boots don’t squeak anymore. He memorized where they used to. Kicks open the door.

 

The man flinches mid-slap, hand still cocked back. The woman’s curled in the corner, makeup smeared down her face, fresh bruise on her cheek.

 

Jason doesn’t wait for the bastard’s predictable, “What the fuck’re you doin’ here—”

 

His fist breaks the guy’s nose before the sentence can end.

 

The next few seconds are a blur of bone and blood and rage. Jason knows every beat by heart: the squelch of cartilage, the crunch of teeth on tile, the soft pop of a shoulder dislocating when it hits the ground wrong.

 

“Lay.” Crack. “Another.” Splat. “Hand.” Thud. “On.” Groan. “Her—” One last punch. Messy. Satisfying. “—and you’re dead. I keep my promises. Understood?”

 

The guy chokes, gurgling on blood. His head lolls forward in something like a nod.

 

Jason doesn’t wait for thanks. Doesn’t look at the woman. That was a mistake he made the first few loops. She stabbed him once. Shot him twice. Crazy fucks.

 

He walks out without a word.

 

_____

 

By 5:34 AM, he’s back at his place. Shirt half-ripped. Knuckles red. He doesn’t bother wrapping them anymore.

 

He’s tried staying in bed before. Ignoring the noise. Pretending it wasn’t happening. But then the day would feel wrong. Like the weight of it all shifted, off by just enough to scratch under his skin. And eventually, he figured out if he doesn’t intervene upstairs, something worse happens later.

 

So he goes. Every time. Just to keep the day manageable.

 

_____

 

Jason cracks open the fridge. There’s a beer he’s had hundreds of times. Literally. Same taste. Same label. Same half-smudged expiration date he could recite in his sleep.

 

He doesn’t drink it.

 

He just holds it.

 

Across the room, his burner phone buzzes. He knows who it is. What the message says.

 

Roy: Rise and shine sleeping beauty. Don’t make me come drag your grumpy ass outta bed again.

 

It’s always this message.

 

Always this moment.

 

Jason swallows hard. Doesn’t reply.

 

_____

 

The sun rises like it always does.

 

Jason doesn’t watch it. He’s already out the window, grappling across rooftops, blending into the buzz of Gotham’s heartbeat.

 

Crime doesn’t stop for time loops. Muggings still happen. Dealers still sell. There’s always a purse snatcher to break a wrist over. Some bastard thinks he’s untouchable—until he’s got a boot in his jaw and Red Hood breathing down his neck.

 

It’s almost comforting. Almost.

 

By noon, he’s in Crime Alley.

 

He doesn’t remember why he started going there every loop. The first few times it felt poetic, or maybe masochistic. Now it’s just… momentum? Routine? A place where everything already went wrong, and somehow still feels simpler than the rest of the world.

 

He sits on the bench across from the alley wall. Same graffiti. Same chipped bricks. Same distant echo of church bells if he strains to listen.

 

Lunch is cold coffee and half a protein bar.

 

He eats it like he deserves nothing better.

 

Mid-afternoon, he makes an appearance in the Narrows. Roughs up a guy who’s been shaking down corner stores. Doesn’t kill him, but makes sure he remembers Jason’s fist.

 

He doesn’t have to do this. Nothing today sticks. But something about the ritual—the routine—keeps him from unraveling.

 

And maybe that’s the trick. If he keeps moving, keeps acting like it’s just another day, maybe it will be. Maybe he can fool himself.

 

By evening, he finds himself outside the manor.

 

He doesn’t go in.

 

Just stands there, helmet tucked under one arm, watching through the tall windows. There’s laughter inside. Alfred’s setting out tea. Cass is doing that thing where she perches on the banister like a gargoyle. Tim’s pacing with his tablet, talking to no one in particular. The rest of the gang is hanging out without a care in the world.

 

They’re all alive. Whole.

 

He doesn’t knock.

 

Doesn’t let them see him.

 

He turns around before Bruce enters the room.

 

Later, he’s back on his fire escape. Smoking a cigarette he’s smoked a hundred times. The city glows beneath him. Traffic hums. People move, live, fight, cry.

 

Time doesn’t stop for them.

 

Just him.

 

He glances at his phone again. Still no reply sent.

 

The message sits there, bright and waiting.

 

Jason’s thumb hovers over the screen. He could respond this time. Say something. Anything.

 

But he doesn’t. He just sighs, flicks ash into the wind, and looks at the clock on his phone.

 

9:57 PM.

 

His stomach sinks. His fingers curl tight around the phone, knuckles whitening.

 

He doesn’t cry. He just says, quiet and flat, “I guess he’s gone now.”

 

_____

 

Chapter 2: Grief has weight

Summary:

It’s not about saving Roy. Not really. Not anymore.

It’s about proving it matters. That he matters. That his grief has weight. That if he hits the right sequence of events, the universe will blink and say—Fine. You did it. You win. He can stay.

Chapter Text

. . .


There’s a version of the day where Jason dies at 9:51 PM.

 

He steps in front of Roy. Takes the bullet. Hits the ground hard. Bleeds out fast. When the world fades, he thinks—Good. Let it end here. Let this be the one.

 

But it never is. Because the next time his eyes open, the screaming’s already started.

 

5:16 AM.

 

Like clockwork.

 

. . .

 

He’s tried saving Roy every way he can think of.

 

Loop #14:

 

Jason tracks the killer first. Shoots him in the chest before he can even rob that stupid fucking sushi place. It’s not justice. It’s desperation. Bruce and the rest of his family are disappointed in him. Angry. He did promise not to kill anymore, after all.

 

Roy lives.

 

Jason resets anyways.

 

Loop #27:

 

He tells Roy not to leave his apartment. Roy laughs, says Jason’s being dramatic. Jason punches a hole in the wall to prove he isn’t. Roy leaves anyway.

 

He dies in that stupid fucking sushi place.

 

Loop #51: 

 

He doesn’t do anything. Just follows Roy all day, hands jammed in his pockets, eyes watching every angle. He is adamant about not wanting sushi when Roy asks what he wants to eat.

 

Roy catches him staring and throws a French fry at him. “You’re acting weird today,” he says. “Weirder than usual.”

 

Jason just shrugs. “You’re still alive, aren’t you?”

 

It feels like a win. For a while. Roy laughs. Jason almost does too. He lets himself believe, just for a second, that maybe this is the one.

 

Until the loop resets anyway.

 

Like it always does.

 

. . .

 

He’s tried magic as well.

 

Loop #131: Constantine. Loop #147: Zatanna.

 

Didn’t work. They didn’t remember. No one ever did.

 

. . .

 

Loop #163:

 

He told Bruce.

 

Flat out. No sarcasm. No bravado. Just sat on the edge of the rooftop and said, “I’m stuck in a loop. And Roy’s gonna die.”

 

Bruce stared at him for a long time. Longer than usual. Then he said, “You should tell him how you feel.”

 

Jason nearly laughed in his face.

 

. . .

 

There’s a loop where he does tell Roy.

 

Roy blinks at him, startled. “Uh. Okay. Cool. So are you dying or something?”

 

Jason says, “No. You are.”

 

And that’s the end of that one.

 

. . .

 

Jason lights a cigarette and doesn’t smoke it. Just watches it burn down between his fingers.

 

He doesn’t cry anymore. Not after loop #217 where Roy bled out in his arms and Jason screamed until his throat gave out. He doesn’t break things anymore. Not after he shattered every window in his apartment and they all reset like nothing ever happened.

 

He doesn’t sleep much either. What’s the point?

 

Time doesn’t move unless he does.

 

. . .

 

It’s not about saving Roy. Not really. Not anymore.

 

It’s about proving it matters. That he matters. That his grief has weight. That if he hits the right sequence of events, the universe will blink and say—Fine. You did it. You win. He can stay.

 

But it never does.

 

It just resets.

 

And every time he opens his eyes, there’s screaming overhead and blood in his mouth, and Roy’s text on his screen like nothing happened.

 

. . .

 

He watches the sun rise from a rooftop. Tosses the burnt-out cigarette into the wind. Checks the time. 5:07 AM. He has nine minutes left. He could call Roy. Could talk to him, hear his voice one more time. They had tacos a few hours ago. Could even run to his place, knock on the door, hold him like he means it.

 

But instead he stares at the horizon and whispers, almost too soft for the wind to carry, “See you in the next one.”

 

. . .

 

Chapter 3: Will you remember this?

Summary:

He stops counting loops after #399.

 

Not because he can’t remember.

 

But because it doesn’t matter.

Chapter Text

 


Loop #236:

 

Jason doesn’t get out of bed.

 

He listens to the screaming upstairs. The crashing. The pleading. The thump of someone hitting a wall. He doesn’t move. The ceiling creaks once. Twice. Then goes still.

 

5:59 AM.

 

He showers. Eats dry cereal straight from the box (Dick would be proud). Watches an entire movie on the shitty TV bolted to the wall.

 

Roy texts. He doesn’t open it. He doesn’t leave the apartment.

 

When Roy dies at 9:51 PM, Jason just closes his eyes and waits.

 

Loop #279:

 

He tries something new. He goes out to breakfast.

 

A diner he used to hit with Roy when they were younger and reckless and pretending they didn’t care about each other. He orders pancakes. Doesn’t finish them.

 

The waitress calls him honey. Smiles at him like she doesn’t know he’s a ghost. He tips her $200. What does it matter? 

 

Roy still dies.

 

Loop #301:

 

Jason decides to be good. Stops a robbery. Saves a kid from getting hit by a car. Returns a woman’s lost purse. Doesn’t shoot anyone.

 

He gets applause. Gratitude. A thank-you note drawn in crayon.

 

He still resets.

 

Loop #344:

 

He kills everyone involved in Roy’s murder. Before they even know they’re involved. Burns the building down. Walks away with soot on his hands and a quiet chest.

 

Roy lives. For now.

 

Jason doesn’t feel better.

 

Reset.

 

. . .

 

He stops counting loops after #399.

 

Not because he can’t remember.

 

But because it doesn’t matter.

 

. . .

 

There are days when he does nothing at all. Lets the city rot. Lets Roy die.

 

Lets himself sit on the floor of his apartment with a beer that always tastes the same and bruised knuckles that never stay bruised.

 

He stops checking the time.

 

Stops replying to anyone who calls.

 

. . .

 

Until one day—Loop… who knows anymore—

 

There’s a knock on his door.

 

Jason doesn’t answer. Not right away. He thinks about how many loops he’s lived through—how many times he’s walked past this door, come home covered in blood to silence on the other side.

 

He’s never heard a knock. Not once. The knock comes again. Louder.

 

Jason still doesn’t move.

 

“Jay? I know you’re in there.” The voice on the other side says. And that shouldn’t happen.

 

Jason’s already rewinding through the possibilities. Maybe it’s Dick. Maybe it’s Bruce. Then the voice comes again, rough and familiar and wrong in all the right ways, “Don’t make me break in there and drag your grumpy ass outta bed.”

 

His heartbeat stutters. Jason moves like he’s underwater. Heavy and slow. He unlocks the door. Opens it.

 

And there he is.

 

Roy Harper.

 

Coffee in one hand, takeout bag in the other. Hoodie pushed up to his elbows, tattoo on his forearm just barely visible. “Thought we were getting sushi, jackass.”

 

Jason doesn’t say anything. Doesn’t trust himself to. Roy pushes past him like he’s done it a hundred times, and maybe he has. But never on this day.

 

. . .

 

They eat on the floor.

 

Roy talks. About nothing. Everything. How Oliver’s being a dick again. Some kid in the park mistook him for a pop star. That time he and Wally tried to microwave a grilled cheese and started a fire.

 

Jason doesn’t say much. Just listens. Breathes.

 

He keeps waiting for Roy to flicker. For the day to glitch. For time to scream and snap and rewind.

 

But it doesn’t. Not yet anyway.

 

“Jay,” Roy says at one point, mouth half-full of rice, “I’m not gonna lie, you’re being real weird today.”

 

Jason blinks. “Yeah.”

 

“You sick?”

 

“No.”

 

“Dying?”

 

Jason exhales through his nose. “Not today.”

 

Roy squints. “That’s ominous.”

 

Jason shrugs. “You brought sushi. I figured I’d take the win.”

 

Roy grins. “Damn right you will.”

 

They play a stupid card game on the coffee table. Roy cheats. Jason lets him. They watch TV. Roy falls asleep halfway through some bad kung fu movie, head tipped back, mouth open like an idiot.

 

Jason doesn’t move. He just sits there watching. Memorizing.

 

. . .

 

Eventually, Roy wakes up and groans like he’s ancient.

 

Jason doesn’t tell him what time it is. He doesn’t want to know.

 

They move to the fire escape, where the city breathes around them. Cars below, wind against their skin. Roy kicks his feet and hums something out of tune.

 

Then, out of nowhere, “You ever think,” Roy says suddenly, “about how weird time is?”

 

Jason stiffens. “All the time.”

 

Roy snorts. “Nah, I mean like… how one day can feel like forever? Like it’s just stretching out around you, refusing to end?”

 

Jason swallows. “Yeah,” he says. “I know that feeling.”

 

Roy smiles. And he shouldn’t understand, not really—but there’s a knowing glint in his eyes that cuts through Jason’s ribs like it’s butter. That’s when Jason knows—this loop is different. 

 

He looks away, squeezes his eyes shut, trying to block out the truth pressing in from all sides.

 

“I’m not ready.”

 

“It’s not about being ready, Jay,” Roy says gently, “It’s about learning how to keep living.”

 

Jason feels Roy’s arm slide around his shoulders. He half-heartedly tries to shrug it off, shuddering as he growls through his teeth “No! I can’t!”

 

“This isn’t healthy. I don’t want this for you.” Roy doesn’t let go. Just pulls him tighter. Holds him like he’s afraid Jason might vanish instead.  “I should’ve known. You’re so damn stubborn, it doesn’t even surprise me that you managed to break time.”

 

Jason breaks. Can’t stop the tears. Hates that he’s crying. He clings to Roy anyway. “Why’re you here?” He chokes out.

 

“Same reason you are,” Roy whispers. “I’m here to say goodbye.”

 

Jason buries his face in Roy’s shirt. Cries like it’s the first time. Maybe it is.

 

“I don’t want you to suffer like this,” Roy murmurs, “You’ve got your whole life ahead of you. There’s no reason for you to keep reliving today.”

 

“What does it matter?” Jason whines, “Why can’t you just stay with me?” 

Roy laughs—wet and broken. He pulls back just enough to cup Jason’s face, wipe the tears from his cheeks. “You think if I could, I wouldn’t stay? Of course I want to. But that’s not how the world works, Jason. I have today, and today only.”

 

“It’s not fair.”

 

“Don’t I fuckin’ know it.” He leans his forehead against Jason’s. Breathes in. Breathes with him. “But if today’s all I get—I want it to be with you. I’m here to let you know that everything will be okay. You deserve to keep going.”

 

Jason sniffles. Wraps his arms around Roy like he’ll fall apart otherwise.

 

“For my sake,” Roy says softly, pressing a kiss to Jason’s temple, “please live.”

 

His hand rubs slow, calming circles against Jason’s back. He feels pathetic. Why does he need comforting, when the love of his life is the one who’s destined to die today?

 

He’s angry. Angry at the world. At time. At himself.

 

He’d trade places in a heartbeat.

 

But like Roy said, that’s not how this works.

 

“In the next one…” Jason hesitates. “Will you remember this?”

 

Roy shakes his head, “No.” Then he smiles, something bittersweet tugging at his lips. “But there’s one thing I want from you.”

 

“Anything.”

 

“Spend the day with me. No fighting. No fixing. Just… go along with whatever dumb shit I come up with. Like the very first day the loop began.”

 

Jason doesn’t speak right away. Just looks at him. Eyes shining with something fragile. 


“Okay,” he says, soft as breath. 


And this time, he means it.