What the Pretérito Perfecto is
Good news first: this tense lines up almost exactly with the English present perfect. Auxiliary have plus a past participle, used for a past action that still reaches into the present — what happened today, what you have done in your life, what has just finished. I have eaten is he comido, part for part.
Here is what it sounds like
Hoy he comido paella.
I have eaten paella today.
¿Has hablado con ella?
Have you spoken to her?
El tren ha llegado.
The train has arrived.
haber and the participle
Only haber is conjugated — irregular, but short. After it, the participle is always the same.
haber in the present
| Person | haber |
|---|---|
| yo | he |
| tú | has |
| él / ella / usted | ha |
| nosotros / nosotras | hemos |
| vosotros / vosotras | habéis |
| ellos / ellas / ustedes | han |
haber (auxiliary)
The participle ends in -ado for -ar verbs and in -ido for -er and -ir verbs: hablar → hablado, comer → comido, vivir → vivido. A few very common verbs are irregular, for example hacer → hecho and ver → visto.
Hemos visto la película.
We have seen the film.
Mis amigos han vivido en Italia.
My friends have lived in Italy.
When to use the Perfecto
The three uses below match the English present perfect. Spanish is stricter only with the first: for a time frame that has not closed yet, Spain uses the perfecto, while English lets you say either I worked a lot today or I have worked a lot today.
Connected to now
For actions inside a period of time that is still running: hoy (today), esta semana (this week), este año (this year).
Hoy he trabajado mucho.
I have worked a lot today.
Esta semana hemos viajado a Madrid.
We have travelled to Madrid this week.
Life experience
For things you have or have not done in your life, with no specific date: alguna vez (ever) and nunca (never).
¿Has estado alguna vez en Madrid?
Have you ever been to Madrid?
Nunca he comido sushi.
I have never eaten sushi.
ya and todavía no
Whether something is done by now: ya (already) or todavía no (not yet).
Ya he terminado los deberes.
I have already finished the homework.
Todavía no ha llegado.
He has not arrived yet.
Finished time at a clear distance (ayer, la semana pasada, el año pasado) takes a different tense, the Pretérito Indefinido, just as English switches to the simple past: I ate late yesterday. In much of Latin America you will also hear the Indefinido for today, as in hoy comí.