The Present Perfect

Spanish Grammar 3

Course 3 · Chapter 7 · The Present Perfect

🕰️ The Present Perfect — El pretérito perfecto

The present perfect says that something happened in a period of time that is still open, or that it has a link to the present: Esta mañana he trabajado mucho ("this morning" is not over yet in the speaker's mind), ¿Has estado en Madrid? ("ever, up to now"). It is built exactly like the English "have done" but is used somewhat differently, and it varies by region: Spain uses it a lot; much of Latin America uses the preterite instead.

The rule in one box he, has, ha, hemos, habéis, han + past participle (invariable): he comido, has visto, ha dicho. Use it for the recent past and for periods that are not finished (hoy, esta semana, este año, nunca, alguna vez, ya, todavía no). For a finished time (ayer, el año pasado, hace dos días) use the preterite. Pronouns and no go before haber; nothing goes between haber and the participle.

The forms

-ar: hablar-er: comer-ir: vivirirregular: hacer · decir · ver
yohe habladohe comidohe vividohe hecho · he dicho · he visto
túhas habladohas comidohas vividohas hecho
él / ella / ustedha habladoha comidoha vividoha hecho
nosotroshemos habladohemos comidohemos vividohemos hecho
vosotroshabéis habladohabéis comidohabéis vividohabéis hecho
ellos / ellas / ustedeshan habladohan comidohan vividohan hecho

Participles are in Spanish Grammar 3 2. The participle never changes here: ellas han escrito (not escritas).

Where Spain uses the present perfect

UseExampleEnglish
a period that includes now: hoy, esta mañana, esta semana, este mes, este año, este veranoHoy he trabajado diez horas. · Esta semana hemos tenido mucho trabajo.Today I've worked ten hours. This week we've had a lot of work.
experience up to now: alguna vez, nunca, siempre, muchas veces¿Alguna vez has estado en Madrid? · Nunca he visto el mar.Have you ever been to Madrid? I've never seen the sea.
just done, or not yet: ya, todavía no, aún no, últimamente¿Ya has comido? · Todavía no he terminado.Have you eaten yet? I haven't finished yet.
recent events with relevance nowSe ha ido hace un momento. · ¿Qué ha pasado?He left a moment ago. What's happened?
a situation still true: he vivido aquí diez añosHe vivido aquí diez años. (I still live here.)I've lived here ten years.
Watch out: finished time takes the preterite With a time word that is over (ayer, anoche, la semana pasada, el año pasado, en 2020, hace dos días) use the preterite, even in Spain: Ayer trabajé diez horas. (not Ayer he trabajado). Compare: He vivido aquí diez años. (I still live here) / Viví aquí diez años. (I don't any more). The Spanish equivalent of "I've lived here for ten years" is often Llevo diez años viviendo aquí (Spanish Grammar 2 11).

Preterite or present perfect?

Present perfect (period still open)Preterite (period closed)
Esta mañana he desayunado pronto.Ayer por la mañana desayuné pronto.
Este año he viajado mucho.El año pasado viajé mucho.
Esta semana ha llovido mucho.La semana pasada llovió mucho.
¿Has estado alguna vez en Escocia?¿Estuviste en Escocia el verano pasado?

Pronouns, negation and adverbs

RuleExample
object and reflexive pronouns before haberLo he visto. · Me lo han dicho. · Se ha levantado tarde.
no before the pronounsNo lo he visto. · No se lo he dicho.
nothing between haber and the participleYa he comido. or He comido ya. (not He ya comido)
questions: haber + participle together¿Ha llegado Ana? · ¿Lo has terminado?
negative wordsNunca he estado allí. · No he visto a nadie. · Todavía no he comido nada.

Where Latin America prefers the preterite

EnglishSpain (typical)Much of Latin America (typical)
Have you eaten yet?¿Ya has comido?¿Ya comiste?
I haven't seen it today.Hoy no lo he visto.Hoy no lo vi.
What happened?¿Qué ha pasado?¿Qué pasó?
I've been very busy this week.Esta semana he estado muy ocupado.Esta semana estuve muy ocupado.
Latin America note This is the largest regional difference among the past tenses. Many Latin American speakers (for example in Mexico, the Caribbean and the River Plate) use the preterite for recent events and for "today", and keep the present perfect mainly for experience or results with a link to now (¿Has estado en Cuba?, Nunca he fumado); in parts of the Andes the present perfect is used more, as in Spain. Both are correct, and you will be understood either way. The vosotros form (habéis) is used only in Spain; elsewhere, ustedes han.

🗣️ In Use — En situación

Notice which time words go with the present perfect and which with the preterite.

① Today

A:¿Qué has hecho hoy? ¿Ya has comido?What have you done today? Have you eaten yet?
B:Esta mañana he trabajado y he escrito tres correos. Todavía no he comido; ayer comí a las dos.This morning I worked and wrote three emails. I haven't eaten yet; yesterday I ate at two.

② Experience

A:¿Has estado alguna vez en España? ¿Has probado la paella?Have you ever been to Spain? Have you tried paella?
B:Sí, he estado dos veces, pero nunca he probado la paella. El año pasado fui a Valencia y no tuve tiempo.Yes, I've been twice, but I've never tried paella. Last year I went to Valencia and had no time.

③ News

A:¿Qué ha pasado? ¿Alguien ha llamado?What's happened? Has anyone called?
B:Sí, Ana ha llamado hace un momento. Me ha dicho que se ha perdido, pero ya la he encontrado.Yes, Ana called a moment ago. She told me she's got lost, but I've already found her.

📋 Quick Reference — Resumen

TopicSummary
formhe, has, ha, hemos, habéis, han + participle (invariable)
open periodhoy, esta mañana, esta semana, este año, últimamente
experiencealguna vez, nunca, siempre, muchas veces
already, not yetya, todavía no, aún no
closed periodpreterite: ayer, anoche, el año pasado, hace dos días
positionpronouns and no before haber; nothing between haber and the participle
regionalSpain: present perfect for recent past; much of Latin America: preterite

✏️ Try It Yourself — Ejercicios

Say the answer first, then click to check.

1. Conjugate comer and escribir in the present perfect.

Show answer

he comido · has comido · ha comido · hemos comido · habéis comido · han comido. he escrito · has escrito · ha escrito · hemos escrito · habéis escrito · han escrito.

2. Choose present perfect or preterite: "Esta mañana (trabajar, yo) mucho." · "Ayer (trabajar, yo) mucho."

Show answer

he trabajado (this morning is still open) · trabajé (yesterday is closed).

3. Say in Spanish (Spain): "Have you ever been to Madrid?" and "I've never seen the sea."

Show answer

¿Has estado alguna vez en Madrid? · Nunca he visto el mar.

4. Say in Spanish: "I haven't finished yet." and "Have you eaten yet?"

Show answer

Todavía no he terminado. · ¿Ya has comido?

5. Say in Spanish: "I've done it." (lo) and "I haven't said it." (lo)

Show answer

Lo he hecho. · No lo he dicho.

6. Put in order: "visto / he / no / lo" and "han / me / dicho / lo".

Show answer

No lo he visto. · Me lo han dicho.

7. Say in Spanish: "She has got up late." (levantarse)

Show answer

Se ha levantado tarde.

8. Explain the difference: He vivido aquí diez años / Viví aquí diez años.

Show answer

I've lived here for ten years (and I still do) / I lived here for ten years (and I no longer do).

9. A friend in Madrid says ¿Ya has comido? How might a friend in Mexico City say it?

Show answer

¿Ya comiste? (preterite)

10. Correct the mistakes: He ayer comido. · Ayer he ido al cine. · He ya terminado. · Ellas han escritas la carta.

Show answer

Ayer comí / He comido hoy · Ayer fui al cine · Ya he terminado · Ellas han escrito la carta.

Coming up in Chapter 8: The Pluperfect and the Other Compound Tenses. Había + participle; acabar de and haber + participle; the future perfect (habré) and the conditional perfect (habría); and the past anterior for reading.