We use past modals to speculate on past events. Here are some examples.
May have / Might have = something possibly happened (but we aren’t sure if it did)
“They may have left early because of the holiday traffic.” (= Maybe they left early…)
“They might have taken the train.” (= Maybe they took the train.)
The negative form is “might not have“:
“He might not have received the message.” (= Maybe he didn’t receive the message.)
Could have = something was possible in theory
“He could have become a doctor.” (= He had the ability to become a doctor, but he didn’t.)
The negative form is “couldn’t have“:
“He couldn’t have seen you – it was too dark.”
Can’t have = something was not logically possible
“She can’t have passed the exam – she didn’t study at all!”
Must have = we are sure about something
“You must have known that we had a test today – the teacher sent us all a message.”
Should have = something was a good idea (but didn’t happen)
“You should have told me about the sale. I could have got some new shoes at a discount!”
Would have = something happened (or didn’t happen) in the past as a result of something else
“If he had called me, I would have gone to the party.”
Past Modals
Level: Intermediate and above