Every German Perfekt sentence has two verbs: an auxiliary near the front and a past participle at the end. English only ever uses have ("I have gone, I have eaten"), but German splits the job between haben and sein. Choosing the right one is the single most common Perfekt error English speakers make — and the rule behind it is sharper than most courses admit.
The default is haben
Most verbs build the Perfekt with haben. This covers all transitive verbs (verbs that take a direct object) and the large majority of other verbs too.
Ich habe heute Morgen drei Tassen Kaffee getrunken.
I drank three cups of coffee this morning.
Wir haben am Wochenende den Garten umgegraben.
We dug up the garden over the weekend.
Hast du gut geschlafen?
Did you sleep well?
Das Konzert hat mir wirklich gefallen.
I really enjoyed the concert.
If you're unsure and a verb takes an object, haben is correct. Start from haben as the baseline and learn sein as the marked exception.
sein with verbs of motion and change of state
A specific group of intransitive verbs uses sein instead. Two ideas define this group:
- Motion from A to B — the subject moves through space: gehen, kommen, fahren, fliegen, laufen, reisen, schwimmen, steigen, fallen.
- Change of state — the subject crosses a threshold into a new condition: aufstehen, einschlafen, aufwachen, sterben, wachsen, werden, passieren.
| Verb | Perfekt | Meaning |
|---|---|---|
| gehen | ist gegangen | went |
| kommen | ist gekommen | came |
| fahren | ist gefahren | drove / travelled |
| fliegen | ist geflogen | flew |
| laufen | ist gelaufen | ran / walked |
| aufstehen | ist aufgestanden | got up |
| einschlafen | ist eingeschlafen | fell asleep |
| sterben | ist gestorben | died |
| werden | ist geworden | became |
Ich bin gestern mit dem Zug nach München gefahren.
I travelled to Munich by train yesterday.
Sie ist heute schon um fünf Uhr aufgestanden.
She got up at five o'clock today already.
Der alte Apfelbaum im Garten ist sehr schnell gewachsen.
The old apple tree in the garden grew very fast.
Während des Films bin ich leider eingeschlafen.
Unfortunately I fell asleep during the film.
The two special verbs: sein and bleiben
Two verbs take sein even though they describe no motion at all — they're simply lexically marked and must be memorized: sein itself (gewesen) and bleiben (geblieben). It helps to think of bleiben as the "anti-motion" verb — pointedly not moving — which is precisely why it patterns with sein.
Wo bist du gestern Abend gewesen? Ich habe dich überall gesucht.
Where were you last night? I looked for you everywhere.
Wir sind den ganzen Sonntag zu Hause geblieben.
We stayed home the whole Sunday.
The transitivity twist: an object flips sein back to haben
Here is the part that catches even good learners. The choice is governed by transitivity, not by the dictionary meaning of the verb. Many motion verbs can be used transitively — with a direct object — and the moment they take an object, they switch back to haben.
The cleanest example is fahren:
| Sentence | Object? | Auxiliary |
|---|---|---|
| Ich bin nach Berlin gefahren. | no object — I moved | sein |
| Ich habe das Auto in die Garage gefahren. | "das Auto" — I drove it | haben |
In the first sentence, you are the thing that moves through space: intransitive, sein. In the second, the car is the object you steered: transitive, haben. Same verb, same participle (gefahren), opposite auxiliary — and the deciding factor is whether there's a direct object.
Wir sind mit dem Boot über den See gefahren.
We went across the lake by boat.
Mein Bruder hat mich gestern zum Bahnhof gefahren.
My brother drove me to the station yesterday.
The same logic touches fliegen (Ich bin geflogen — I flew; Der Pilot hat die Maschine geflogen — the pilot flew the plane) and schwimmen in some uses.
Why English speakers default to haben
English collapsed everything into have centuries ago — "I have gone," "I have become," "I have stayed." (Older English still had it: "He is risen," "They are come.") Modern English gives no signal that some verbs should pattern differently, so the instinct is to translate every have as haben. That instinct produces the most recognizable learner mistake in German: "Ich habe gegangen."
❌ Ich habe gestern ins Kino gegangen.
Incorrect — gehen is intransitive motion: takes sein.
✅ Ich bin gestern ins Kino gegangen.
I went to the cinema yesterday.
❌ Wann hast du nach Hause gekommen?
Incorrect — kommen takes sein: bist du gekommen.
✅ Wann bist du nach Hause gekommen?
When did you get home?
❌ Mein Großvater hat letztes Jahr gestorben.
Incorrect — sterben is change of state: takes sein.
✅ Mein Großvater ist letztes Jahr gestorben.
My grandfather died last year.
❌ Ich bin den ganzen Tag das Auto gefahren.
Incorrect — with the object 'das Auto', fahren is transitive and takes haben.
✅ Ich habe den ganzen Tag das Auto gefahren.
I drove the car all day.
❌ Wir haben den ganzen Sonntag zu Hause geblieben.
Incorrect — bleiben always takes sein: sind geblieben.
✅ Wir sind den ganzen Sonntag zu Hause geblieben.
We stayed home the whole Sunday.
A note on regional variation
A few verbs of position — stehen, sitzen, liegen — split by region. Northern and standard German treat them as haben verbs (Ich habe gestanden), while southern German, Austrian, and Swiss usage takes sein (Ich bin gestanden). Both are correct in their areas; pick one and be consistent. This is the rare case where the auxiliary genuinely is regional, not a matter of right and wrong.
Key takeaways
- Default to haben. All transitive verbs and most intransitives use it.
- sein marks intransitive motion (ist gegangen, ist gefahren, ist geflogen) and change of state (ist aufgestanden, ist gestorben, ist geworden).
- Memorize the two odd ones out: sein → ist gewesen and bleiben → ist geblieben.
- The deciding factor is transitivity: add a direct object and a motion verb flips back to haben (ist gefahren vs hat das Auto gefahren).
- stehen/sitzen/liegen are haben in the north, sein in the south — a genuine regional split.
Now practice German
Reading grammar gets you part of the way. The exercises are where it sticks — free, no signup needed.
Start learning German→Related Topics
- The Perfekt: Germany's Everyday Past TenseA2 — How the Perfekt is formed (haben/sein + past participle) and why it — not the Präteritum — is the normal spoken past in German.
- Transitive and Intransitive Verbs (and Valency)B1 — How a verb's valency — the case and prepositional frame it requires — determines its object, and how it links to the haben/sein auxiliary choice in the Perfekt.
- haben vs sein in the PerfektA2 — How to choose the right auxiliary verb in the German present perfect: haben by default, sein for intransitive motion and change-of-state verbs.
- Past Participles of Strong Verbs (ge-...-en)A2 — How strong German verbs form their past participle with ge-...-en and a changed stem vowel, grouped by ablaut series.
- ich bin kalt and Other Sein/Haben State ErrorsA2 — Why 'Ich bin kalt' means 'I'm cold-hearted' (not 'I feel cold') and 'Ich bin Hunger' is impossible — the German split between sein, haben, and the dative experiencer for sensations and states.
- fahren: Full Conjugation and UsageA1 — Complete conjugation of the strong verb fahren 'to drive / go by vehicle' across all tenses and moods, with the sein vs haben Perfekt split, the a→ä vowel change, prepositions of destination, idioms, and the errors English speakers make.