Spanish Present Perfect (Pretérito Perfecto): Conjugation & Uses

The Spanish present perfect (pretérito perfecto) is a compound past tense: the present tense of haber plus a past participle. It works much like English "have done": He terminado el informe (I have finished the report), ¿Has visto la película? (Have you seen the movie?).

It is one of the four main Spanish past tenses, together with the preterite (hablé), the imperfect (hablaba) and the pluperfect (había hablado). The Royal Spanish Academy (RAE) calls it pretérito perfecto compuesto, older grammars use Andrés Bello's term antepresente, and many textbooks say pretérito perfecto de indicativo. All of these names refer to the same tense.

The forms are easy, because haber has only six of them. Choosing the tense is harder. In Spain it covers things that happened earlier today, where English uses the simple past: Hoy me he levantado a las siete (I got up at seven today). And English "have been doing for..." is usually not the present perfect in Spanish at all. Both points are explained below.

On this page:

Practice the present perfect

When to use the Spanish present perfect

The common idea behind every use: the speaker looks at a past action from inside a time period that reaches the present moment. Either the result matters now, or the period in which it happened is not over yet.

  1. Actions in a time period that isn't over. Esta semana he trabajado mucho. (I've worked a lot this week.) Este año hemos ido a Cancún dos veces. (We've been to Cancún twice this year.)
  2. Life experiences, with no specific time. The question is whether something has ever happened, not when. ¿Has estado en México? (Have you been to Mexico?) Nunca he probado el mole. (I've never tried mole.)
  3. Recent actions with a result you can see now. He perdido las llaves. (I've lost my keys, and I still can't get in.) Se ha roto la lavadora. (The washing machine has broken down.)
  4. With ya and todavía no ("already", "yet", "not yet"). ¿Ya has hecho la tarea? (Have you done your homework yet?) Todavía no hemos recibido el paquete. (We haven't received the package yet.)
  5. Situations that started in the past and continue up to now, with siempre, últimamente, hasta ahora. Siempre he querido aprender a bailar salsa. (I've always wanted to learn to dance salsa.) Últimamente has dormido poco. (You haven't slept much lately.)
  6. Things that happened earlier today, mainly in Spain. Esta mañana he desayunado en un café. (I had breakfast at a café this morning.) English uses the simple past here, but for a speaker from Spain "today" is still an open period.

None of these sentences names a finished moment in the past. As soon as one appears (ayer, "last week", "in 2019"), Spanish switches to the preterite: Ayer terminé el informe (I finished the report yesterday). English works the same way: you can't say "I have finished it yesterday" either.

Signal words for the present perfect

These time expressions usually go with the present perfect because they point to an open period or to life experience. Treat them as strong hints, not as automatic rules.

Signal word Example
hoy (today)Hoy he comido con mis padres. (I had lunch with my parents today.)
esta mañana, esta tarde (this morning, this afternoon)Esta tarde he ido al médico. (I went to the doctor this afternoon.)
esta semana, este mes, este año (this week, month, year)Este mes hemos ahorrado bastante. (We've saved quite a bit this month.)
últimamente (lately)Últimamente ha llovido mucho. (It has rained a lot lately.)
ya (already, yet)Ya he enviado el correo. (I've already sent the email.)
todavía no, aún no (not yet)Todavía no han llegado los invitados. (The guests haven't arrived yet.)
alguna vez (ever)¿Alguna vez has comido pulpo? (Have you ever eaten octopus?)
nunca, jamás (never)Nunca he visto la nieve. (I've never seen snow.)
siempre (always)Siempre hemos celebrado la Navidad en casa. (We've always celebrated Christmas at home.)
hasta ahora (so far)Hasta ahora todo ha salido bien. (So far everything has gone well.)
desde (since) + dateDesde enero he leído seis libros. (I've read six books since January.)
dos veces, varias veces (twice, several times)Este año he visto esa película tres veces. (I've seen that movie three times this year.)

Words that close the period (ayer yesterday, anoche last night, el año pasado last year, hace dos años two years ago, en 2020) call for the preterite in standard Spanish everywhere: Anoche vi esa película (I saw that movie last night).

Spanish present perfect conjugation: haber + past participle

The tense has two parts: the present tense of haber, which changes for each person, and the past participle of the main verb, which never changes. Note that the helper verb is haber, not tener, even though both translate as "to have".

Regular past participles are built from the stem of the infinitive: -ar verbs take -ado, -er and -ir verbs take -ido. They play the role of English past participles like worked, eaten or lived.

Verb type Participle ending Examples
-ar-adohablar → hablado (spoken), estar → estado (been), trabajar → trabajado (worked)
-er-idocomer → comido (eaten), tener → tenido (had), poder → podido (been able)
-ir-idovivir → vivido (lived), salir → salido (left), ir → ido (gone)
Person haber hablar (to speak) comer (to eat) vivir (to live)
yo (I)hehe habladohe comidohe vivido
tú (you)hashas habladohas comidohas vivido
él / ella / usted (he / she / you formal)haha habladoha comidoha vivido
nosotros / nosotras (we)hemoshemos habladohemos comidohemos vivido
vosotros / vosotras (you all, Spain)habéishabéis habladohabéis comidohabéis vivido
ellos / ellas / ustedes (they / you all)hanhan habladohan comidohan vivido

Once you know these six forms of haber, you can put any regular verb in the present perfect: he estudiado (I have studied), has aprendido (you have learned), han decidido (they have decided). Full tables of the helper verb: haber conjugation.

Latin American Spanish doesn't use vosotros: "you all" is ustedes with the third-person plural form, so you can skip habéis if you're learning Mexican or Caribbean Spanish: Ustedes han trabajado mucho (You all have worked hard). The impersonal hay (there is, there are) also has a present perfect, ha habido, and it stays singular: Ha habido muchos problemas (There have been a lot of problems), not *han habido.

The participle never changes

After haber, the participle always ends in -o, whatever the subject: Ella ha llegado (She has arrived), not *ha llegada; Las niñas han salido (The girls have gone out). The participle agrees only when it works as an adjective, for example with estar: La puerta está abierta (The door is open) vs Han abierto la puerta (They have opened the door).

Keep haber and the participle together

English happily splits its present perfect: "I have already eaten", "Have you seen it?", "I have not eaten". Spanish doesn't. Nothing goes between haber and the participle:

  • Adverbs go before or after the pair: Ya he comido or He comido ya (I've already eaten), not *He ya comido.
  • In questions the subject goes after the participle, or at the start: ¿Has visto tú la película? or ¿Tú has visto la película? (Have you seen the movie?), not *¿Has tú visto...?
  • No goes before everything: No he comido (I haven't eaten), not *He no comido.
  • Object and reflexive pronouns go before haber: Lo he visto (I've seen it), Me he levantado tarde (I got up late). More on this in Spanish reflexive verbs.

Irregular past participles in the present perfect

Because haber is always the same, a verb can only be irregular in the present perfect if its past participle is irregular. There are few of them, but they belong to the most frequent verbs in the language. On the other hand, many verbs that are very irregular in other tenses have regular participles: ser → sido (been), ir → ido (gone), tener → tenido (had), venir → venido (come), querer → querido (wanted).

Common irregular past participles9

They don't end in -ado or -ido. Combine them with any form of haber: he hecho, has dicho, han visto.

Don't confuse: accent mark only

When the stem ends in a, e or o, the í gets an accent so it is pronounced as a separate syllable: leído, oído, caído. These participles are regular.

Spanish irregular past participles list

Infinitive Participle Example
abrir (to open)abiertoHe abierto la ventana. (I've opened the window.)
cubrir (to cover)cubiertoLa nieve ha cubierto el camino. (Snow has covered the road.)
decir (to say, tell)dicho¿Qué te ha dicho el médico? (What did the doctor tell you?)
escribir (to write)escritoHemos escrito a la empresa. (We've written to the company.)
freír (to fry)frito (also freído)He frito unas papas. (I've fried some potatoes.)
hacer (to do, make)hecho¿Has hecho la cama? (Have you made the bed?)
imprimir (to print)impreso (also imprimido)Ya he impreso los boletos. (I've already printed the tickets.)
morir (to die)muertoSe han muerto las plantas. (The plants have died.)
poner (to put)puesto¿Dónde has puesto el cargador? (Where have you put the charger?)
resolver (to solve)resueltoPor fin hemos resuelto el problema. (We've finally solved the problem.)
romper (to break)rotoEl niño ha roto un vaso. (The boy has broken a glass.)
ver (to see)visto¿Han visto mis lentes? (Have you all seen my glasses?)
volver (to return)vueltoMis padres han vuelto de vacaciones. (My parents have come back from vacation.)

Verbs built on these roots inherit the irregular participle: descubrir → descubierto (discovered), devolver → devuelto (given back), envolver → envuelto (wrapped), describir → descrito (described), suponer → supuesto (supposed), componer → compuesto (composed), proponer → propuesto (proposed), deshacer → deshecho (undone), prever → previsto (foreseen).

Only three verbs have two participles that both work in the present perfect: imprimir (impreso, imprimido), freír (frito, freído) and proveer (provisto, proveído). In other verbs the short form is just an adjective: estoy despierto (I'm awake) but me he despertado (I've woken up); el perro está suelto (the dog is loose) but lo han soltado (they've let it loose).

Participles with an accent mark: leído, creído, caído, oído, traído

If the stem ends in a, e or o, the ending is written -ído with an accent, so that the i is pronounced as its own syllable: leer → leído (read), creer → creído (believed), caer → caído (fallen), oír → oído (heard), traer → traído (brought). It's a spelling rule, not an irregularity. After u there is no accent: huir → huido, construir → construido, incluir → incluido.

Hacer, ver and volver in the present perfect

Person hacer (to do, make) ver (to see) volver (to return)
yohe hechohe vistohe vuelto
túhas hechohas vistohas vuelto
él / ella / ustedha hechoha vistoha vuelto
nosotros / nosotrashemos hechohemos vistohemos vuelto
vosotros / vosotrashabéis hechohabéis vistohabéis vuelto
ellos / ellas / ustedeshan hechohan vistohan vuelto

Full conjugation in every tense: hacer, ver, volver, decir, escribir and poner.

Present perfect in Spain vs Latin America

This is the biggest regional difference in how Spanish talks about the past, and it matters for learners in the US: most of the Spanish you hear around you is Mexican, Central American or Caribbean, while many textbooks follow Spain. Both systems are correct.

In most of Spain, anything that happened today, even five minutes ago, goes in the present perfect: Hoy me he levantado a las siete (I got up at seven today), ¿Qué has dicho? (What did you say?). The preterite is kept for closed periods: Ayer me levanté a las siete (Yesterday I got up at seven).

In most of Latin America (Mexico, the Caribbean and Argentina, for example), the same situations take the preterite: Hoy me levanté a las siete, ¿Qué dijiste? The present perfect is kept for life experience and for situations that continue or repeat up to now: Nunca he estado en Europa (I've never been to Europe), Últimamente he trabajado mucho (I've been working a lot lately). Inside Spain, Galicia, Asturias and the Canary Islands also prefer the preterite.

Situation Most of Spain Most of Latin America
Earlier todayHoy he comido tarde.Hoy comí tarde. (I ate late today.)
A moment ago¿Has oído ese ruido?¿Oíste ese ruido? (Did you hear that noise?)
This weekEsta semana he ido al gimnasio dos veces.Esta semana fui al gimnasio dos veces. (I went to the gym twice this week.)
Life experience¿Has probado los tacos al pastor?¿Has probado los tacos al pastor? or ¿Alguna vez probaste...? (Have you ever tried tacos al pastor?)
Up to nowSiempre he vivido aquí.Siempre he vivido aquí. (I've always lived here.)
Closed periodAyer comí tarde.Ayer comí tarde. (I ate late yesterday.)

A practical rule: if you mostly speak with Mexicans or other Latin Americans, using the preterite for "today" will sound natural. If you're heading to Spain or taking a course based on Spanish from Spain, use the present perfect for anything inside today or this week.

Present perfect vs preterite in Spanish

Both tenses describe finished actions. The difference is the time frame the speaker puts the action in: the present perfect places it in a period that includes now (today, this year, my life so far); the Spanish preterite places it in a period that is closed and separate from now (yesterday, last year, in 2010).

Present perfect (open period) Preterite (closed period)
Hoy he comido pescado. (I had fish today.)Ayer comí pescado. (I had fish yesterday.)
Esta semana he ido al cine dos veces. (I've been to the movies twice this week.)La semana pasada fui al cine dos veces. (I went to the movies twice last week.)
Este año hemos viajado mucho. (We've traveled a lot this year.)El año pasado viajamos mucho. (We traveled a lot last year.)
¿Has estado alguna vez en Roma? (Have you ever been to Rome?)¿Estuviste en Roma en 2019? (Were you in Rome in 2019?)
Todavía no he leído ese libro. (I haven't read that book yet.)Leí ese libro en la prepa. (I read that book in high school.)

English and Spanish agree more often than not: "I have lived in London" is He vivido en Londres, and "I lived in London from 2015 to 2018" is Viví en Londres de 2015 a 2018. The two languages part ways with "today" and "this morning" (simple past in English, present perfect in Spain) and with actions still in progress, covered in the next section. To compare the preterite with the other simple past tense, see preterite vs imperfect, with a quiz.

Present perfect vs past perfect (pluperfect)

The Spanish past perfect also uses haber + participle, but with haber in the imperfect: había, habías, había, habíamos, habíais, habían. It's the English "had done", an action before another past moment. Compare: La película ya ha empezado (The movie has already started, right now) and Cuando llegamos, la película ya había empezado (When we arrived, the movie had already started).

"Just", "for" and "have to": acabar de, llevar, tener que

Three English structures that learners often translate with the present perfect, and shouldn't:

  • "I have just..." = acabar de + infinitive. Acabo de llegar a casa (I just got home), Acabamos de ver a tu hermano (We just saw your brother). There is no Spanish word for "just" inside the present perfect: *He justo llegado doesn't exist.
  • "I have been doing it for/since..." = present tense or llevar + gerund. If the action is still going on, Spanish uses the present: Estudio español desde hace tres años or Llevo tres años estudiando español (I've been studying Spanish for three years). Llevamos una hora esperando (We've been waiting for an hour).
  • "I have eaten" vs "I have to eat". The helper "have" is haber: He comido. "Have to" (obligation) is tener que: Tengo que comer. And "have" as possession is plain tener: Tengo hambre (I'm hungry). *Tengo comido mixes the two and is not standard Spanish.

Common mistakes with the Spanish present perfect

An asterisk marks the incorrect form.

  1. *Tengo comido → He comido. The English helper "have" is haber, never tener. Same in questions: ¿Has visto la película?, not *¿Tienes visto la película?
  2. *He escribido → He escrito. Escribir has an irregular participle, and so do its relatives: describir → descrito.
  3. *Se ha rompido → Se ha roto. Romper is regular in every tense (rompo, rompí, romperé) except the participle.
  4. *Ha volvido → Ha vuelto. The same goes for devolver → devuelto and resolver → resuelto.
  5. *He lo hecho → Lo he hecho. Pronouns go before haber, never between haber and the participle: Ya se lo he dicho (I've already told him).
  6. *Hemos ido al cine ayer → Fuimos al cine ayer. Ayer closes the period, so standard Spanish needs the preterite, just as English needs "went", not "have gone".
  7. *Ella ha llegada → Ella ha llegado. After haber the participle doesn't agree with the subject: Las chicas han llegado, not *han llegadas.

Spanish present perfect examples

  • Hoy me he levantado a las seis. (I got up at six today.)
  • ¿Has terminado ya el proyecto? (Have you finished the project yet?)
  • Mi hermano ha encontrado trabajo en Houston. (My brother has found a job in Houston.)
  • Ana todavía no ha leído el libro que le regalé. (Ana hasn't read the book I gave her yet.)
  • ¿Ha estado usted alguna vez en Buenos Aires? (Have you ever been to Buenos Aires?)
  • Esta semana ha hecho mucho frío. (It's been very cold this week.)
  • Este año hemos aprendido muchísimo. (We've learned a lot this year.)
  • Todavía no hemos puesto la mesa. (We haven't set the table yet.)
  • ¿Ya habéis decidido adónde vais en verano? (Have you guys decided where you're going this summer? The vosotros form, used in Spain.)
  • Mis abuelos nunca han viajado en avión. (My grandparents have never flown.)
  • ¿Han probado ustedes el ceviche? (Have you all tried ceviche?)
  • Han abierto un restaurante nuevo en mi calle. (They've opened a new restaurant on my street.)

How to learn the present perfect

Learn the six forms of haber first: they are the same for every verb. Then memorize the irregular participles as pairs (hacer → hecho, decir → dicho, ver → visto, poner → puesto, volver → vuelto, escribir → escrito, abrir → abierto, romper → roto, morir → muerto) until they come out automatically. A simple daily habit: every evening, write three sentences about your day, Hoy he trabajado, he ido al súper y he llamado a mi mamá (Today I worked, went to the grocery store and called my mom). You practice the form and the use at the same time.

In the verb trainer you choose the present perfect and the persons you want to drill, type each form and see right away whether it's correct. It's the fastest way to make the irregular participles stick.

Conjugate verbs in the present perfect

Keep going with the other Spanish past tenses: the preterite, the imperfect and the past perfect, plus preterite vs imperfect. The same participle builds the future perfect; the participle itself is covered in Spanish past participle, and the -ing form in Spanish gerund. Reference lists: Spanish irregular verbs by tense and the 100 most common Spanish verbs. Every tense in one place: Spanish tenses chart.

Frequently asked questions

What is the present perfect in Spanish?

It is a compound past tense made with the present of haber and a past participle: he hablado (I have spoken). It describes past actions connected to the present: things that happened today or this week, life experiences, and recent events that still matter now.

How do you conjugate the Spanish present perfect?

Use he, has, ha, hemos, habéis, han plus the past participle. Regular participles end in -ado for -ar verbs (hablado) and -ido for -er and -ir verbs (comido, vivido). The participle never changes: ella ha llegado, ellos han llegado.

What is the difference between the present perfect and the preterite in Spanish?

The present perfect places an action in a time period that is still open (hoy, esta semana, nunca); the preterite places it in a closed period (ayer, el año pasado). Hoy he comido tarde, but Ayer comí tarde. In much of Latin America the preterite is used even with hoy.

Why is 'tengo comido' wrong?

Because the English helper verb 'have' is haber in Spanish, not tener. I have eaten is He comido. Tener means 'to have' in the sense of owning or holding something, and tener que means 'to have to'.

What are the most common irregular past participles in Spanish?

hecho (hacer), dicho (decir), visto (ver), puesto (poner), vuelto (volver), escrito (escribir), abierto (abrir), roto (romper), muerto (morir), cubierto (cubrir), resuelto (resolver), frito (freír) and impreso (imprimir).

How do you say 'I have been living here for five years' in Spanish?

Spanish normally uses the present tense for actions that are still going on: Vivo aquí desde hace cinco años or Llevo cinco años viviendo aquí. A word-for-word present perfect is not the usual choice here.