Quick answer
Use the past simple for finished actions at a finished time (yesterday, last week, in 2010). Use the present perfect when the time is unfinished or not mentioned, or when a past action still matters now. The key test: if you say or mean a specific finished past time, use the past simple, not the present perfect.
In depth
Both tenses talk about the past, but they look at it differently.
The past simple puts the action in a closed box of past time. The time is over, so we often add a "when" word:
- I visited Rome in 2019.
- She called you two hours ago.
- We didn't see the movie last night.
The present perfect (have/has + past participle) connects the past to now. The action happened in a time period that is still open, or the exact time is not important — what matters is the result or the experience now:
- I have visited Rome. (some time in my life — experience)
- She has called you. (so now you have the message)
- We haven't seen the movie yet.
Common helpers for the present perfect: ever, never, just, already, yet, so far, recently, this week, today.
Two patterns often confuse learners:
- for and since with a state that continues now: I have lived here for ten years. (I still live here)
- News that is still relevant: They have closed the road. (it is closed now)
Watch this contrast clearly:
- I have lost my keys. (I still can't find them)
- I lost my keys yesterday, but I found them. (finished, with a finished time)
After you give news with the present perfect, you usually switch to the past simple for the details: I have been to Paris. I went there in May.
British English
This is the sharpest split between the two varieties. British English keeps the present perfect with just, already and yet — Have you eaten yet?, I've just finished. American English allows the past simple as well: Did you eat yet?, I just finished. The present perfect taught here is correct in both, so it is the safer choice in an exam.
Right vs. wrong
| Wrong | Right | Why |
|---|---|---|
| I have seen him yesterday. | I saw him yesterday. | A finished past time (yesterday) needs the past simple. |
| Did you ever eat sushi? | Have you ever eaten sushi? | Ever for life experience takes the present perfect. |
| She has gone to London in 2018. | She went to London in 2018. | A specific finished year needs the past simple. |
| I live here since 2015. | I have lived here for years / since 2015. | Since/for for something still true uses the present perfect. |
| We didn't finish the report yet. | We haven't finished the report yet. | Yet (not up to now) takes the present perfect. |
| When have you arrived? | When did you arrive? | When asks about a finished moment, so use the past simple. |
| I have bought a car last month. | I bought a car last month. | Last month is finished time; use the past simple. |
| He has broke his leg. | He has broken his leg. | The present perfect needs the past participle (broken). |
Common pitfalls
- Using the present perfect with a finished time word (yesterday, ago, last year, in 2010). These always go with the past simple.
- Mixing up since and for: since + a point in time (since Monday), for + a length of time (for three days) — both with the present perfect for situations that continue now.
- Using the past simple in questions with ever, never, just, already, yet, which normally call for the present perfect.
- Forgetting the past participle: writing I have went / he has broke instead of I have gone / he has broken.
Practice drills
8 katas · check yourself before you look
- Correct the error
I have visited my grandmother last weekend.
- Fill the gap
_____ you ever _____ (be) to Japan?
- Choose
She (lived / has lived) in this city since 2010.
- Fill the gap
We _____ (not finish) our homework yet.
- Choose
I (saw / have seen) that movie three days ago.
- Transform
Rewrite using the present perfect: I lost my phone, and I still don't have it.
- Correct the error
When have they moved to Berlin?
- Choose
He (has broke / has broken / broke) his arm last summer.
Show answers
I visited my grandmother last weekend. — Last weekend is a finished past time, so use the past simple.
Have you ever been to Japan? — Ever asks about life experience, which takes the present perfect with the past participle been.
has lived — Since 2010 shows a situation continuing to now, so use the present perfect.
haven't finished — Yet (not up to now) takes the present perfect in the negative.
saw — Three days ago is a finished past time, so use the past simple.
I have lost my phone. — The present perfect links a past action to a result that still matters now.
When did they move to Berlin? — When asks about a finished moment, so use the past simple, not the present perfect.
broke — Last summer is a finished past time, so use the past simple.