Odoo in der Agentur: Projekte, Retainer, Stundenabrechnung
Kurz gesagt
Odoo 20.0 führt eine Agentur über drei getrennte Wege: Projektaufträge rechnen nach Aufwand, Vorkasse oder Meilenstein ab, ein Retainer läuft als wiederkehrender Plan in der App Abonnements oder als Verkaufsauftrag je Monat. Gekaufte Stunden stehen im Community-Modul sale_timesheet als verbleibende Zeit an der Auftragsposition, sofern die Position Vorkasse/Festpreis nutzt und ihre Einheit sich in Stunden umrechnen lässt; die Dokumentation führt die verbleibenden Stunden an der Aufgabe. Abonnements, Planung und Budgets stehen laut Editionsvergleich nur in Enterprise, Projekte, Zeiterfassung, Verkauf und Rechnungsstellung in beiden Editionen; in Deutschland zahlen abgabepflichtige Unternehmen auf Entgelte an selbständige Künstler und Publizisten die Künstlersozialabgabe.
Das Wichtigste
- Vorkasse/Festpreis rechnet die bestellten Stunden mit der Auftragsbestätigung ab; Basierend auf Zeiterfassungen rechnet die erfasste Zeit.
- Im Community-Modul sale_timesheet zeigt das Feld Im Verkaufsauftrag verbleibende Zeit die nicht verbrauchten Stunden einer Vorkasse-Position, sofern sich die Einheit der Position in Stunden umrechnen lässt; die Dokumentation beschreibt stattdessen verbleibende Stunden an der Aufgabe.
- Abonnements, Planung und Budgets führt der Editionsvergleich nur in Enterprise; Projekte, Zeiterfassung, Verkauf und Rechnungsstellung in beiden Editionen.
- Ein Kostenstellenbudget vergleicht budgetierte, gebundene und erreichte Beträge und führt Geld, keine Stunden.
- Künstlersozialabgabe in Deutschland 2026: 4,9 Prozent der Entgelte abgabepflichtiger Unternehmen an selbständige Künstler und Publizisten; Meldung bis 31. März.
- Im Inlands-B2B ist die Rechnung an einen anderen Unternehmer für dessen Unternehmen eine E-Rechnung, sofern der Umsatz nicht nach § 4 Nr. 8 bis 29 UStG steuerfrei ist (§ 14 Abs. 2 Satz 2 Nr. 1 UStG); § 27 Abs. 38 UStG lässt Papier und PDF für Umsätze aus 2025 und 2026 bis 31. Dezember 2026 zu, für Umsätze aus 2027 bis 31. Dezember 2027 nur bei Vorjahres-Gesamtumsatz bis 800.000 Euro oder per EDI, wobei PDF und EDI die Zustimmung des Empfängers brauchen. Dauerhaft und unabhängig von diesen Fristen dürfen Rechnungen über höchstens 250 Euro Gesamtbetrag (§ 33 UStDV, nicht für Leistungen nach §§ 3c, 6a und 13b UStG) und Rechnungen über nach § 19 Abs. 1 UStG steuerfreie Kleinunternehmerumsätze (§ 34a UStDV) als sonstige Rechnung übermittelt werden.
Eine Agentur verkauft Zeit, und sie verkauft sie auf drei Wegen: als Festpreisprojekt, als Projekt nach Aufwand und als monatliches Stundenkontingent. In Odoo entscheidet die Abrechnungspolitik am Produkt, welchen dieser Wege ein Auftrag nimmt; der Retainer braucht zusätzlich einen wiederkehrenden Plan und eine Position, an der die gekauften Stunden stehen. Die drei Modelle unterscheiden sich weniger in der Rechnung als in der Frage, wer die Stunden trägt, die niemand verbraucht hat.
Worin sich die drei Modelle unterscheiden
Die Abrechnungspolitik für Dienstleistungen (Service Invoicing Policy) sitzt am Produkt. Die Module sale_project und sale_timesheet kennen die Werte Vorkasse/Festpreis, Basierend auf Zeiterfassungen, Basierend auf Meilensteinen (nur wenn die Meilenstein-Funktion im Projekt aktiviert ist) und Basierend auf Lieferung (Manuell); welcher Wert gilt, entscheidet über Rechnung und Stundenstand.
| Modell | Verkauft wird | Abrechnungspolitik | Wo die Stunden stehen | Wer ungenutzte Zeit trägt |
|---|---|---|---|---|
| Festpreisprojekt | ein Ergebnis | Vorkasse/Festpreis oder Basierend auf Meilensteinen | Zugewiesene Zeit am Projekt | die Agentur |
| Projekt nach Aufwand | die geleistete Zeit | Basierend auf Zeiterfassungen | Geliefert am Auftrag | der Kunde |
| Retainer | ein Stundenkontingent je Monat | Vorkasse/Festpreis im wiederkehrenden Plan | verbleibende Zeit am Auftrag (Modul sale_timesheet, Community-Code) | der Kunde: das Kontingent ist bezahlt; Stunden über dem Kontingent trägt zunächst die Agentur |
Am Retainer entscheidet nicht der Umsatz, sondern der Verbrauch: Deshalb braucht dieses Modell eine Auswertung, die verbrauchte Stunden und Fremdkosten zusammenführt.
Wie ein Retainer in Odoo entsteht
Für einen wiederkehrenden Betrag sieht Odoo 20.0 die App Abonnements vor: Ein wiederkehrender Plan (Recurring Plan) legt den Abrechnungszeitraum fest, im Beispiel monatlich, und das Produkt trägt den Preis je Periode. Diese App Abonnements steht laut Editionsvergleich nur in Enterprise zur Verfügung (Stand 17. Oktober 2026). In Community bilden Sie denselben Vorgang mit einem Verkaufsauftrag je Monat ab, dessen Position die Stunden in einer Zeiteinheit enthält. Das Abo fakturiert den festen Betrag, die Vorkasse-Position die gekaufte Stundenzahl.
Zwei Bausteine gehören dazu: ein Projekt, das die Stunden aufnimmt, und eine Kostenstelle, an der die Kosten des Projekts landen. Die App Planung ordnet Schichten Ressourcen zu, die Beschäftigte oder Material sein können; Ressourcen tragen Rollen, eine Schicht lässt sich einem Projekt zuordnen, und verkaufte Leistungen lassen sich mit Rollen verknüpfen (Dokumentation Planung 20.0). Planung steht laut Editionsvergleich nur in Enterprise zur Verfügung.
Die Monatsrechnung ist im Inlands-B2B für eine Leistung an einen anderen Unternehmer für dessen Unternehmen eine E-Rechnung, sofern der Umsatz nicht nach § 4 Nr. 8 bis 29 UStG steuerfrei ist (§ 14 Abs. 2 Satz 2 Nr. 1 UStG). § 27 Abs. 38 UStG lässt übergangsweise anderes zu: für nach dem 31. Dezember 2024 und vor dem 1. Januar 2027 ausgeführte Umsätze bis zum 31. Dezember 2026 Papier oder, mit Zustimmung des Empfängers, ein elektronisches Format, das nicht der E-Rechnung entspricht, etwa PDF (Nr. 1); für Umsätze aus 2027 dasselbe bis 31. Dezember 2027, wenn der Gesamtumsatz des Rechnungsausstellers im Vorjahr höchstens 800.000 Euro betrug (Nr. 2), oder mit Zustimmung des Empfängers per elektronischem Datenaustausch (EDI, Nr. 3). Zwei Ausnahmen gelten dauerhaft, also unabhängig von diesen Übergangsfristen: Eine Rechnung über höchstens 250 Euro Gesamtbetrag (§ 33 UStDV, nicht für Leistungen nach §§ 3c, 6a und 13b UStG) und eine Rechnung über Umsätze, die nach § 19 Abs. 1 UStG als Kleinunternehmer steuerfrei sind (§ 34a UStDV, mit den Mindestangaben nach dessen Satz 1), dürfen abweichend von § 14 Abs. 2 Satz 2 UStG immer als sonstige Rechnung übermittelt werden (E-Rechnung in Deutschland).
Gekaufte, verbrauchte und verbleibende Stunden
Die drei Zahlen stehen an drei Stellen; sie finden sich nur, wenn Auftrag, Projekt und Zeiterfassung verbunden sind.
| Größe | Wo sie steht | Beispiel |
|---|---|---|
| gekaufte Stunden | Menge der Auftragsposition in einer Zeiteinheit | 20 h |
| verbrauchte Stunden | Summe der Zeiterfassungen auf Aufgaben mit dieser Auftragsposition, Spalte Geliefert | 17,5 h |
| verbleibende Stunden | Feld Im Verkaufsauftrag verbleibende Zeit an der Auftragsposition (Modul sale_timesheet, Community-Code) | 2,5 h |
| Zeitrahmen des Projekts | Zugewiesene Zeit am Projekt, aus den bestellten Stunden berechnet | 20 h |
| Zeit der Aufgabe | Verbleibende Stunden im Reiter Zeiterfassung der Aufgabe sowie die aufgewendete Zeit | 17,5 h / 2,5 h |
Im Community-Code des Moduls sale_timesheet erscheint die verbleibende Zeit an der Auftragsposition nur unter zwei Bedingungen: Die Abrechnungspolitik lautet Vorkasse/Festpreis, und die Einheit der Position lässt sich in Stunden umrechnen; Stunde und Tag erfüllen das, Stück nicht. Odoo rechnet die Restmenge für die Anzeige in Stunden um. Bei der Politik Basierend auf Zeiterfassungen gibt es keine Vorkasse und damit keine verbleibende Zeit; dort ist die gelieferte Menge die abrechenbare Menge.
Die Dokumentation zur Abrechnung nach Zeit und Material 20.0 beschreibt, was am Beispiel der Politik Basierend auf Zeiterfassungen an der Aufgabe steht: die aufgewendete Zeit (Hours Spent), die verbleibenden Stunden (Remaining Hours) am Ende des Reiters Zeiterfassung und die Zugewiesene Zeit (Allocated Time) als Prozentwert. Die Bedingungen an der Auftragsposition nennt sie nicht.
Bei Vorkasse fakturieren Sie die bestellte Stundenzahl direkt nach der Auftragsbestätigung; die Zeiterfassungen füllen nur die Spalte Geliefert. Ein verbrauchtes Kontingent löst deshalb keine Rechnung aus.
Das Produkt trägt im Community-Modul sale_timesheet dafür das Feld Grenzwert (Threshold) mit dem Standardwert 0,9, also 90 Prozent; die Feldhilfe nennt ihn den Anteil der gelieferten Zeit an der Vorkasse-Menge, ab dem die Aktivität für die Verkaufschance entstehen soll. Der Code prüft diesen Grenzwert beim Neuberechnen des Rechnungsstatus des Auftrags und legt die Aktivität nur an, wenn der Auftrag bestätigt ist, am Auftrag eine Verkaufsperson hinterlegt ist, ihr Rechnungsstatus nicht auf Komplett abgerechnet steht und für sie noch keine solche Warnung ausgegeben wurde; die Warnung erscheint je Position einmal. Weil die Vorkasse-Position mit der Auftragsbestätigung abgerechnet wird, steht ihr Rechnungsstatus danach auf Komplett abgerechnet: Solange die gelieferte Menge die bestellte nicht übersteigt, entsteht keine Aktivität, und erst bei mehr gelieferten als bestellten Stunden steht der Rechnungsstatus auf Upselling-Verkaufschance. Prüfen Sie den Verbrauch deshalb selbst an der verbleibenden Zeit; an diesem Grenzwert entscheiden Sie dann über zusätzliche Stunden oder einen höheren Retainer. Die Kette aus Angebot, Auftrag und Rechnung beschreibt Odoo für Dienstleister; der Unterschied liegt hier im voraus bezahlten Kontingent.
Das Projektbudget führt Beträge, keine Stunden
Ein Budget hängt an der Kostenrechnung: Sie schalten in der Buchhaltung unter Konfiguration ‣ Einstellungen im Abschnitt Analytics die Budgetverwaltung (Budget Management) ein und legen dann im Menü Analytic Budgets ein Budget mit Name, Zeitraum und Typ an, dessen Zeilen je Kostenstelle einen Betrag in der Spalte Budgeted erhalten. Sobald das Budget den Status Open hat, zeigt Odoo daneben die Spalten Committed und Achieved: Achieved ist das Ergebnis aus den bestätigten Buchungen auf der Kostenstelle, Committed dieser Betrag plus bestätigte Bestellungen, die noch nicht abgerechnet sind. Eine Bestellposition, die den Betrag überschreitet, erscheint rot.
Der entscheidende Unterschied: Dieses Budget führt Geld, nicht Stunden. Eine Zeile mit 12.000 Euro sagt nicht, wie viele Stunden übrig sind; diese Zahl steht am Auftrag und an der Aufgabe. Wer beides braucht, führt das Budget als Kostendeckel und liest die Stunden am Auftrag und im Projekt. Kostenrechnung, Budgets und Buchhaltung stehen laut Editionsvergleich nur in der Enterprise-Spalte, Projekte und Zeiterfassung in beiden (Community oder Enterprise).
Fremdkosten und Marge: eine Beispielrechnung
Fremdkosten kommen als Eingangsrechnung oder Spesen ins Projekt, nicht als Notiz: Eine Spesenposition verknüpfen Sie mit dem Kunden zur Weiterverrechnung (Customer to Reinvoice) und mit der Kostenverteilung des Auftrags, eine Bestellung trägt die Kostenverteilung in der Position. Das Projekt-Dashboard stellt danach Umsätze und Kosten gegenüber: Zeiterfassungen mit den Kosten nach den Personalangaben der Beschäftigten, Bestellungen mit den Kosten nach der gebuchten Eingangsrechnung und die sonstigen Kosten der Kostenstelle.
Beispielrechnung mit erfundenen Zahlen, ohne Umsatzsteuer und ohne Gemeinkosten: ein Retainer über 20 Stunden im Monat zu 145,00 Euro, davon 17,5 Stunden verbraucht, dazu eine Illustration von 6 Stunden zu 85,00 Euro.
| Posten | Rechnung | Betrag |
|---|---|---|
| Umsatz Retainer | 20 h × 145,00 Euro | 2.900,00 Euro |
| eigene Arbeit | 17,5 h × 62,00 Euro | 1.085,00 Euro |
| Fremdleistung | 6 h × 85,00 Euro | 510,00 Euro |
| Künstlersozialabgabe | 4,9 Prozent von 510,00 Euro | 24,99 Euro |
| Marge | 2.900,00 − 1.619,99 Euro | 1.280,01 Euro |
| Marge in Prozent | 1.280,01 ÷ 2.900,00 | 44,1 Prozent |
| verbleibende Stunden | 20 − 17,5 | 2,5 h |
Mit 23,5 verbrauchten Stunden steigen die eigenen Kosten auf 1.457,00 Euro, und die Marge fällt auf 908,01 Euro oder 31,3 Prozent: Es fallen sechs eigene Stunden mehr an, davon 3,5 über dem bezahlten Kontingent von 20 Stunden. Die Deckungsgrenze liegt in diesem Beispiel bei (2.900,00 − 534,99) ÷ 62,00 = 38,1 Stunden eigener Arbeit; darüber ist kein Deckungsbeitrag mehr übrig.
Was in Deutschland dazukommt: die Künstlersozialabgabe
Eine Agentur, die Werbung oder Öffentlichkeitsarbeit für Dritte betreibt, ist nach § 24 Abs. 1 Nr. 7 des Künstlersozialversicherungsgesetzes (KSVG) abgabepflichtig, sobald sie selbständige Künstler oder Publizisten beauftragt; einen Mindestbetrag der Entgelte verlangt das Gesetz für sie nicht. Wer nur für das eigene Unternehmen wirbt oder fremde Werke für eigene Zwecke nutzt und damit Einnahmen erzielen will, ist nach § 24 Abs. 2 Satz 1 abgabepflichtig, sobald die Entgelte für Aufträge eines Kalenderjahres 1.000 Euro übersteigen (§ 24 Abs. 2 Satz 2).
Bemessungsgrundlage sind die Entgelte, die die Agentur im Kalenderjahr an selbständige Künstler und Publizisten zahlt, ohne die gesondert ausgewiesene Umsatzsteuer (§ 25 Abs. 1 und 2). Den Satz setzt das Bundesministerium für Arbeit und Soziales jährlich durch Rechtsverordnung fest (§ 26 Abs. 5); die Künstlersozialkasse nennt für 2026 4,9 Prozent und für 2027 5,0 Prozent. Die Jahressumme ist bis zum 31. März des Folgejahres zu melden (§ 27 Abs. 1). Die Vorauszahlung ist innerhalb von zehn Tagen nach Ablauf jedes Kalendermonats zu leisten und bemisst sich nach dem Satz des laufenden Kalenderjahres und einem Zwölftel der Vorjahresbemessungsgrundlage; für die Monate Januar und Februar bleibt es beim Betrag des Dezembers (§ 27 Abs. 2 und Abs. 3 Sätze 1 und 2). Sie entfällt, wenn der vorauszuzahlende Betrag 40 Euro nicht übersteigt (§ 27 Abs. 3 Satz 3).
Dazu kommen Aufzeichnungspflichten: Die Entgelte sind fortlaufend aufzuzeichnen, listenmäßig zusammenführbar und mindestens fünf Jahre nach Ablauf des Kalenderjahres aufzubewahren, in dem sie fällig geworden sind (§ 28 KSVG). In Odoo bereiten Sie diese Liste vor; die Auswertung ersetzt die Prüfung nicht. Eingangsrechnungen mit der Kostenverteilung des Projekts erscheinen in der Auswertung der Kostenstelle, dort stehen aber gebuchte Beträge und nicht Zahlungen. Bemessungsgrundlage sind nach § 25 Abs. 1 KSVG die gezahlten Entgelte: Gleichen Sie die Rechnungen deshalb mit den Zahlungen ab, und wählen Sie die Empfänger aus, die selbständige Künstler oder Publizisten sind. Die Abgabe selbst buchen Sie als eigene Eingangsrechnung an die Künstlersozialkasse mit Kostenverteilung, damit sie im Projekt-Dashboard als Kosten erscheint. Für eine Agentur in Österreich oder in der Schweiz ist das KSVG deutsches Recht; ob eine vergleichbare Pflicht anfällt, klären Sie mit Ihrer Steuerberatung.
Typische Fehler
- Die Retainer-Stunden stehen in einem Projekt ohne Auftragsposition. Dann bleibt die Spalte Geliefert bei null; prüfen Sie die Verknüpfung über Projekt & Aufgabe.
- Die Vorkasse-Position trägt die Abrechnungspolitik Basierend auf Zeiterfassungen. Dann fehlt im Modul sale_timesheet die verbleibende Zeit, und die Stunden laufen nach Aufwand.
- Die Stundenposition trägt eine Einheit ohne Bezug zur Stunde, etwa Stück. Dann erscheint die verbleibende Zeit nicht; das Community-Modul sale_timesheet berechnet sie nur für Positionen, deren Einheit sich in Stunden umrechnen lässt.
- Sie verlassen sich auf die automatische Warnung zur Verkaufschance. Bei einer Vorkasse-Position, die mit der Auftragsbestätigung Komplett abgerechnet wird, entsteht sie erst, wenn mehr Stunden geliefert als bestellt wurden; den Verbrauch davor lesen Sie an der verbleibenden Zeit.
- Die Fremdrechnung wird ohne Kostenverteilung gebucht. Der Betrag fehlt im Projekt und in der Auswertung der Kostenstelle, aus der die Liste für die Künstlersozialabgabe entsteht.
- Das Budget wird als Stundenbudget geplant. Die Zeile trägt einen Geldbetrag; die Stunden bleiben am Auftrag.
So gehen Sie vor
- Legen Sie je Rolle ein Produkt der Art Dienstleistung mit der Einheit Stunde und der passenden Abrechnungspolitik an.
- Entscheiden Sie je Kunde zwischen Abo (App Abonnements, nur Enterprise) und monatlicher Vorkasse-Position.
- Erzeugen Sie das Projekt aus der Auftragsposition, geben Sie die Zeiterfassung frei und führen Sie die Mitarbeitenden als Beschäftigte (Zeiterfassung in Projekten).
- Prüfen Sie monatlich die verbleibende Zeit am Auftrag (Modul sale_timesheet) und die Marge im Projekt-Dashboard (Projektrentabilität).
- Buchen Sie Fremdrechnungen mit der Kostenverteilung des Projekts und in Deutschland die Künstlersozialabgabe als eigene Kostenzeile.
- Legen Sie das Budget je Kostenstelle an und terminieren Sie Meldung und Vorauszahlung an die Künstlersozialkasse.