Should have + past participle

Used to talk about something that was the right thing to do in the past but didn't happen — regret or criticism.

FormMeaningExample
should have + pp Regret or criticism — the right thing wasn't done You should have called me! (= but you didn't)
shouldn't have + pp Regret or criticism — the wrong thing was done I shouldn't have eaten so much. (= but I did)

Could have + past participle

Used to talk about a past possibility that didn't happen — an opportunity that was missed or a hypothetical ability.

FormMeaningExample
could have + pp Past possibility not taken; missed opportunity I could have been a doctor. (= I had the ability/chance)
could have + pp Mild criticism — another option was available You could have told me! (= it was possible, but you didn't)
couldn't have + pp Past impossibility I couldn't have done it without you.

Would have + past participle

Used in the main clause of third conditionals to describe an imagined past result. Also used on its own to describe what was planned but didn't happen.

FormMeaningExample
would have + pp Hypothetical past result (3rd conditional) I would have come if I had known.
would have + pp Something planned that didn't happen We would have finished, but the electricity went off.
wouldn't have + pp Negative hypothetical past result She wouldn't have passed without your help.

Needn't have vs Didn't need to

FormMeaningExample
needn't have + pp Did it, but it was unnecessary (wasted effort) You needn't have cooked — we already ate. (= you cooked, but there was no need)
didn't need to + inf Wasn't necessary AND didn't do it I didn't need to queue — I booked online. (= I didn't queue)

Exercises

Choose the best past modal form.

1. You ___ told me you were coming! I would have cooked more food.

2. I ___ been a professional musician — I was very talented as a child.

3. She ___ worn a coat — the weather was warm all day. (She wore one but didn't need to.)

4. I ___ finished the project if the power hadn't gone out.

5. You ___ stayed up so late — you look exhausted now.