The perfect (Perfekt) is how Germans normally talk about the past in conversation. It's built from two pieces: a helper verb (haben or sein) conjugated in position two, and the past participle at the end of the sentence.
haben or sein?
Treat haben as the default rather than as one of two equal options. Almost every German verb takes it, so the real job is recognising the small group that doesn't — and that group has exactly two reasons plus three verbs you simply learn.
- haben is the default: “Ich habe gegessen,” “Wir haben gespielt.” Any verb with a direct object takes haben, and so do most verbs without one.
- sein, reason 1 — movement from one place to another: gehen, fahren, kommen, fliegen, laufen, reisen. The test: does somebody end up somewhere they weren't?
- sein, reason 2 — a change of state: einschlafen (awake → asleep), aufwachen (asleep → awake), wachsen (small → bigger), sterben.
- Plus three that just take sein and have to be learned: sein itself (ich bin gewesen), bleiben (ich bin geblieben) and werden (er ist Arzt geworden).
The pair that shows the rule is a rule
schlafen and einschlafen come from the same root, and they take different helpers. That looks unfair until you see why: schlafen describes a state you were in — you were asleep for eight hours and nothing changed — so it takes haben. einschlafen describes the moment the state changed, so it takes sein. Four letters on the front turn a state into a change, and the helper follows.
Forming the past participle
| Type | Pattern | Example |
|---|---|---|
| Regular (weak) | ge- + stem + -t | spielen → gespielt |
| Irregular (strong) | ge- + stem + -en (often new vowel) | sprechen → gesprochen |
| -ieren verbs | no ge-, + -t | studieren → studiert |
| Separable | prefix + ge + stem | einkaufen → eingekauft |
Ich habe einen Film gesehen.
I watched a film.
haben + gesehen
Sie ist nach Hause gegangen.
She went home.
gehen = movement → sein
Wir sind früh aufgestanden.
We got up early.
change of state → sein
Ich habe acht Stunden geschlafen.
I slept for eight hours.
a state, nothing changed → haben
Ich bin um elf eingeschlafen.
I fell asleep at eleven.
the moment the state changed → sein
Es ist ein schöner Tag gewesen.
It was a lovely day.
sein forms its own perfect with sein
✗Ich habe nach Berlin gefahren.
✓Ich bin nach Berlin gefahren.
fahren is movement from A to B → sein.
✗Er hat gegeht.
✓Er ist gegangen.
gehen is strong and takes sein: gegangen.
✗Ich habe eingeschlafen.
✓Ich bin eingeschlafen.
einschlafen is a change of state → sein. Compare “ich habe geschlafen”, which is a state and keeps haben.
Tipp · Learn strong participles as a trio — gehen – ging – gegangen — because the third form is the one the perfect needs. And when you're unsure of the helper, don't ask which verb it is; ask whether anything actually changed. No change → haben.