The Spanish present perfect, he comido, in Spain and Latin America
The present perfect is he comido, “I have eaten”. You form it the same way everywhere, with haber and a participle, but people in Spain and Latin America use it differently. In Madrid you will hear Hoy he comido paella. In Mexico City you will hear Hoy comí paella. Below: how to form it, when to use it, and where the regions part.
When to use the present perfect
Use it for experiences in your life up to now, with no specific time. ¿Has estado en Perú? is “Have you been to Peru?” Nunca he probado el mate is “I’ve never tried mate”. This use is shared across most of the Spanish-speaking world.
Use it for situations that started in the past and continue to affect now. Ha sido un año difícil is “It has been a difficult year”, said while the year is still going. Siempre he vivido en esta ciudad is “I have always lived in this city”.
Use it with ya and todavía for things that have or have not happened yet. Ya he terminado is “I’ve already finished”. Todavía no ha llegado is “He hasn’t arrived yet”. In Latin America the preterite is also common here, as shown below.
In Spain, use it for anything that happened in a period of time that includes now: today, this morning, this week, this year. Esta mañana he ido al banco is “This morning I went to the bank”. In English you use the simple past here, and in Spain people use the present perfect.
When to use the preterite instead
Use the preterite, comí, for a completed action at a finished time: yesterday, last week, in 2019, when I was twenty. Ayer comí paella is correct everywhere. Ayer he comido paella is wrong in standard Spanish, in Spain too.
In Latin America, use the preterite for completed actions today as well. Hoy comí temprano and ¿Ya comiste? are what Mexicans, Colombians and Argentines say.
For more on the two simple past tenses, see preterite vs imperfect.
How the regions differ
| Situation | Spain | Mexico | Colombia | Argentina |
|---|---|---|---|---|
| This morning I went to the bank | Esta mañana he ido al banco. | Esta mañana fui al banco. | Esta mañana fui al banco. | Esta mañana fui al banco. |
| Have you eaten yet? | ¿Ya has comido? | ¿Ya comiste? | ¿Ya comiste? | ¿Ya comiste? |
| Have you ever been to Peru? | ¿Has estado alguna vez en Perú? | ¿Has estado en Perú? | ¿Has estado en Perú? | ¿Alguna vez fuiste a Perú? |
| I’ve been very busy lately | He estado muy ocupado. | He estado muy ocupado. | He estado muy ocupado. | Estuve muy ocupado estos días. |
Spain. In most of Spain, the present perfect is the everyday past for anything today. People from Galicia, Asturias and the Canary Islands use the preterite more, closer to Latin American usage.
Mexico. The present perfect is used for experiences and for situations that continue into the present. With he estado enfermo you suggest you are still ill or only just better. For something finished today, Mexicans use the preterite.
Colombia. Usage is close to Mexico’s. Colombians use the present perfect for experiences and ongoing situations, and the preterite for finished events, including today’s.
Argentina. In Buenos Aires, people use the preterite for most of what other regions say with the present perfect, including many experiences. ¿Fuiste alguna vez a Perú? is the normal question. You will see the present perfect in writing, but you will hear it much less in conversation.
If you learn one system, you will be understood everywhere. Match the region you spend time in when you can.
Time words that point to each tense
In Spain especially, look at the time word to choose the tense.
| Present perfect in Spain | Preterite everywhere |
|---|---|
| hoy (today) | ayer (yesterday) |
| esta mañana (this morning) | anoche (last night) |
| esta semana (this week) | la semana pasada (last week) |
| este año (this year) | el año pasado (last year) |
| alguna vez (ever) | en 2019 (in 2019) |
| nunca (never) | hace dos días (two days ago) |
| ya, todavía no (already, not yet) | el lunes (on Monday) |
| últimamente (lately) | cuando era joven (when I was young) |
In Mexico, Colombia and Argentina, the words in the left column go with the preterite too when the action is finished: Hoy trabajé mucho. In Mexico and Colombia, people more often keep the present perfect with alguna vez, nunca and últimamente.
How to form the present perfect
Use the present of haber with the past participle.
| Person | haber | + participle | English |
|---|---|---|---|
| yo | he | he hablado | I have spoken |
| tú | has | has comido | you have eaten |
| vos | has | has vivido | you have lived |
| él, ella, usted | ha | ha hablado | he, she has spoken / you have |
| nosotros | hemos | hemos comido | we have eaten |
| vosotros | habéis | habéis vivido | you have lived (Spain) |
| ellos, ustedes | han | han hablado | they have spoken / you have |
Haber is only the helper verb. For possession, use tener: Tengo un coche is “I have a car”.
Regular participles
For -ar verbs, add -ado: hablar, hablado. For -er and -ir verbs, add -ido: comer, comido; vivir, vivido.
When the stem ends in a, e or o, write an accent on the í: leído (read), creído (believed), oído (heard), traído (brought), caído (fallen).
Irregular participles
| Infinitive | Participle | English |
|---|---|---|
| abrir | abierto | opened |
| cubrir | cubierto | covered |
| decir | dicho | said |
| escribir | escrito | written |
| hacer | hecho | done, made |
| morir | muerto | died |
| poner | puesto | put |
| resolver | resuelto | solved |
| romper | roto | broken |
| ver | visto | seen |
| volver | vuelto | returned |
Compounds follow the same pattern: descubrir gives descubierto, devolver gives devuelto, deshacer gives deshecho, proponer gives propuesto.
Word order
Nothing goes between haber and the participle. Negatives and pronouns go before haber: No lo he visto, “I haven’t seen it”. Adverbs such as nunca, ya and todavía go before haber or after the participle: Nunca he estado or No he estado nunca.
The participle never changes for gender or number after haber: Las he visto, never las he vistas.
Worked examples
- He comido demasiado. I’ve eaten too much.
- ¿Has visto mis llaves? Have you seen my keys?
- Nunca he estado en Argentina. I’ve never been to Argentina.
- Todavía no hemos decidido. We haven’t decided yet.
- Ya han llegado los invitados. The guests have already arrived.
- ¿Qué has hecho este fin de semana? What have you done this weekend? (Spain, said on Sunday)
- Este año he leído muchos libros. I’ve read a lot of books this year.
- Siempre he querido aprender a bucear. I’ve always wanted to learn to dive.
- ¿Alguna vez has comido chapulines? Have you ever eaten grasshoppers? (Mexico)
- No me ha dicho nada. She hasn’t told me anything.
- Se me ha roto el móvil. My phone has broken. (Spain)
- Hemos vivido aquí desde 2015, pero nos vamos a mudar. We’ve lived here since 2015, but we’re going to move.
Common mistakes English speakers make
| Wrong | Right | Why |
|---|---|---|
| Ayer he comido paella. | Ayer comí paella. | Use the preterite for a finished time, everywhere. |
| He nunca estado. | Nunca he estado. | Nothing goes between haber and the participle. |
| He lo visto. | Lo he visto. | Pronouns go before haber. |
| Las he vistas. | Las he visto. | The participle does not agree after haber. |
| He escribido. | He escrito. | Irregular participle. |
| He rompido. | He roto. | Irregular participle. |
| Tengo comido. | He comido. | Use haber for “have done”. |
| Vivo aquí por cinco años. | Vivo aquí desde hace cinco años. or Llevo cinco años aquí. | Por cinco años does not mean “for the last five years”. |
To say how long something has been true, use the present with desde hace, hace… que or llevar: Vivo aquí desde hace cinco años, Hace cinco años que vivo aquí, or Llevo cinco años viviendo aquí. He vivido aquí cinco años is also correct.
Two related forms
Acabar de + infinitive is “have just”: Acabo de llegar, “I’ve just arrived”. Everyone uses it, and in Latin America it is the usual way to say “just”.
Había + participle is the pluperfect, “had done”: Cuando llegué, ya se habían ido, “When I arrived, they had already left”.
Practise it
The Vozelu grammar course has a lesson called “The present perfect”. To take it, create an account. In the lesson you read how haber and the participle go together and when the form is used, then you type the forms in full sentences and are told what you got wrong, including the irregular participles.
Questions people ask
What is the difference between he comido and comí? Both translate “I ate” or “I have eaten”. In Spain, he comido is for today and periods that include now, and comí for finished times such as yesterday. In Latin America, comí is used for most finished actions, including today’s.
Do Latin Americans use the present perfect? Yes, for experiences and situations that continue into the present: ¿Has estado en Cuba?, He estado muy cansado. They use it less than people in Spain do for finished events.
Is it wrong to say “hoy comí” in Spain? No. It is correct and everyone understands it. Most people in Spain would say hoy he comido.
How do you form the present perfect in Spanish? Use he, has, ha, hemos, habéis or han with the participle: -ado for -ar verbs, -ido for -er and -ir verbs.
What are the irregular past participles? The common ones are abierto, dicho, escrito, hecho, muerto, puesto, roto, visto and vuelto.
How do I say “I have just” in Spanish? Use acabar de with an infinitive: Acabo de comer, “I’ve just eaten”.
Why is it “he” and not “tengo”? Haber is the helper verb for perfect tenses. Tener is for possession.