SparkAI logoSparkAI

Spanish grammar lessons › Level A2 › Preterite vs imperfect

The present perfect (he hablado) and when Spain uses it

He comido, has visto: today, this week, ya, todavía no, nunca

Part of the free A2 Spanish course. Press the speaker next to an example to hear it.

The present perfect (pretérito perfecto compuesto) is built like English "I have spoken": a helper verb plus a past form of the main verb. A helper verb (or auxiliary) adds the tense; the main verb carries the meaning. In Spanish the helper is haber (never tener), and the main verb is in the participle form.

How to form it

Personhaber+ participle
yohehablado
túhascomido
él / ella / ustedhavivido
nosotros/ashemoshablado
vosotros/ashabéiscomido
ellos / ellas / ustedeshanvivido

The participle is the "-ed" form: -ar verbs take -ado (hablado), -er and -ir verbs take -ido (comido, vivido). If the stem ends in a, e or o, write -ído: leído, oído, traído, creído (but construido, with no accent). Some common verbs are irregular (hecho, dicho, visto): Irregular participles: hecho, dicho, visto, escrito, puesto.

The participle never changes here: ella ha comido, ellos han comido. Nothing goes between haber and the participle: No lo he visto, never He lo visto.

When Spain uses it

In Spain, the present perfect is used for past actions in a time period that is not over yet, and for experience up to now:

  • today, this morning, this week, this month, this year: hoy, esta mañana, esta semana, este año;
  • ya (already, yet), todavía no (not yet), nunca (never), alguna vez (ever);
  • something that has just happened and matters now.
  • Hoy he comido con mis compañeros.Today I had lunch with my colleagues.
  • ¿Has terminado los deberes?Have you finished your homework?
  • Esta semana hemos trabajado mucho.We've worked a lot this week.
  • Esta mañana me he levantado tarde.This morning I got up late.
  • Este año ha llovido muy poco.It has rained very little this year.
  • Todavía no he llamado a mi madre.I still haven't called my mother.
  • Ya hemos comprado las entradas.We've already bought the tickets.
  • ¿Habéis estado alguna vez en Galicia?Have you (all) ever been to Galicia?
  • Mis padres nunca han viajado en avión.My parents have never travelled by plane.

Notice that English often uses a simple past here (Today I had lunch), while Spain uses he comido.

For a finished time (ayer, el lunes, la semana pasada, en 2020, hace dos años), Spain uses the preterite, just like the rest of the Spanish-speaking world: Ayer comí con mis compañeros.

Latin America (and parts of Spain)

Most of Latin America uses the preterite for recent past as well: Hoy comí con mis compañeros. ¿Ya terminaste los deberes? Todavía no llamé a mi madre. The present perfect exists there too, mostly for experience or something that continues up to now (Ha sido un año difícil), and how often it is used varies by country. In Spain, the Canary Islands and parts of the north-west (Galicia, Asturias) also prefer the preterite.

Both systems are correct Spanish. In this course, typed answers accept both unless the question says it is about Spain usage.

Common mistakes

  • Ayer he comido paella. → Ayer comí paella. Ayer is a finished time. (You may hear this in colloquial speech in some parts of Spain, but it is not the standard.)
  • He lo visto → Lo he visto. Pronouns go before haber.
  • Tengo comido → He comido. The helper is haber, not tener.
  • Ella ha comida → Ella ha comido. The participle doesn't agree after haber.
  • Has leido → Has leído. The accent shows le-í-do has three syllables.

Practice

  1. Hoy _____ (yo, desayunar) muy tarde.
    Today I had breakfast very late.
    Show the answer

    he desayunado — Spain: he desayunado (today isn't over). Latin America: desayuné. Both are accepted.

  2. ¿Ya _____ (tú, hablar) con el profesor?
    Have you spoken to the teacher yet?
    Show the answer

    has hablado — Spain: ¿Ya has hablado…? Latin America: ¿Ya hablaste…?

  3. Spain usage: Hoy _____ a Lucía en el metro.
    Today I saw Lucía on the metro.
    Options: he visto · veía · ha visto
    Show the answer

    he visto — In Spain, hoy takes the present perfect: he visto (yo). Ha visto is él/ella. In Latin America, vi is the usual form.

  4. Which time expression normally takes the preterite, even in Spain?
    Options: el verano pasado · esta semana · todavía no
    Show the answer

    el verano pasado — A finished period (el verano pasado) takes the preterite everywhere.

In the app, this lesson is taught one idea at a time with the examples read aloud, followed by questions that explain the rule when you get one wrong. It then comes back for review on later days, until you've answered it correctly on three separate days.