Il y a vs. Depuis: Ago, Since, or For?
This is the first of two pages on expressing duration in French. This page covers il y a and depuis, the pair most often confused since they can occupy nearly the same position in a sentence yet point in opposite directions: one looks back at something finished, the other reaches back to something still going. The second page covers en, pendant, pour, and dans.
Il y a answers « how long ago ». It always refers to a completed event, and the verb is always in a past tense, exactly as in English.
Nothing here is still happening. The moving and the leaving are done; il y a just marks how far back they sit.
Depuis answers a different question entirely: not « how long ago did this happen » but « how long has this been going on ». And this is where French and English part ways: French keeps the verb in the tense that matches the moment being described, English shifts into a perfect form.
The test is simple: is the situation still true? If you're describing something still true right now, use the present. If you're describing something that was still true at some point in the past you're narrating, use the imperfect, since the imperfect is French's tense for « was ongoing at that moment ».
This is the part worth sitting with, because « depuis = present tense » is the rule most students walk away with, and it's only half right. What matters isn't the word depuis itself, it's whether the situation described is still ongoing or already over.
In the first, the smoking is still happening, so the verb stays in the present. In the second, the smoking has stopped, so the passé composé is used instead.
Same construction, same depuis, but the tense flips depending on whether the action continues or has ended. That same contrast shifts one step into the past when the reference point itself is in the past:
In the first, he was still at the library at that past moment, so the imperfect is used. In the second, the week-long absence was already complete by that past moment, so the plus-que-parfait is used instead.
These three are interchangeable with depuis when depuis means « for », not « since », they just move the time expression to the front of the sentence. Same present-tense logic applies.
Both mean exactly the same thing as their depuis equivalents from the previous section, just with the time expression moved to the front of the sentence.
Il y a and il y a...que look almost identical, one word apart, and mean opposite things.
The first is a finished event, a fixed point in the past, no que. The second is an ongoing state, que changes everything. One word is the entire difference between « 20 years ago » and « for 20 years, still going ».
- Always a completed event.
- Always a past tense, just like English.
- Still true now → present. Il fume depuis dix ans. (He has been smoking for ten years.)
- Still true at a past moment being narrated → imperfect. Il fumait depuis dix ans quand il est tombé malade. (He had been smoking for ten years when he got sick.)
- No longer true → passé composé. Il n'a pas fumé depuis un an. (He hasn't smoked in a year.)
- Already over by a past moment being narrated → plus-que-parfait. Il n'avait pas fumé depuis un an quand il a craqué. (He hadn't smoked in a year when he caved.)
- Same meaning and same tense rules as depuis, just with the time expression moved to the front of the sentence.