Skip to main content

A2 · Theory

Spanish present perfect: he comido, has visto, ya, todavía no

The Spanish present perfect is **haber + participle**: **He comido**, **Ana ha llegado**. Use it for experiences up to now (**¿Has estado alguna vez en México?**) and, in most of Spain, for today and this week (**Hoy he comido paella**).

A2 Past, sequence, and narration ·

The main rule

Form: he, has, ha, hemos, habéis, han + participle (-ado or -ido). The participle never changes for gender or number, and nothing goes between haber and the participle: Ya he comido or He comido ya, never *He ya comido. Use it for experiences up to now and, in most of Spain, for today, this week and this year.

Forms: haber + participle

Pretérito perfecto of hablar and comer
PersonHaberExample
Ihehe hablado
you (tú)hashas comido
he, she, you (usted)haha hablado
wehemoshemos comido
you all (vosotros, Spain)habéishabéis hablado
they, you all (ustedes)hanhan comido

In Spain, vosotros habéis is the plural "you" for friends and family, and ustedes han the polite one. In Latin America, ustedes han is the only plural "you".

Building the participle

Regular participles
EndingInfinitiveParticiple
-arhablarhablado
-ercomercomido
-irvivirvivido
-er / -ir after a vowelleer, oír, traerleído, oído, traído
Irregular participles
InfinitiveParticipleExample
hacerhechoAna ha hecho la cena.
decirdichoPablo ha dicho la verdad.
vervisto¿Has visto esta película?
escribirescritoLucas ha escrito una carta.
ponerpuestoHe puesto la mesa.
volvervueltoMarta ha vuelto de Bogotá.
abrirabiertoHemos abierto la ventana.
romperrotoHe roto un vaso.
morirmuertoLa planta ha muerto.
ser, estar, ir, tenersido, estado, ido, tenidoHe sido profesor. He estado en Lima.

Word order and agreement

English puts adverbs between the two verbs: "I have already eaten", "I have never been". Spanish keeps haber and the participle together. Put ya, nunca, todavía before haber, or after the participle: Ya he comido / He comido ya; Nunca he estado / No he estado nunca; Todavía no he terminado / No he terminado todavía. No goes before haber: No he comido. A reflexive pronoun also goes before it: Me he levantado tarde.

The participle does not agree with the subject, unlike an adjective: Ana ha llegado, Las niñas han comido.

Experiences: where English and Spanish match

Like the English present perfect, the Spanish one links the past with now. It works for experiences in your life with alguna vez (ever) and nunca (never), and for ya (already) and todavía no (not yet, also aún no). "I have been to Rome" is He estado en Roma, with estar: never *He sido en Roma. The usual question is ¿Has estado alguna vez en...?, and the short answers are Sí, una vez. and No, nunca.

Today and this week: Spain and Latin America

Here English and Spanish differ. In most of Spain, a period that is not over yet takes the perfect: hoy, esta mañana, esta semana, este año. English would use the simple past: Hoy he comido paella ("I had paella today"), Esta semana he trabajado mucho.

In most of Latin America, and also in the Canary Islands and parts of north-west Spain, the indefinido is usual there: Hoy comí paella, ¿Ya comiste? Both are standard and correct. For experiences up to now, the perfect is understood everywhere, though many Latin American speakers use the indefinido there too. For a closed time (ayer, la semana pasada, en 2019), speakers everywhere usually take the indefinido.

Examples

  • Hoy he comido paella. I had paella today. (Spain)
  • Esta semana he trabajado mucho. This week I have worked a lot.
  • ¿Has estado alguna vez en México? Have you ever been to Mexico?
  • -¿Has viajado en tren? -No, nunca. -Have you travelled by train? -No, never.
  • Ya he terminado el trabajo. I have already finished the work.
  • Todavía no han llegado mis padres. My parents have not arrived yet.
  • Lucía ha escrito un mensaje a su madre. Lucía has written a message to her mother.
  • ¿Habéis visto esta película? (friends in Madrid) Have you all seen this film?

A quick check

Say the English with "have" and move the adverb: "I have already eaten" becomes Ya he comido. If the English is "I have been to", use he estado en. And write the auxiliary as ha, never as the preposition *a.

Common mistakes

  • He ya comido. Ya he comido. / He comido ya. nothing between haber and the participle
  • He nunca estado en Cuba. Nunca he estado en Cuba. nunca goes before haber
  • He no visto a Pedro. No he visto a Pedro. no goes before haber
  • He sido en Roma. He estado en Roma. "been to" is estar
  • Ana ha llegada. Ana ha llegado. the participle does not agree
  • He hacido, he escribido, he rompido, he volvido. He hecho, he escrito, he roto, he vuelto. irregular participles
  • Ana a llegado. Ana ha llegado. ha with h, not the preposition a

Frequently asked questions

What is the difference between pretérito perfecto and indefinido?

The perfecto links an action to now: experiences up to now and, in most of Spain, today, this week or this year. The indefinido is for a closed past time: ayer, la semana pasada, en 2019.

Is "Hoy comí" wrong?

No. In most of Latin America, and also in the Canary Islands, Hoy comí paella is the normal sentence. In most of Spain, speakers say Hoy he comido paella. Both are standard.

Where does ya go in the present perfect?

Before haber or after the participle: Ya he comido or He comido ya. Never between them: *He ya comido.

How do you say "I have been to..." in Spanish?

Use estar: He estado en Roma. Using ser (*He sido en Roma) is a common English-speaker mistake; ser gives He sido profesor.

Does the participle change with the subject?

No. After haber it stays the same: Ana ha llegado, Las niñas han comido.

How do you say "not yet"?

Use todavía no or aún no before haber: Todavía no he terminado. You can also put todavía at the end: No he terminado todavía.

Check yourself

Practise with instant feedback, then pass the exam to certify the topic. Practice and exams come with Reader from €1/month.

More A2 topics