Skip to main content
B2 Grammar

Past modals for advice and obligation

18 minModal verbs
A suitcase shivers in the snow with summer flip-flops in its open lid, saying “I should have packed a coat.”
Should have packed expresses regret about a better past action that did not happen.

When we talk about a past action, we may want to judge it, describe a requirement, or explain that it was unnecessary. English uses different constructions for these different purposes, including modal perfect forms such as should have done and past obligation forms such as had to do.

You should have called first.
We had to show our tickets.
You needn’t have printed a copy.

They look similar because they refer to the past, but the meanings are different. The most useful first step is to ask whether the sentence describes advice, a rule, or an action that turned out to be unnecessary.

Should have and ought to have: advice or regret

Use should/ought to + have + past participle to say that an action was a good idea but did not happen, or that someone’s behaviour fell short of what was expected:

I should have backed up the file. (I did not, and I regret it.)
They ought to have warned the residents. (They did not, and the speaker criticises this.)

For a negative judgement, use shouldn’t have + participle:

You shouldn’t have shared that password.
I shouldn’t have spent so much on the repair.

This usually means that the action did happen and was a mistake. You shouldn’t have told him means you told him, but the speaker thinks you should not have.

Advice is different from an expectation

Should have does not always imply a mistake. Context can also give it the meaning of an expected result:

I should have called yesterday. I'm sorry.
I regret not calling.

The parcel should have arrived by now. Let's check outside.
Arrival is expected; the speaker does not yet know whether it happened.

In the second example, the speaker is estimating what is likely according to a schedule. To make criticism or regret clear, give the real outcome: The company should have delivered it yesterday, but it didn't.

Compare could have and should have in advice:

SentenceSpeaker's main judgement
You could have asked Eva.Asking Eva was an available option.
You should have asked Eva.Asking Eva was the better or expected action.
You shouldn't have asked Eva.Asking Eva was a mistake in this context.

The verb form stays modal + have + participle: should have asked, not should had asked. In writing, use have, not of, even when should've sounds like “should of”.

Had to describes past necessity

Must does not normally have a past form for obligation. Use had to:

We had to leave before the storm arrived.
She had to wear a uniform at her old school.

For a rule that was not necessary, use didn’t have to or didn’t need to: We didn’t have to book; there were plenty of seats. This says there was no obligation. It does not always tell us whether we booked.

The important difference: needn’t have and didn’t need to

Needn’t have + participle normally means the person did the action, but it was unnecessary:

You needn’t have bought lunch; there was plenty for everyone.
The lunch was bought.

Didn’t need to describes an absence of necessity; whether the person acted depends on the rest of the sentence:

I didn’t need to take a taxi, so I walked.
I didn’t need to take a taxi, but I did because it was raining.

This small difference is useful in real conversations. If the action happened, say needn’t have when you want to emphasise that it was unnecessary.

Could have and missed opportunities

Could have + participle can refer to an ability or opportunity that was not used:

We could have taken the earlier train, but we chose to stay.
You could have asked for help instead of struggling alone.

In the second example it can sound critical, much like should have, although the tone is softer. Context separates this meaning from the past possibility in She could have taken the earlier train—I’m not sure which train she caught.

For regrets about a past result, these modals often appear in the result clause of a third conditional: If I had checked the map, I wouldn’t have got lost. The condition tells us what did not happen; the modal perfect states the imagined outcome.

What do we actually know about the action?

Picture a colleague arriving with fifty printed handouts. The meeting is online, and nobody needs them.

You needn't have printed the handouts. We can send the file.

The printing happened; you are commenting on its lack of necessity. To soften the remark, add appreciation: Thank you, though—that was thoughtful. Grammar describes the situation, while tone determines whether the response feels critical.

Now picture a colleague asking beforehand whether printing was required:

We didn't have to print anything, so I sent the file instead.

Here the second clause confirms that printing did not happen. Without that clause, We didn't have to print anything tells you about the requirement, not necessarily about the final action.

FormNecessity or judgementDid the action happen?
had to printPrinting was required.In an ordinary completed narrative, it normally happened.
didn't have to printPrinting was optional.The sentence alone does not decide.
needn't have printedPrinting was unnecessary.Yes, in this use.
should have printedPrinting was advisable.Usually no, in a regret or criticism context.

A final distinction concerns prohibition: We weren't allowed to take photos means a rule forbade photos. We didn't have to take photos means photos were not required. These meanings are very different. Likewise, You must have taken photos is normally a deduction, not a past instruction. Choose the meaning first, then the form.

Sources and further reading

Try this structure in a short practice set with instant feedback.

Start practice

Prerequisites & related lessons