The present perfect is the tense that connects the past to the present. It is also the one that causes more trouble than any other, because many languages do not separate "I have done" from "I did" the way English does. Once you see what the present perfect is actually for, the split stops feeling arbitrary.
How to form the present perfect
The structure never changes:
have / has + past participle
| Subject | Auxiliary | Past participle | Example |
|---|---|---|---|
| I / you / we / they | have | finished | I have finished. |
| he / she / it | has | gone | She has gone. |
For regular verbs the past participle is the same as the past simple: the -ed form (worked, played, finished). For irregular verbs you have to learn it, and it is often different from the past simple (see go, went, gone below).
- Negative: add not after the auxiliary. I have not seen it. She has not arrived. The short forms are haven't and hasn't.
- Question: put the auxiliary first. Have you finished? Has he called?
When to use the present perfect
There are three main jobs, and every present perfect sentence is doing one of them.
1. A past action with a result that matters now
The action is finished, but you are talking about its effect on the present.
- I have lost my keys. (So I cannot get in now.)
- She has broken her leg. (So she cannot walk now.)
2. Life experience, up to now
You are talking about whether something has ever happened in your life, without saying when.
- I have been to Japan.
- Have you ever eaten octopus?
- He has never flown before.
3. A situation that started in the past and continues
The action began earlier and is still true now. This is where for and since live.
- I have lived here for ten years. (And I still live here.)
- We have known each other since university.
For vs since
Both answer "how long?", but they take different things:
| Use | With | Examples |
|---|---|---|
| for | a length of time | for two hours, for a week, for years |
| since | a starting point | since Monday, since 2010, since I was a child |
I have worked here for five years = I have worked here since 2019. Same meaning, different framing.
The big one: present perfect vs past simple
This is the distinction that matters most, and the rule is simpler than it looks.
| Past simple | Present perfect |
|---|---|
| Finished time | Unfinished or unstated time |
| I saw her yesterday. | I have seen her. |
| He arrived at six. | He has arrived. |
| We lived in Rome in 2015. | We have lived in Rome. |
The test: if you say exactly when it happened, use the past simple. Words like yesterday, last week, in 2015, two days ago all pin the action to finished time, so they force the past simple. I have seen her yesterday is wrong; it has to be I saw her yesterday.
Words that often signal the present perfect: ever, never, just, already, yet, so far, recently, this week (a week that has not finished).
British vs American usage
British and American English differ here, and both are correct in their own variety:
- With just, already and yet, British English prefers the present perfect (I have just eaten. Have you finished yet?), while American English often allows the past simple (I just ate. Did you finish yet?).
- The past participle of get is got in British English and gotten in American English (I have got vs I have gotten).
If you are learning British English, use the present perfect with just, already and yet.
Common mistakes
Ranked by how often they actually appear:
- Using the present perfect with a finished time. I have visited Paris last year. Wrong. Say I visited Paris last year or drop the time word: I have visited Paris.
- Wrong past participle. I have went, he has ate, they have wrote. The present perfect needs the participle: gone, eaten, written.
- For vs since mixed up. for Monday and since two hours are both wrong. It is since Monday and for two hours.
- Forgetting has for he/she/it. She have finished should be She has finished.
Practice
Choose the correct form. Answers are below.
- I
___(not see) that film yet. - We
___(live) in this house since 2018. ___you ever___(be) to Canada?- She
___(finish) her homework an hour ago. - They
___(know) each other for twenty years.
Answers: 1. have not seen 2. have lived 3. Have ... been 4. finished (a finished time, "an hour ago", forces the past simple) 5. have known