Learners don’t usually get this pair wrong because the grammar is hard. They get it wrong because present perfect sounds cleverer, so they reach for it, produce “I have seen that film yesterday”, and quietly hope nobody flinched.
The real choice has nothing to do with which tense is fancier. It’s about time. Is the time period finished, and are you pointing at when something happened or at the simple fact that it happened? Settle that one question and most of your mistakes here vanish on their own.
The timeline trap
Picture every past event sitting on a line. The question is never “is this past?” Both tenses are past. The real question: are you fixing the event to a finished moment, or connecting it to right now?
Finished time + when it happened = past simple
If the time period is over, and your sentence cares about when, use past simple. Last Tuesday is a closed box. So is “in 2019” and “an hour ago”. Nothing leaks out of them into the present.
“I finished the report yesterday.”
“She moved to Lisbon in 2021.”
“We sorted the deposit out last week.”
Each one happily answers “when?” That’s your tell. If the natural follow-up question is when did this happen, past simple is already doing the work.
Result now or unfinished time = present perfect
Present perfect doesn’t care about the “when”. It cares that something happened at some unstated point, and that this matters to you now, either because of the result or because the time period is still open.
“I’ve finished the report.” (so it’s ready for you)
“She’s moved to Lisbon.” (so that’s where she lives now)
“We’ve sorted the deposit.” (so stop worrying about it)
Same three events. Only the angle changed. Past simple sticks a pin in the calendar. Present perfect shines a light on the present consequence.
Why “yesterday” kills the present perfect
This is the rule almost everyone breaks. Name a finished time and you’ve sealed the box, and present perfect refuses to live in a sealed box.
“I have seen that film yesterday” fails for one reason. “Yesterday” is finished and dated, so there’s nothing left to connect to now. You’ve contradicted yourself in four words.
That leaves two clean options. Name the time and go past simple, or drop the time word entirely and go present perfect.
“I saw that film yesterday.” (the time is named, so the calendar wins)
“I’ve seen that film.” (no time named, just the bare experience)
What you cannot do is glue the unspecified tense to a specified time. Pick one lane and stay in it.
Signal words: the shortcut that actually works
Some words are loyal to one tense and only one. Learn the regulars and you’ll often decide before you’ve consciously thought about any timeline at all.
The tricky ones: already, yet, just
These three are the most useful words on the list and the most often misplaced. They all circle the present perfect’s favourite idea: something happened recently, and it still counts.
“I’ve already eaten, thanks.” (so don’t bother ordering for me)
“Have you finished yet?” (asking about the state of things right now)
“She’s just left.” (you’ve missed her by about a minute)
Now the honest catch. In American English, “I already ate” and “Did you finish yet?” are completely normal in everyday speech. If you’re learning British English, keep the present perfect for these. And if you work with Americans, expect to hear the past simple instead. Neither side is broken.
Ever and never
These two ask and answer about your whole life so far. Your life is still running, so the box stays open.
“Have you ever broken a bone?”
“I’ve never tried oysters, and I’m not starting now.”
Switch to past simple and the focus narrows to one specific occasion. “Did you ever break a bone while you were skiing?” now asks about that one finished trip, not the entire span of someone’s life.
How this differs from since vs for
If you’ve read our piece on since vs for, keep the two problems apart in your head. That one is about how you measure the duration once you’re already inside the present perfect: “since Monday” against “for three days”.
This is the earlier and bigger decision. It’s about whether to be in the present perfect at all. You pick the tense first. Only after you’ve landed on present perfect with a duration do since and for have anything to say.
Unfinished time periods
Here’s one more trigger that trips people up. If the time period you mention is still ticking along, like today, this week, or this year, it isn’t finished, so present perfect fits.
“I’ve drunk three coffees today.” (the day isn’t over, and I make no promises)
The instant that period closes, you switch:
“I drank three coffees yesterday.” (yesterday is done and dusted)
“This morning” behaves the same way. Said at eleven, it’s still morning: “I’ve had two meetings this morning.” Said at four in the afternoon, the morning is over: “I had two meetings this morning.” The clock, not your mood, decides the tense.
Frequently asked questions
Can I always use past simple instead of present perfect?
In American English you can get away with it far more often, especially in speech. In British English, no. If there’s a clear present result or no stated time, present perfect is expected, and past simple just sounds off.
Is “I’ve done it last night” ever correct?
No. “Last night” is a finished, named time, so it demands past simple: “I did it last night.” Keep present perfect for sentences where you drop the time word completely.
Why is “How long have you lived here?” present perfect when it’s clearly about the past?
Because the action is unfinished. You still live there. Present perfect covers situations that started in the past and continue now, which is exactly where since and for come in.