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

  1. 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)
  2. 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.
  3. 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.
  4. 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.
  5. "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.