You already command the preterite and the imperfect for telling stories in the past. The perfect tenses do something different: they connect one moment to another — an action completed before the point you are talking about. Once you see the pattern, all four of them fall into place at once, because they are built from the very same two pieces.
Every perfect tense is the helper verb haber plus a past participle. You never change the participle for gender or number here — only haber moves. Change the tense of haber and you change which perfect tense you get. That is the whole system.
Regular participles are easy: -ar verbs take -ado, and -er/-ir verbs take -ido.
| Infinitive | Participle | English |
|---|---|---|
| hablar | hablado | spoken |
| comer | comido | eaten |
| vivir | vivido | lived |
A short list of common verbs has irregular participles worth memorising as a set:
Nothing may come between them. Pronouns and the word no sit in front of the whole unit: No lo he visto. — I haven't seen it. Never *he lo visto.
Use the present of haber for actions that have happened, especially recently or within a time frame that still touches now (today, this week, this year, "ever," "already," "not yet"). It maps closely onto English have/has done.
| Subject | haber (present) | Example |
|---|---|---|
| yo | he | He terminado el trabajo. |
| tú | has | ¿Has comido ya? |
| él/ella/usted | ha | Ella ha vuelto a casa. |
| nosotros | hemos | Hemos visto esa película. |
| vosotros | habéis | ¿Habéis escrito la carta? |
| ellos/ustedes | han | Han hecho mucho hoy. |
Este año he viajado a tres países. — This year I have travelled to three countries.
Nunca he probado el ceviche. — I have never tried ceviche.
Todavía no hemos decidido. — We haven't decided yet.
Use the imperfect of haber (había, habías, había, habíamos, habíais, habían) for the "past before the past" — something that had already happened before another past moment. It is the exact twin of English had done.
| Subject | haber (imperfect) |
|---|---|
| yo | había |
| tú | habías |
| él/ella/usted | había |
| nosotros | habíamos |
| vosotros | habíais |
| ellos/ustedes | habían |
Cuando llegué, la reunión ya había empezado. — When I arrived, the meeting had already started.
Nunca habíamos visto tanta nieve. — We had never seen so much snow.
Me dijo que había perdido las llaves. — He told me he had lost the keys.
These two stretch the pattern into the future and the "would" world. Take haber in the future or conditional and add the participle:
| Tense | haber forms | Meaning |
|---|---|---|
| Future perfect | habré, habrás, habrá, habremos, habréis, habrán | will have done |
| Conditional perfect | habría, habrías, habría, habríamos, habríais, habrían | would have done |
Para las cinco ya habré terminado. — By five o'clock I will have finished.
¿Habrá salido ya el tren? — Will the train have left already? (also expresses a guess: I wonder if it's left.)
Yo habría hecho lo mismo. — I would have done the same.
Con más tiempo, habríamos ganado. — With more time, we would have won.
The conditional perfect (habría hecho) is exactly what you will pair with the pluperfect subjunctive to talk about the unreal past: "If I had known, I would have gone." Master haber here and the hardest si-clause becomes half-built already.
Try these on your own, then say your answers aloud.
Model answers: He escrito el correo. / Cuando llamé, ellos ya habían salido. / Para mañana habré leído todo el libro. / Te habría gustado.
In much of Spain the present perfect covers "what happened today," where many Latin American speakers reach for the simple preterite instead: a Spaniard says Hoy he comido paella, while a Mexican may well say Hoy comí paella. Both are correct — just tune your ear to the region you are in. The pluperfect, future perfect, and conditional perfect, by contrast, work the same everywhere.