If you’ve ever wondered whether a weather condition in the past is preterite or imperfect, here’s the fast answer:
imperfect for background conditions and preterite for completed events or sudden changes.
Below you’ll find a concise rulebook, real examples, and practice to make the choice automatic.

Quick Take

Imperfect: hacía frío, estaba nublado, llovía (ongoing background, habits, climate).

Preterite: hizo frío ayer, hubo tormenta, empezó a llover, paró a las 3 (time-bounded event or change).

Why the choice matters

In Spanish narration, the imperfecto paints the scene while the pretérito pushes the action forward.
Weather belongs to both: it can be a quiet backdrop or the event itself.
Choosing well makes your Spanish precise and natural.

The Flowchart: Three Yes/No Questions

  1. Is it background or habitual? Yes → Imperfect. (Estaba nublado; hacía frío.)
  2. Is there a clear time limit? (yesterday, 2 hours, 3–5 pm) Yes → Preterite. (llovió dos horas.)
  3. Is there a change? start/stop/become Yes → Preterite. (empezó, se puso, paró.)

When none of the above apply, you’re likely describing general climate → use the imperfect (Los veranos eran secos).

Core Patterns for Weather Expressions

1) Hacer + weather noun

  • Imperfect (background): Hacía viento en la costa.
  • Preterite (bounded day/event): El lunes hizo un calor sofocante.

2) Estar + condición (nublado, despejado, húmedo)

  • Imperfect: El cielo estaba nublado cuando salimos.
  • Preterite (interval report): El cielo estuvo despejado de 3 a 5.

3) Haber (hay → había / hubo)

  • Había = existencia de fondo: Había niebla en la autopista.
  • Hubo = suceso/incidente: Hubo una gran tormenta por la noche.

4) Verbos meteorológicos: llover, nevar, granizar

  • Imperfect (en progreso): Llovía mientras cenábamos.
  • Preterite (acotado): Nevó el 12 de enero.

5) Verbos de cambio → suelen activar pretérito

  • Empezó a llover; se puso nublado; paró a las seis; amaneció despejado.

Minimal Pairs that Change Meaning

  • Imperfect: Hacía frío cuando llegaste.
    Preterite: Ayer hizo frío todo el día.
  • Imperfect: Había niebla en el valle.
    Preterite: Hubo una niebla densa a medianoche.
  • Imperfect: El cielo estaba nublado mientras conducíamos.
    Preterite: El cielo estuvo nublado por tres horas.
  • Imperfect: Llovía cuando empezó el concierto.
    Preterite: Llovió de dos a cuatro.
  • Cambio (pretérito): De repente se puso a nevar y luego paró.

Time Cues that Tip the Scale

Often → Imperfect

  • siempre, a menudo, normalmente
  • mientras, en general
  • cada invierno/verano; de niño/a

Often → Preterite

  • ayer, anoche, el lunes pasado
  • por dos horas, de 3 a 5
  • de repente, en ese momento

Pro Notes & Edge Cases

  • “Estuvo lloviendo” (pretérito progresivo) es válido para un intervalo cerrado: Estuvo lloviendo tres horas.
  • “Ser” a veces describe el día como entidad: Era un día frío / Fue un día frío (relato global y cerrado). Se usa menos para el tiempo inmediato.
  • No abuses de “ser” para condiciones: prefiere hacer, estar, haber y verbos meteorológicos.

Cheat-Table (Copy/Paste)

Meaning You Convey Tense Model Sentence
Background scene Imperfect Estaba nublado cuando salimos.
Bounded day/event Preterite Ayer hizo frío.
Change (start/stop/become) Preterite Empezó a llover a las 7.
General climate/habit Imperfect Los veranos eran secos.
Incident existed Preterite (hubo) Hubo tormenta anoche.
Something present in background Imperfect (había) Había niebla en la carretera.

Practice: 14 Quick Items

Choose imperfect or preterite. Answers below.

  1. Ayer ____ (hacer) mucho viento.
  2. Cuando llegamos, ____ (estar) nublado.
  3. De pronto ____ (empezar) a llover.
  4. Durante la ceremonia ____ (llover) sin parar.
  5. El sábado ____ (haber) una tormenta fuerte.
  6. Siempre en julio ____ (hacer) brisa por la tarde.
  7. A las 3 ____ (parar) de llover.
  8. Mientras conducíamos ____ (haber) niebla.
  9. El cielo ____ (estar) despejado de 3 a 5.
  10. De niño, los inviernos ____ (ser) más fríos.
  11. El 12 de enero ____ (nevar).
  12. Normalmente ____ (llover) por la madrugada allí.
  13. Ese día ____ (ser) muy ventoso de principio a fin.
  14. Al amanecer ____ (amanecer) despejado.
Answer Key
  1. hizo (pretérito)
  2. estaba (imperfecto)
  3. empezó (pretérito)
  4. llovía (imperfecto)
  5. hubo (pretérito)
  6. hacía (imperfecto)
  7. paró (pretérito)
  8. había (imperfecto)
  9. estuvo (pretérito)
  10. eran (imperfecto)
  11. nevó (pretérito)
  12. llovía (imperfecto)
  13. fue (pretérito, visión de día completo)
  14. amaneció (pretérito)

FAQ

Is a weather condition in the past preterite or imperfect?

Use imperfect for background (hacía frío, estaba nublado) and preterite for events or changes (hubo tormenta, empezó a llover).

What’s the difference between había and hubo?

Había states that something existed as background (niebla). Hubo reports an incident (tormenta).

When do I use estaba vs estuvo nublado?

Estaba = ongoing scene; estuvo = closed interval (por tres horas).

Can I say “estuvo lloviendo”?

Yes—preterite progressive highlights a bounded interval: Estuvo lloviendo toda la tarde.

Wrap-up

Think in roles: scene → imperfect, event/change → preterite.
With the flowchart, patterns, and minimal pairs above, your choice between tenses will be fast, confident, and native-like.