CEFR A2-B1

Spanish Present Perfect

The present perfect is Spanish's first compound tense. Two pieces, no separation, predictable participle formation, eleven irregulars. Worth learning thoroughly because it's a common A2-B1 building block.

The structure

haber (conjugated) + past participle.

Personhaber
yohe
has
él / ella / ustedha
nosotroshemos
vosotroshabéis
ellos / ellas / ustedeshan

Note hemos (no accent), habéis (accent on the e), han (no s on the end - this is the only have-han pair where the difference matters).

The past participle is built from the infinitive stem:

  • -ar verbs → -ado: hablar → hablado, trabajar → trabajado
  • -er and -ir verbs → -ido: comer → comido, vivir → vivido, salir → salido

Put them together:

  • he hablado (I have spoken)
  • has comido (you have eaten)
  • ha vivido (he / she / you-formal has lived)
  • hemos trabajado (we have worked)
  • habéis salido (you-pl have gone out)
  • han llegado (they have arrived)

The eleven irregular participles

A small set of common verbs don't form their participle by the regular rule. These are the ones you'll meet in the top 1,000 lemmas.

VerbParticipleEnglish
hacerhechodone, made
decirdichosaid
vervistoseen
escribirescritowritten
abrirabiertoopened
volvervueltoreturned
ponerpuestoput
morirmuertodied
romperrotobroken
cubrircubiertocovered
resolverresueltoresolved, solved

Verbs derived from these inherit the same irregular participle: descubrir → descubierto, devolver → devuelto, deshacer → deshecho, componer → compuesto.

Position of pronouns and adverbs

In Spanish, haber and the participle never separate. Any object pronoun or reflexive goes before haber, not between haber and the participle.

  • Lo he visto. (I have seen it.) - not "he lo visto" or "he visto lo"
  • No te he dicho nada. (I haven't told you anything.)
  • Se ha levantado tarde. (He has got up late.)

Adverbs also stay outside the auxiliary-participle cluster.

  • Ya he comido. (I have already eaten.) - ya goes before haber, not between haber and comido
  • Todavía no ha llegado. (He hasn't arrived yet.)

When to use it

In peninsular Spanish, the present perfect is the default for:

  • Recent actions in a time frame that includes the present: hoy (today), esta semana (this week), este año (this year), este mes (this month).
    • Hoy he ido al cine. (Today I went to the cinema.)
    • Esta semana he trabajado mucho. (This week I've worked a lot.)
  • Past actions with current relevance (life experience, ongoing situations).
    • He vivido en Madrid. (I've lived in Madrid.)
    • Nunca he comido sushi. (I've never eaten sushi.)
  • Just-completed actions (often with acabar de or recién).
    • Acabo de llegar. (I've just arrived. - acabar de + infinitive, parallel construction)

For completed actions in a closed past (ayer, la semana pasada, hace dos años), use the preterite instead. A preview of the next chapter:

  • Lo he visto hoy. (I've seen him today.) - present perfect
  • Lo vi ayer. (I saw him yesterday.) - preterite

Regional note

Latin American Spanish leans more heavily on the preterite and uses the present perfect less. Many speakers would say lo vi hoy where a peninsular speaker says lo he visto hoy. For exam Spanish targeting the peninsular standard, follow the time-frame rule above. For real-world use in Latin America, both are accepted.

Worked examples

  • He estudiado mucho este año. (I've studied a lot this year.)
  • ¿Has visto la película? (Have you seen the film?)
  • Mi hermana ha vuelto de París. (My sister has come back from Paris.)
  • No hemos hecho nada hoy. (We haven't done anything today.)
  • Han abierto un nuevo restaurante en la calle. (They've opened a new restaurant on the street.)
  • Nunca he estado en México. (I've never been to Mexico.)

Common mistakes English speakers make

Trying to split haber and the participle to mirror English word order: he ya comido instead of ya he comido. The two pieces are welded together in Spanish. Treating the participle as an adjective and agreeing it with the subject: in the present perfect the participle is invariable - it's always hemos comido, never "hemos comidas". Forgetting irregular participles and saying he hacido or he ponido instead of he hecho and he puesto.

See also

Frequently asked questions

How do you form the Spanish present perfect?
Two pieces: the present-tense of haber (he, has, ha, hemos, habéis, han) plus the past participle of the main verb. Past participles end in -ado for -ar verbs (hablado, trabajado) and -ido for -er and -ir verbs (comido, vivido). He hablado = I have spoken, has comido = you have eaten, hemos vivido = we have lived. The two pieces never split - no word can come between haber and the participle in Spanish, unlike English where 'I have already eaten' separates the auxiliary.
When do you use the present perfect vs the preterite in Spanish?
In peninsular Spanish, the present perfect covers actions in a time frame that includes the present (hoy, esta semana, este año) and recent actions with present relevance. The preterite covers completed actions in a closed past (ayer, la semana pasada, en 2010). 'I saw him today' is lo he visto hoy, but 'I saw him yesterday' is lo vi ayer. In Latin American Spanish the preterite is used more often and the present perfect less - many speakers would say lo vi hoy. For exams targeting peninsular Spanish, follow the time-frame rule above.