B1 Level - Intermediate

Present Perfect (Pretérito Perfecto Compuesto)

Pretérito perfecto compuesto

Want to practice this with a teacher?

Book a free trial

Spanish Present Perfect — Indicative & Subjunctive

Level B1

What it is, and why this lesson is different

The Spanish present perfect — el pretérito perfecto compuesto — pairs the verb haber with a past participle: he comido, has visto, hemos vuelto. The formula lines up with English "I have eaten" almost perfectly, which makes it one of the easiest Spanish tenses to build.

Building it is not the hard part. Knowing whether anyone around you actually says it — that's the hard part.

Most courses teach this tense as if all Spanish worked like the Spanish of Madrid. It doesn't. In Buenos Aires you can go an entire day without hearing a single he comido. Where someone in Spain says Hoy he comido muy bien, a porteño says Hoy comí muy bien. Not as a shortcut, not as slang — that is simply the tense we use. You'll notice this most with ya: see Ya in Spanish.

And here is the part almost nothing on the internet tells you: the subjunctive version is completely alive in Argentina. Espero que hayas comido is ordinary, everyday speech here. Same auxiliary, same participle, no replacement in sight.

So one half of this tense is nearly dormant in Rioplatense Spanish and the other half is in constant use. This lesson covers both and tells you which is which.

How to build it

Two pieces, always in this order: haber in the present + the past participle of your main verb.

Step 1 — Conjugate haber

This is the only part that changes for the person. Learn these six forms and you own the tense.

SubjecthaberExample
yohehe hablado
vos / túhashas hablado
él, ella, ustedhaha hablado
nosotros, nosotrashemoshemos hablado
vosotros, vosotras (Spain only)habéishabéis hablado
ellos, ellas, ustedeshanhan hablado

Two notes for learners coming to Argentina. Voseo does not touch this tense: vos takes has, exactly like tú. And vosotros habéis is Spain only — in Argentina the plural "you" is always ustedes han.

One more thing worth saying early, because it trips people up: haber is not tener. English uses "have" for both possession and this tense, Spanish splits them. Tengo un auto is possession. He manejado el auto is the present perfect. *Tengo comido is not Spanish.

Step 2 — Build the participle

Drop the infinitive ending and add one of two endings. That's it.

Verb typeEndingExample
-ar-adohablar → hablado
-er-idocomer → comido
-ir-idovivir → vivido

The participle never changes for person, gender or number. One form covers everything: he hablado, ella ha hablado, ellos han hablado.

Put the two together and you're done:

  • He trabajado todo el día. — I have worked all day.
  • ¿Has estudiado para el examen? — Have you studied for the exam?
  • No hemos visto esa película. — We haven't seen that film.

Irregular participles

About a dozen verbs build their participle their own way. There is no rule — you memorise them. The good news is that the list is short and these are high-frequency verbs you'll meet constantly anyway.

InfinitiveParticipleExample
abrirabiertoHan abierto una cafetería nueva.
cubrircubiertoLa nieve ha cubierto todo.
decirdichoNo he dicho nada.
escribirescrito¿Le has escrito a tu hermana?
hacerhechoHemos hecho lo que pudimos.
morirmuertoSe le han muerto las plantas.
ponerpuestoHa puesto la mesa.
resolverresueltoTodavía no han resuelto el problema.
romperrotoSe me ha roto el celular.
vervistoNunca he visto nada igual.
volvervuelto¿Ya has vuelto de Córdoba?
satisfacersatisfechoLa respuesta no me ha satisfecho.

Compounds inherit the irregularity

If a verb is built on one of the above, it keeps the same ending. Learn one, get several free:

  • -poner → componer → compuesto, suponer → supuesto, proponer → propuesto
  • -hacer → deshacer → deshecho, rehacer → rehecho
  • -cubrir → descubrir → descubierto, encubrir → encubierto
  • -volver → devolver → devuelto, envolver → envuelto
  • -escribir → describir → descrito, inscribir → inscrito

Participles that need a written accent

This one catches almost everyone. When an -er or -ir verb has a stem ending in a, e or o, the i of -ido carries an accent so it stays its own syllable.

InfinitiveParticiple
leerleído
creercreído
traertraído
caercaído
oíroído

Compare with construir → construido, no accent. The stem there ends in u, which forms a diphthong with the i instead of breaking away from it.

Verbs with two participles

A handful of verbs accept both a regular and an irregular form. Both work with haber; the difference shows up when the participle acts as an adjective, where one form usually wins.

InfinitiveBoth formsNote
imprimirimprimido / impresoimpreso is far more common as an adjective: un documento impreso
freírfreído / fritofrito dominates as an adjective: papas fritas
proveerproveído / provistoprovisto is the usual one in both roles

Word order: three rules that never bend

1. Nothing goes between haber and the participle

English happily splits the two — "I have never been", "she has already left". Spanish does not. The two words are welded together, and the adverb moves out of the way.

✗✓
He nunca estado en Chile.Nunca he estado en Chile.
Ha ya terminado.Ya ha terminado.
Hemos siempre vivido acá.Siempre hemos vivido acá.

The same applies to the subject in a question. English inverts the auxiliary and the subject; Spanish keeps haber glued to the participle and puts the subject after both: ¿Ha llegado Juan?

2. Pronouns go before haber, not after the participle

Object pronouns and reflexive pronouns sit in front of the whole block — never inside it, never attached to the end.

  • ¿Lo has visto? — Have you seen it?
  • Me he levantado temprano. — I got up early.
  • Se lo hemos dado. — We have given it to them.
  • No te he llamado todavía. — I haven't called you yet.

Notice that negation goes even further out: no comes before the pronoun, which comes before haber.

3. The participle never agrees

In this construction the participle is frozen in the masculine singular, no matter who or what it refers to.

  • Las cartas que he escrito — not escritas
  • Ella se ha ido — not ida
  • Mis amigas han llegado — not llegadas

This matters because participles do agree in other structures, and learners mix the two up. Compare:

StructureAgreement?Example
haber + participle (this tense)noHe cerrado la puerta.
estar + participle (a state)yesLa puerta está cerrada.
ser + participle (passive)yesLa puerta fue cerrada por el portero.
participle as an adjectiveyesuna puerta cerrada

Spain vs. Argentina: the part textbooks skip

This is the single most useful thing on this page. The present perfect and the simple past (comí, fui, vi) compete for the same job, and which one wins depends on where you are.

How Spain divides the work

Peninsular Spanish uses a time-frame rule. If the period you're talking about includes the present moment — today, this week, this month, this year, ever in my life — you use the present perfect. If the period is closed and gone — yesterday, last week, in 2019 — you use the simple past.

Time frameSpain says
hoyHoy he trabajado mucho.
esta semanaEsta semana he ido tres veces al gimnasio.
este añoEste año hemos viajado poco.
ayerAyer trabajé mucho.
el año pasadoEl año pasado viajamos a Perú.

Clean rule, easy to teach. And it describes about 40 million speakers out of roughly 500 million.

How Argentina divides the work

We mostly don't. Rioplatense Spanish uses the simple past in nearly all of those slots.

SpainArgentina
Hoy he trabajado mucho.Hoy trabajé mucho.
Esta semana he ido tres veces al gimnasio.Esta semana fui tres veces al gimnasio.
¿Has desayunado?¿Desayunaste?
Ya he terminado.Ya terminé.
¿Alguna vez has probado el mate?¿Alguna vez probaste mate?

Rioplatense has one of the lowest rates of present-perfect use in the Spanish-speaking world. Using it the Spanish way won't make you wrong, exactly — everyone will understand you — but it will mark you instantly as someone who learned Spanish from a Peninsular textbook.

What we say instead

Three patterns cover almost everything the present perfect does in Spain.

For something that just happened — simple past, or acabar de:

  • Recién llegué. / Acabo de llegar. — I've just arrived.
  • Te mandé un mensaje. — I've sent you a message.

For an experience in your life — simple past, often with alguna vez or nunca:

  • ¿Alguna vez fuiste a Bariloche? — Have you ever been to Bariloche?
  • Nunca comí insectos. — I've never eaten insects.

For something that started in the past and continues — present tense with hace… que or desde:

  • Hace cinco años que vivo acá. — I've lived here for five years.
  • Trabajo acá desde marzo. — I've worked here since March.

That last one is worth dwelling on, because English speakers reach for the perfect here and it sounds genuinely odd in Spanish. "I have lived here for five years" is not He vivido acá por cinco años. It's Hace cinco años que vivo acá — present tense, because you still live there.

Where the indicative does survive in Argentina

"Argentines don't use it" is a useful simplification, not the whole truth. Here is where you'll still run into it.

In writing and formal speech. Newspapers, academic prose, official statements, a speech at a conference. El gobierno ha anunciado nuevas medidas is perfectly natural in print and would sound stiff coming from a friend at a café.

When the period is still open and you want to stress that. Ha sido un año difícil — a hard year, and we're still in it. Hemos tenido problemas con eso — ongoing, unresolved. The perfect pulls the past into the present on purpose.

With todavía no and aún no. Todavía no ha llegado competes on fairly even terms with todavía no llegó in Buenos Aires. Both are common.

In set phrases. ¿Qué has hecho? as an exclamation of dismay, for instance, survives where the plain question would be ¿Qué hiciste?

The northwest is a different country, grammatically

Here's a detail that will make you sound like you actually know Argentina rather than just Buenos Aires. In the Noroeste argentino — Tucumán, Salta, Jujuy, Santiago del Estero — the present perfect is used far more than in the Río de la Plata, and often with a different flavour: it can carry a sense of something witnessed or reported, closer to how neighbouring Andean varieties use it.

So a speaker from Salta may well say He ido ayer where a porteño would find the combination of perfect and ayer impossible. Argentina is not one dialect, and this tense is one of the clearest places you can hear the seam.

The present perfect subjunctive — this one you need everywhere

Everything above was about the indicative, the half that Argentina mostly replaces. Now the half it doesn't.

The pretérito perfecto de subjuntivo takes the same participle and swaps haber into the subjunctive:

Subjecthaber (subjunctive)Example
yohayaque yo haya comido
vos / túhayasque hayas comido
él, ella, ustedhayaque haya comido
nosotros, nosotrashayamosque hayamos comido
vosotros, vosotras (Spain only)hayáisque hayáis comido
ellos, ellas, ustedeshayanque hayan comido

Why this one doesn't get replaced

The indicative he comido has a ready substitute — comí. The subjunctive doesn't. If you need to express a completed action filtered through doubt, emotion or expectation, haya comido is the only form that does the job.

Espero que comiste is not an option. It has to be Espero que hayas comido.

So a learner heading to Buenos Aires can get away with barely producing the indicative, but needs this one actively, from day one.

When you use it

A past action you're reacting to with doubt, emotion or opinion. The action is done; your attitude toward it lives in the present.

  • No creo que haya dicho eso. — I don't think he said that.
  • Me alegra que hayan venido. — I'm glad they came.
  • Es raro que todavía no haya llamado. — It's odd that she hasn't called yet.
  • Dudo que hayas leído el libro entero. — I doubt you read the whole book.
  • Ojalá no se haya ofendido. — I hope he didn't take offence.

A future action, seen from a point after it's finished. English uses the present here, which is why learners miss it.

  • Llamame cuando hayas terminado. — Call me when you've finished.
  • Para diciembre espero que hayamos cerrado el trato. — By December I hope we'll have closed the deal.
  • En cuanto hayan llegado, empezamos. — As soon as they've arrived, we start.

Common triggers

The word que is usually your signal. What sits in front of it decides the mood.

CategoryTriggers
Hope, wishespero que, ojalá (que), deseo que
Doubt, denialno creo que, dudo que, no es cierto que
Emotionme alegra que, me molesta que, es una pena que, qué bueno que
Possibilityes posible que, puede ser que, quizás, tal vez
Value judgementes raro que, está bien que, es increíble que
Time, looking forwardcuando, en cuanto, apenas, después de que, hasta que

Haya vs. hubiera

One quick contrast, because learners conflate them. Haya comido looks back from now. Hubiera comido looks back from a point in the past, or describes something that never happened at all.

  • No creo que haya llegado. — I don't think he's arrived. (I'm wondering right now.)
  • No creía que hubiera llegado. — I didn't think he'd arrived. (I was wondering back then.)
  • Si hubiera llegado antes, lo habríamos visto. — If he'd arrived earlier, we'd have seen him. (He didn't.)

Seven mistakes English speakers make

1. Using tener instead of haber. English "have" covers both jobs; Spanish doesn't. Tengo comido is not a sentence. → He comido.

2. Splitting the two verbs. He nunca ido → Nunca he ido. The adverb moves out, always.

3. Making the participle agree. Ellas han llegadas → Ellas han llegado. Frozen in the masculine singular, every time.

4. Reaching for the perfect to say how long. He vivido acá por cinco años → Hace cinco años que vivo acá. If you still live there, Spanish uses the present.

5. Pluralising haber in ha habido. Han habido problemas → Ha habido problemas. In this impersonal use haber has no plural, no matter how many problems there are. You'll hear the plural from native speakers; it's still non-standard.

6. Dropping the accent on leído, traído, oído. Without it the word is a different shape entirely. He leido is a spelling error, not a variant.

7. Carrying the Spanish-textbook habit to Buenos Aires. ¿Has desayunado hoy? will be understood, answered, and quietly filed under "learned Spanish in Europe". → ¿Desayunaste?

Interactive Proof of Concept Quiz

Double-check your understanding of these grammatical structures right now.

Consigna / Fill in the blank:
Espero que ___ (terminar, vos) el informe.

Translation: I hope you've finished the report.

Put it to the test!

We have designed a dedicated interactive workbook of exercises structured to consolidate and automate this grammar topic.

Go to Practice Exercises

Get a free graded reader

Short stories about Argentina in Spanish, with an English glossary and exercises. Choose your level and I'll email you the PDF.

Level

I'll email you the book and, once in a while, a message from me. Unsubscribe anytime. Privacy policy

FREE Trial Lesson

Hi! I'm Franco, the teacher behind this website.

Want to put what you've learned into practice?

You want to ask me something you don't understand?

Book Free Trial