'Há' / 'Faz' Constructions for Time Duration

When English says "I've lived here for five years," it reaches for the present perfect: have lived. Brazilian Portuguese does something that feels backwards to English speakers — it uses the present tense and bolts on a little time-marker, either or faz. The result is Eu moro aqui há cinco anos or Faz cinco anos que eu moro aqui. There is no compound verb anywhere in sight, and getting that one fact into your bones eliminates the single most common mistake English speakers make with duration.

This page covers the two everyday ways to say "for [a length of time]" up to the present, why the present tense is the correct tense, and the trap waiting for you when the very same word flips meaning to "ago."

The core logic: an ongoing situation is present

The reason Portuguese uses the present tense is that the situation is still true right now. If you have lived here for five years and you still live here, then the act of living-here is a present fact. The five years is just background information about how long that present fact has been running. English bundles the duration into the verb (have lived); Portuguese keeps the verb in the present and lets or faz carry the time.

💡
If the situation is still going on, the verb stays in the present tense. The "for five years" part is handled by or faz, never by the verb itself.

Eu moro aqui há cinco anos.

I've lived here for five years. (and I still do)

Faz cinco anos que eu moro aqui.

It's been five years that I've lived here. (same meaning, more colloquial)

A gente namora há oito meses.

We've been dating for eight months.

Notice moro and namora — plain present indicative. To an English ear it sounds like "I live here five years," but that is exactly right in Portuguese.

Construction 1: 'há' + time period (neutral / formal)

is the verb haver in its impersonal form, and here it means roughly "there is/are [a span of time]." It goes before the time amount, takes no article, and is invariable — it never agrees with anything.

Pattern: [present-tense clause] + há + [time period]

Trabalho nessa empresa há três anos.

I've worked at that company for three years.

Não vejo o Rafael há meses.

I haven't seen Rafael for months.

Eles estão casados há vinte anos.

They've been married for twenty years.

Watch the accent: it is with an acute accent. Without it, ha is nothing and a is an article — a missing accent here is a spelling error, not a typo. (For the present-tense forms of haver, see the dedicated page on haver.)

is the slightly more neutral-to-formal option. You will see it in writing, in the news, and in careful speech. It is perfectly natural in conversation too, but in very casual Brazilian speech many people lean on faz instead.

Construction 2: 'faz' + time period + 'que' (colloquial)

Faz is the verb fazer ("to make/do") used impersonally, literally "it makes [five years]." Brazilians use it constantly. The structure differs from : faz introduces the time first, then links to the situation with que.

Pattern: faz + [time period] + que + [present-tense clause]

Faz dez anos que a gente se conhece.

We've known each other for ten years.

Faz uma semana que ele não aparece.

He hasn't shown up in a week.

Faz tempo que eu quero te falar isso.

I've been wanting to tell you that for a while.

You can also put the clause first and tuck the time at the end, which gives you the -style word order but with fazer: Eu moro aqui faz cinco anos. Both orders are fine and common.

Eu moro aqui faz cinco anos.

I've lived here for five years.

💡
and faz are interchangeable in meaning for duration. leans neutral/formal and goes straight before the time; faz leans colloquial and usually wants que before the clause. Pick whichever sounds natural — Brazilians mix both freely.

A note on register: you will sometimes hear tem used the same way in very casual speech — Tem cinco anos que eu moro aqui (informal, regional in parts of Brazil). It is widely understood and common in everyday talk, but it is not used in writing. Stick with or faz when you want to be safe.

The big trap: 'há' also means 'ago'

Here is where English speakers get burned. The exact same word can mean "ago" — but only when the verb is in the past (the preterite). The tense of the verb, not the word , decides the meaning.

  • Present verb + há + time = duration, "for X / up to now."
  • Past verb + há + time = a point in the past, "X ago."

Eu moro lá há cinco anos.

I've lived there for five years. (present — still living there)

Eu morei lá há cinco anos.

I lived there five years ago. (preterite — no longer living there)

One letter of tense (moromorei) flips the entire meaning from an ongoing situation to a finished event in the past. Read those two sentences again until the contrast clicks, because it is the heart of this whole topic.

Ela chegou ao Brasil há três meses.

She arrived in Brazil three months ago.

Conheci a Júlia há muito tempo.

I met Júlia a long time ago.

The same flip works with faz: Faz cinco anos que eu morei lá = "It's been five years since I lived there." With a preterite verb, faz... que measures the time elapsed since a completed event.

Faz três meses que ela chegou.

It's been three months since she arrived. / She arrived three months ago.

Why English makes this hard

English uses two completely different structures for the two ideas: for five years (duration) vs five years ago (a past point). Portuguese uses the same word há for both and lets the verb tense do the disambiguating. So an English speaker who has learned "há = ago" will wrongly read moro aqui há cinco anos as "I lived here five years ago," and an English speaker who has learned "há = for" will wrongly produce morei lá há cinco anos meaning to say "I've lived there for five years." Train yourself to read the verb tense first, then interpret .

There is also no compound-tense equivalent. English have lived maps onto Portuguese present moro — not onto the Portuguese compound tenho morado, which means something different (a recent, repeated pattern). Using tenho morado há cinco anos is wrong; see the page on composto vs perfeito for why.

Common Mistakes

❌ Eu tenho morado aqui há cinco anos.

Incorrect — duration up to now uses the present, not the compound perfect.

✅ Eu moro aqui há cinco anos.

I've lived here for five years.

❌ Eu moro aqui por cinco anos.

Incorrect — 'por' here is a calque of English 'for'; duration to the present takes 'há' or 'faz'.

✅ Eu moro aqui faz cinco anos.

I've lived here for five years.

❌ Eu morei lá há cinco anos.

Incorrect IF you mean 'I've lived there for five years' — the preterite 'morei' makes this 'five years ago'.

✅ Eu moro lá há cinco anos.

I've lived there for five years. (present = still there)

❌ Faz cinco anos eu moro aqui.

Incorrect — 'faz' needs 'que' to link to the clause.

✅ Faz cinco anos que eu moro aqui.

It's been five years that I've lived here.

❌ Eu moro aqui ha cinco anos.

Incorrect — missing the acute accent; it must be 'há'.

✅ Eu moro aqui há cinco anos.

I've lived here for five years.

Key Takeaways

  • For a situation that started in the past and continues now, use the present tense
    • or faz.
  • goes directly before the time and takes no article; faz usually takes que before the clause.
    • present = "for / up to now."
      • preterite = "ago." The verb tense decides.
  • Never use the compound perfect (tenho morado) or a literal por to express duration up to the present.
  • Always write with its acute accent.

Now practice Portuguese

Reading grammar gets you part of the way. The exercises are where it sticks — free, no signup needed.

Start learning Portuguese

Related Topics

  • Translating English 'Since' into BRB1How Brazilian Portuguese uses 'desde' for 'since', why it pairs with the present tense for ongoing situations, and how it differs from the duration words 'há' and 'faz'.
  • Composto vs Perfeito: When BR Uses WhichB1A clean decision rule for choosing the compound perfect (tenho feito) versus the simple preterite (eu fiz) in Brazilian Portuguese.
  • Pretérito Perfeito Composto: OverviewA2Why the Brazilian 'tenho falado' does NOT mean the English present perfect — it means an action repeated or continued from a past point up to now.
  • Haver for Formal Existence and TimeA2How há, havia, and houve express formal existence, elapsed time, and 'ago' — including the two opposite temporal meanings of há.
  • Time ExpressionsA1The idiomatic Brazilian time chunks — já já, daqui a pouco vs agora há pouco, em cima da hora, de vez em quando — and the future/past split that trips learners up.