Present Perfect
Intermediate · Verb Tenses
The present perfect is a bridge between the past and now. It describes a past action that still matters in the present — either because of its result, because it is a life experience, or because the time period is not finished.
The big rule: do NOT use it with a finished time word like "yesterday" or "in 2010". If the time is finished, use the past simple instead. This past-vs-present-perfect contrast is one of the most useful things to master.
How to build it
have / has + past participle · (?) Have/Has + subject + past participle · (–) have/has + not + past participle
Rules & examples
- A past action with a result you can see now.
We care about the present effect, not exactly when it happened.
- I have lost my keys. (so I can't get in now)
- She has broken her leg. (it is still broken)
- Life experiences at an unspecified time.
Often with "ever" and "never". The "when" is not important.
- Have you ever been to Japan?
- I have never eaten sushi.
- Situations that started in the past and continue now — with "for" and "since".
The action is still true at this moment.
- We have lived here for ten years. (we still live here)
- She has worked here since 2015.
- Recent actions — with just, already, and yet.
just = a moment ago; already = sooner than expected; yet = up to now (questions/negatives).
- I have just arrived.
- They have already left.
- I haven't finished yet.
- "for" = a length of time; "since" = a starting point.
for + period, since + a point in time.
- for three years, for a long time
- since Monday, since 2015
Tips to remember
- Test: is the time finished? "Yesterday, last week, in 2010" → past simple. "Today, this week, ever, so far" → present perfect.
- Past participles: regular = -ed (worked); irregular must be learned (go→gone, see→seen, do→done, eat→eaten).
Common mistakes
- ✗ I have seen him yesterday. → ✓ I saw him yesterday. — "Yesterday" is a finished time, so use the past simple.
- ✗ I have lived here since three years. → ✓ I have lived here for three years. — Use "for" with a length of time and "since" with a start point.