Rohertragsmarge in Odoo: warum die Zahl im Auftrag selten stimmt
Sie pflegen die Einkaufspreise, und plötzlich sieht die Marge des letzten Quartals anders aus als vorige Woche. Das ist kein Fehler in der Auswertung, sondern eine Eigenschaft der Datenquelle.
Marge ist eine Differenz zweier Zeitpunkte
Der Verkaufspreis einer Position ist historisch: Er steht im Auftrag und ändert sich nicht mehr. Der Einstandspreis ist es oft nicht. Wird die Marge gegen standard_price des Produkts gerechnet, verwendet man den Wert von heute gegen einen Verkauf von damals.
Solange Einkaufspreise stabil sind, fällt das nicht auf. Nach einer Preisrunde beim Lieferanten verschiebt sich rückwirkend die Marge jedes historischen Auftrags — und zwar in die falsche Richtung: Der teurere Einkauf von heute wird gegen die Verkaufspreise von gestern gerechnet.
Die Bewertungsmethode entscheidet mit
Odoo kennt für die Lagerbewertung drei Verfahren, und sie beantworten „was hat das gekostet“ unterschiedlich:
| Methode | Einstandspreis ist … | Wirkung auf die Marge |
|---|---|---|
| Standardpreis | ein manuell gepflegter Wert | Stabil, aber nur so gut wie die Pflege. Veraltet still. |
| Gleitender Durchschnitt (AVCO) | der Durchschnitt aller Zugänge | Reagiert verzögert auf Preisänderungen und glättet Ausreißer. |
| FIFO | der Preis der ältesten Bestandsmenge | Am nächsten an der Realität, springt aber sichtbar bei Preissprüngen. |
Für die Frage „war dieser Auftrag profitabel“ ist der Wert zum Lieferzeitpunkt richtig. Odoo hält ihn in den Bewertungssätzen (stock.valuation.layer) je Warenbewegung fest — dort steht, was der Abgang tatsächlich gekostet hat. Das ist aufwändiger abzufragen als standard_price, aber es ist die einzige Quelle, die sich rückwirkend nicht mehr ändert.
Was in der Marge meistens fehlt
- Fracht und Zoll, wenn sie nicht in die Landed Costs eingerechnet wurden. Bei Importware sind das schnell 5–15 %.
- Rabatte auf Auftragsebene, die nicht auf die Positionen verteilt wurden.
- Retouren. Eine Gutschrift ohne Rückbuchung des Wareneinsatzes lässt die Marge des Zeitraums besser aussehen, als sie war.
- Vertriebsprovision und Verpackung — keine Herstellkosten, aber auftragsabhängig. Wer sie ignoriert, hält Produkte mit 12 % Rohertrag für tragfähig.
Marge je Auftrag oder je Produkt?
Beides, aber für verschiedene Fragen. Die Marge je Auftrag beantwortet, ob ein Kunde oder ein Vertriebsmitarbeiter Preisdisziplin hält. Die Marge je Produkt beantwortet, ob die Kalkulation stimmt. Wer nur den Durchschnitt über alles betrachtet, sieht keines von beidem: Ein Sortiment aus 40-%- und 5-%-Produkten hat im Mittel eine gesunde Marge und trotzdem ein Problem.
Die aufschlussreichste Auswertung ist eine Verteilung, keine Kennzahl: alle Auftragspositionen eines Quartals, sortiert nach Marge, und dann der Blick auf das unterste Zehntel. Dort steht in der Regel eine kleine Zahl von Kunden oder Produkten, die den Schnitt zieht.
Der Sonderfall Fertigung
Bei Eigenfertigung ist der Einstandspreis kein Einkaufspreis, sondern das Ergebnis einer Stücklistenkalkulation: Materialkosten der Komponenten plus Arbeitsgänge. Beide Bestandteile veralten unabhängig voneinander. Eine Stückliste, deren Komponentenpreise zwei Jahre alt sind, produziert eine Marge, die niemand mehr nachvollziehen kann — und in der Regel eine zu gute.
Eine Marge ohne Angabe, gegen welchen Einstandspreis sie gerechnet wurde, ist eine Meinung mit Nachkommastellen.
Verwandt: Warum Ihr Odoo-Umsatz nicht zur GuV passt — dieselbe Klasse von Problem, eine Ebene darüber.
Weiterlesen
- Warum Ihr Odoo-Umsatz nicht zur GuV passt
Fast jede selbst gebaute Umsatzauswertung in Odoo liegt unter der GuV. Der Grund sind Buchungen ohne Rechnung — und der Filter, der sie unsichtbar macht.
- Fünf Kennzahlen, die eine Geschäftsführung wöchentlich braucht
Nicht vierzig Kennzahlen, sondern fünf — und für jede die Frage, die sie beantwortet, die Grenze, ab der sie unangenehm wird, und wo sie in Odoo steht.