Should have, could have, and would have are sometimes called “modals of lost opportunity” because they describe situations when we are imagining that the past was different.
The general rule of Should, Could, and Would is:
- Should for recommendation / advice
“If you want to lose weight, you should eat healthy food.”
- Could for possibilities
“I have the day off tomorrow.”
“Great! We could spend the day at the beach. Or we could go shopping.”
- Would for imagining results
“If I were rich, I would buy a boat.”
The same general rule applies when using should have, could have, and would have for imaginary past situations.
Use should have to say that a different action was recommended in the past.
If you arrive late to English class, you can say:
“I should have left my house earlier.”
If you regret an argument, you can say:
“I shouldn’t have yelled at you yesterday. I’m sorry.”
You can also use should have / shouldn’t have to tell other people that a different action in the past would have been better. If your son fails a test, you can say:
“You should have studied. You shouldn’t have played video games all weekend.”
Use could have to talk about possibilities if something had been different in the past.
For example, someone who didn’t go to college can say:
“If I had gone to college, I could have gotten a better job.”
When talking about a gymnast who didn’t win a competition, you can say:
“She could have won the gold medal if she hadn’t fallen three times.”
Could have is often used with “if + had + past participle” (If I had gone / if she hadn’t fallen) – these “if” phrases express the imaginary past situation. However, in some cases you can use could have without the “if” phrase. Imagine you’re driving with a person who makes a dangerous maneuver on the road. You can say:
“Are you crazy? We could have gotten into an accident.”
Use would have to imagine a result (if something had been different in the past):
If you arrive late at the airport and miss your flight, you can say:
“If we had arrived earlier, we would have caught our flight.”
If you forget your umbrella, and it starts to rain, and you get wet, you can say:
“If I had brought my umbrella, I wouldn’t have gotten wet in the rain.”
Would have expresses more certainty about the result than could have:
“If I had worked harder, I could have gotten a promotion.”
(maybe I’d get a promotion… but maybe not)
On a test where you need 70% to pass:
“I got a 68 on the test. If I had gotten two more points, I would have passed.”
(with the two points, passing the test is CERTAIN)
In spoken English, many people say should’ve, could’ve, and would’ve.