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 forms
| -ar: hablar | -er: comer | -ir: vivir | irregular: hacer · decir · ver | |
|---|---|---|---|---|
| yo | he hablado | he comido | he vivido | he hecho · he dicho · he visto |
| tú | has hablado | has comido | has vivido | has hecho |
| él / ella / usted | ha hablado | ha comido | ha vivido | ha hecho |
| nosotros | hemos hablado | hemos comido | hemos vivido | hemos hecho |
| vosotros | habéis hablado | habéis comido | habéis vivido | habéis hecho |
| ellos / ellas / ustedes | han hablado | han comido | han vivido | han hecho |
Participles are in Spanish Grammar 3 2. The participle never changes here: ellas han escrito (not escritas).
Where Spain uses the present perfect
| Use | Example | English |
|---|---|---|
| a period that includes now: hoy, esta mañana, esta semana, este mes, este año, este verano | Hoy 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 now | Se 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ños | He vivido aquí diez años. (I still live here.) | I've lived here ten years. |
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
| Rule | Example |
|---|---|
| object and reflexive pronouns before haber | Lo he visto. · Me lo han dicho. · Se ha levantado tarde. |
| no before the pronouns | No lo he visto. · No se lo he dicho. |
| nothing between haber and the participle | Ya he comido. or He comido ya. (not He ya comido) |
| questions: haber + participle together | ¿Ha llegado Ana? · ¿Lo has terminado? |
| negative words | Nunca he estado allí. · No he visto a nadie. · Todavía no he comido nada. |
Where Latin America prefers the preterite
| English | Spain (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. |
🗣️ In Use — En situación
Notice which time words go with the present perfect and which with the preterite.
① Today
② Experience
③ News
📋 Quick Reference — Resumen
| Topic | Summary |
|---|---|
| form | he, has, ha, hemos, habéis, han + participle (invariable) |
| open period | hoy, esta mañana, esta semana, este año, últimamente |
| experience | alguna vez, nunca, siempre, muchas veces |
| already, not yet | ya, todavía no, aún no |
| closed period | preterite: ayer, anoche, el año pasado, hace dos días |
| position | pronouns and no before haber; nothing between haber and the participle |
| regional | Spain: 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.