第1章
When I walked out of the funeral home, the Perfect Wife app my boyfriend, Ryan Keller, developed popped up with its 99th penalty notification.
[Perfect Wife Score: -3. Reason: Too many calls.]
I opened the app. Three years' worth of deductions filled the screen.
I lost a point for asking him to pick me up from work in the pouring rain. Apparently, that made me too dependent.
Three more disappeared after a fight because I refused to admit I was wrong. According to the app, that made me dishonest.
Then there were the ten points I lost because I once asked Mom to pretend she was sick for me. Apparently, that meant she had raised me badly.
I scrolled through the list without feeling much of anything until I reached the one name that had always mattered more than mine.
Claire Snyder. Ryan's ex-girlfriend, who apparently couldn't handle anything on her own.
A pipe burst in her apartment, so Ryan rushed over to fix it. Her neighborhood lost power at night, so she needed him to stay with her. Even today, when Claire's mom twisted her ankle during a dance class, Claire called Ryan to drive them to the hospital.
Meanwhile, Mom suffered a sudden brain hemorrhage. I called Ryan 58 times. Every call went straight to a busy signal.
By the time I stopped calling, Mom's hand had already gone cold. Not long after, she was wheeled out of the hospital and into the funeral home.
I flexed my stiff fingers and tapped "No Objection" for the first time.
Claire's cloying prerecorded voice immediately played through my phone.
"Congratulations! Looks like you've finally learned how to be understanding. That puts your Perfect Wife Score at 60, which means you're officially eligible to get married! Better make it to the courthouse within three days, though, or you'll lose your chance!"
I stared at the screen for a second, then deleted the app.
Three days from now, I really was going to the courthouse to get married.
Just not with Ryan.
Chapter 1
A second before the Perfect Wife app finished uninstalling, Ryan Keller called.
"Julia, you did good this time. Now certain people don't have an excuse to keep me from marrying you."
Claire Snyder immediately scoffed in the background.
"Hey, don't act like I'm the one bullying her. You're the one who made that stupid scoring app. And after all these years, she barely scraped together enough points. Maybe you just have terrible taste in women."
Ryan's tone turned cold.
"I've told you before. Julia's better than you in every way. You were so sure she'd never pass, and now that she has, you're trying to back out?"
They started arguing almost immediately, dragging up old fights before long.
They dated in college, but their relationship was a mess. Ryan hated Claire's constant drama, while Claire complained that he was cold and completely unromantic.
At their worst, Claire even accused Ryan of cheating in school and stealing, then blasted the rumors all over the campus forums just to get his attention.
That relationship nearly destroyed him. For a while, Ryan was too afraid to fall in love again.
Then I came along. I stayed by his side and slowly helped him move on.
The day he finally told me how he felt, he showed up with a bouquet and looked at me like I was the only person in the world.
"Julia, being with you made me realize what love is actually supposed to feel like."
I said yes without a second thought.
Then Claire showed up drunk and ruined the whole thing.
Her eyes were red as she glared at Ryan. "You won't take me back, but you'll choose her?"
After that, she caused one scene after another. At one point, she even climbed onto a rooftop and threatened to jump.
"Prove she's better than me in every way, and I'll leave you alone."
In the end, Ryan installed the scoring app on my phone.
"She's threatening to kill herself. I can't just ignore that. She's immature, that's all. The points don't mean anything. I'm just going along with it until she gets over this. Bear with me for a little while."
That "little while" turned into three years.
The arguing on the other end finally died down, and Ryan's tired voice came through.
"Alright. Julia and I will just get the marriage license for now. How about this? Once she hits 70 points, I'll give her the wedding. Happy?"
I almost laughed, but there was nothing funny about it.
That was Ryan's favorite way to keep Claire happy.
If I wanted him to take me to a movie, I needed 40 points. If I wanted him to pick me up from work in the pouring rain, I needed 50.
Every time Claire threw a fit, Ryan gave in. And every time he did, our relationship took another hit.
After three years, everything between us came down to a score on a screen.
I didn't listen anymore. I hung up.
I looked down and wiped the rain from Mom's urn.
"Mom, things are a mess at home right now, so you'll have to stay here a little longer. Once I get everything sorted out, I'll come back and take you home with me."
Chapter 2
By the time I got home, the rich smell of bone broth filled the kitchen. Ryan poked his head out when he heard the door and held out a mug of hot water.
"It's windy out. Drink this and warm up."
I glanced at the mug but didn't take it. "Where's the soup?"
He smiled. "Claire's mom hurt her foot, so I'm taking it to her."
I paused and looked at him. "My mom made that for me this morning before she left."
He kept ladling soup into a thermos without even looking up. "So have her make another pot later. You're perfectly healthy. It's not like you need it."
My eyes fell to the thermos in his hands.
Two years ago, when Ryan worked late every night trying to get promoted and barely had time to eat, I went from store to store looking for the best insulated food jar I could find.
I wanted him to have a hot meal no matter how late he got home.
Now, he was filling it with the last pot of soup Mom ever made for me and taking it to another woman.
I walked over and pressed my hand over his.
"If they want soup, they can make their own."
Ryan blinked, then frowned.
"I know you're still mad because I didn't answer this morning, but Claire was crying so hard that she could barely think straight. I couldn't be in two places at once.
"Come on, don't be petty. I'll give you some extra points. You only need ten more before we can have the wedding. Isn't that what your mom wants most anyway? To see you get married?"
I froze.
Mom had never been in great health. More than anything, she wanted to see me settle down while she still could.
I just never thought Ryan would use that against me.
My throat tightened. "Do you even know that my mom…"
Before I could finish, Claire's voice came through the phone. Ryan still hadn't hung up.
"Ryan, this is the sweet, understanding Julia you're always bragging about? She's really fighting a sick woman over a bowl of soup? That's embarrassing."
Ryan's face darkened. "Julia. Be reasonable."
I didn't say anything. I just kept my hand on the thermos.
After a few tense seconds, Ryan finally let go and stepped back.
"When did you get so heartless?"
He grabbed his coat and headed for the door. Before leaving, he looked back at me, clearly disappointed.
"Maybe we should hold off on getting the marriage license for now."
The door slammed shut. At the same moment, another notification popped up on my phone.
[Perfect Wife Score: -5. Reason: Lack of compassion.]
I didn't even look at it. I just poured myself a bowl of soup. The warmth settled in my stomach, easing some of the emptiness inside me.
For some reason, I thought back to three days ago.
Mom sat there, holding my miscarriage paperwork in trembling hands. She wiped at her tears and asked, "Julia, does it really have to be him?"
She knew my feelings for Ryan went back much further than the last three years.
Ever since Mom brought him to the orphanage, Ryan had always treated me differently. He used to sneak his snacks into my pockets, wipe my tears, and puff out his little chest.
"Your mom runs this place, so she has to be fair to everyone, but I don't. I'll always be on your side."
One night, a drunk stumbled into the orphanage.
Ryan stood in front of me with his arms spread wide and gritted out, "No one's going to hurt you."
Somewhere along the way, without even realizing it, I fell in love with him.
Then he met Claire.
I buried my feelings and even chose a college as far away from him as possible. It wasn't until after they broke up that life brought us together again.
Ryan held me in his arms and promised he would never let me go again.
But three days ago, in the middle of that downpour, the man who promised to pick me up never showed. Not long after, he showed up on Claire's social media instead.
She made the post visible only to me.
[So what if you're his girlfriend now? I'm still the ex who gets to reap the rewards.]
In the video, rain pounded against the floor-to-ceiling windows while Ryan waltzed with her inside a warm, brightly lit room.
At that exact moment, a speeding car hit me.
I lay there in the rain, feeling warmth spread between my legs before the freezing water washed it away. The pregnancy report I planned to give Ryan for our third anniversary slipped from my hand, landed in the filthy runoff, and quickly turned to mush in the rain.
I think that was the moment everything inside me went numb.
My phone buzzed, pulling me out of the memory.
[You promised you'd marry me. I'm already on my way with the ring, so don't even think about changing your mind.]
I looked at the message from halfway across the world and smiled faintly.
[I won't.]
I had spent long enough chasing something that only ever hurt me.
This time, I was done looking back.
Chapter 3
I had just set my phone down when the front door opened.
Ryan rolled a suitcase into the entryway, then took Claire's coat and hung it up before finally looking over at me.
After a short pause, he said, "Claire has a live-in caregiver staying at her place, so there isn't enough room. She'll stay here for a couple of days."
My eyes dropped to Claire's suitcase.
It was the exact same style as Ryan's, right down to the matching leather luggage tag.
Somehow, even that made them look like a pair, while I was the one who didn't belong.
"Okay."
I spoke quietly, then turned toward the bedroom. Ryan grabbed my wrist before I could walk away.
"Let Claire have the master bedroom. She can't sleep on a firm mattress."
I stared at him for a second, almost too stunned to respond.
Back when we had nothing, Ryan and I used to squeeze onto a twin bed. Night after night, I barely moved because I wanted him to sleep comfortably.
I ended up hurting my back so badly that even now, a firm mattress left me aching all night.
For a moment, I almost asked if he remembered.
Then I realized I didn't care anymore.
So I just nodded. "Fine."
Another red dot appeared on the scoring app, probably rewarding me for being so "understanding."
I didn't even open it. I deleted the app for good.
The next morning, Ryan knocked on my door and told me he had a surprise.
Before I could say much, he practically dragged me into the car. He didn't take off the blindfold until we reached our destination.
The second I saw the sea of white in front of me, my breath caught.
Ryan wrapped his arms around me from behind, his warm breath brushing my neck.
"I've always wanted to see you in this. Now, I'm getting closer and closer to making that happen."
I stared at the wedding dress and remembered all the times we walked past this boutique and I stopped to admire it through the window.
Back then, we shared the same scarf against the cold. Ryan held my hand and promised that one day, he would buy that dress for me.
Eventually, he could afford it.
But thanks to that ridiculous bet with Claire, even marrying him became something I had to earn with enough points.
I lowered my eyes, about to say something, when Claire suddenly stormed into the bridal shop.
"Ryan, why are you letting her try on wedding dresses? She doesn't even have enough points yet! And I'm the one who should be wearing…"
Her voice trailed off under Ryan's cold stare. Then she reached for the dress like she was about to rip it.
I rushed forward and grabbed her wrist.
Not because I cared about the dress, but because I recognized the bracelet around her wrist.
"Where did you get that? That was my mom's. Give it back."
Claire glanced down at it in disgust.
"This old thing? I found it in that beat-up wooden box in your room. I went through the whole thing. Most of it was junk, so I threw it out. This bracelet was the only thing that looked halfway decent…"
My chest tightened so hard that I could barely breathe.
That box held everything Mom left behind.
My eyes burned as I reached for the bracelet.
Claire suddenly called out, "Ryan, if you can get her to give it to me, I'll let you add points to her score!"
Ryan hesitated for a second, then stepped forward and wrapped his arms around me, holding me back.
"Julia, it's just a bracelet. If you get a few more points, we can finally have the wedding."
Something inside me snapped. I bit down hard on his arm, and everything I had held in for the past three years came pouring out.
"Why the hell does your ex get to decide whether I'm allowed to have my own wedding?"
The scene quickly drew attention. Customers and employees all turned to stare.
Ryan's face darkened. "What did you just say?"
I looked at him, and this time, I felt nothing. "Ryan, I'm not marrying you."
Every word hit him hard. His face went stiff.
"Fine. Just don't regret it." He grabbed Claire by the arm. "If you don't want the wedding, then Claire can do the bridal shoot with me today."
Claire could barely hide the smug look in her eyes. She walked toward me, pretending to take off the bracelet.
The second she got close, she suddenly stumbled backward as I pushed her.
The bracelet hit the floor with a sharp clatter, and the clasp snapped apart.
Chapter 4
I stared at the broken bracelet on the floor, and something inside me seemed to break with it.
Before I could react, someone shoved me hard.
"Julia! What the hell is wrong with you?"
Ryan scooped Claire into his arms and walked away without even looking back at me.
I dropped to my knees and picked up the bracelet with trembling hands, ignoring the broken clasp digging into my palm. Tears blurred my vision.
"Mom, I'm taking you with me now."
I made my way back to the apartment building, too numb to care about my dirty clothes or the looks people gave me.
Then I dug the wooden box Claire threw away out of the trash.
A phone slipped out from inside. The second I unlocked it, the last screen Mom had opened appeared.
There were two marriage certificates on the screen.
My hands started shaking as I tapped the voice message beneath them.
Claire's smug voice cut through the recording. "Did you know your daughter's been sleeping with a married man?"
A chill ran through me as I suddenly remembered a phone call Claire made to Ryan three months ago.
That night, Claire sobbed that her family kept forcing her to go on blind dates and that she didn't want to live anymore. Ryan spent half the night smoking on the balcony, then got dressed and left early the next morning.
I sank to the floor, digging my nails into my palms until they broke the skin.
So he didn't go to some important meeting that day.
He went to marry Claire.
And all those times he said he was just helping Claire deal with family problems, he wasn't simply doing her favors. He was playing the devoted husband in front of her family.
Mom had already cried herself sick over my miscarriage. How was she supposed to handle finding out that her own daughter was a "homewrecker"?
No wonder Mom begged me through tears to leave Ryan, even as she lay dying.
I stared at the bridal photos Claire just posted, rage burning so hot in my chest that I could barely breathe.
I swallowed the bitter taste in my mouth and rushed to the location she tagged.
The second I got out of the car, I charged straight at Claire, who was posing for photos, and grabbed her by the throat.
Her eyes went wide as she struggled against me.
A second later, someone yanked me away and threw me hard to the ground.
My body still hadn't recovered from the miscarriage. Pain shot through me on impact, and my vision went black around the edges.
"Julia, what the hell is wrong with you? Can you stop making a scene for once?"
I looked up and saw the disgust in Ryan's eyes. A bitter laugh slipped out.
"I'm making a scene? She killed my mom! Why shouldn't she pay for it?"
Ryan froze.
Claire hid behind him, one hand pressed to her throat as she gave a hoarse laugh.
"You're the one who said you weren't marrying Ryan anymore. What, you regret it now? So you made up your own mother's death just to get his attention? Is there anything you won't do?"
At that, the tension visibly drained from Ryan's face. He slipped an arm around Claire and walked right past me.
"Julia, look at yourself! Do you even realize what you've turned into? We're almost 20 miles outside the city. Walk back on your own and use the time to think about what you did."
The cars pulled away one after another until they disappeared in the distance.
I bit down hard on my lip and forced myself to stand.
I still had to pick up Mom. She was waiting for me to take her to her new home.
My legs felt numb, but I kept walking, one slow step at a time.
As I passed an unfinished construction site, a pair of rough, filthy hands suddenly reached out from the shadows and clamped over my mouth and nose.
Several men laughed nearby, their voices making my skin crawl.
"We've been waiting for you. Someone paid us good money to show you a real good time."
I understood immediately. Claire was behind this.
I fought with everything I had when my phone suddenly started ringing.
That tiny sound gave me one last spark of hope. I used the last of my strength to answer.
But all I heard was a prerecorded message from Ryan through the app.
"I reset your score to zero. Come back and apologize to Claire, and I'll give you your points back. Then we can get married tomorrow like we planned."
That was it. Then he hung up.
As the men around me burst out laughing, the last of my strength disappeared. I could only watch helplessly as they dragged me deeper into the darkness.
-
Early the next morning, Ryan was already waiting outside the courthouse with Claire beside him.
He glanced at her.
"Your family's off your back now. Once Julia gets here and apologizes, we'll file for divorce. Then Julia and I will get married. And this time, you're done causing trouble."
Just then, a familiar voice came from nearby.
Ryan turned toward it without thinking.
The second he saw the woman standing there with a faint smile and a marriage certificate in her hand, all the color drained from his face.