Lade...
 

Durchschnittspreisberechnung

Durchschnittspreisberechnung

Definition

Durchschnittspreis wird auf dem Lagerkonto des jeweiligen Teils als Preis per Menge gespeichert (Anzeige s. Logistikkonto) und laufend geführt. Die Berechnungsregeln werden nicht im Programmcode, sondern in der Datenbank durch die Transaktionsbeschreibungen für entsprechende bestandswirksame Belege festgelegt. Als Berechnungsbasis kann der Rollenpreis des Teiles (Fertigungsteil/Bestellartikel) oder der Preis des Belegs verwendet werden. Diese Einstellung kann unter dem Mandanten vorgenommen werden, siehe.

  • Durchschnittspreis nach Rollenpreis = In den Wareneinlagerungsbeleg wird der Preis aus der durch das Logistik-Kennzeichen eingestellten Beschaffungsart (Kaufteil/Fertigungsteil) festgelegten Rolle gezogen, d.h. bei Kaufteilen aus dem Bestellartikel der Standardwert und bei Fertigungsteilen die Herstellungskosten. Der Rollenpreis bestimmt also die Entwicklung des Durchschnittspreises auf dem Lagerkonto und der Monatsbewertung über den Durchschnittspreis.
  • Durchschnittspreis nach Belegpreis = In den Wareneinlagerungsbeleg wird wenn vorhanden der Preis aus dem Vorgängerbeleg geschrieben. Wird eine Wareneingang also ausgelöst durch eine Bestellung verbucht, so wird der Bestellpreis unter Berücksichtigung aller Rabatte in den Wareneinlagerungsbeleg geschrieben. Dieser steuert wie oben den Durchschnittspreis.

Der Durchschnittspreis steht in beiden Fällen in dem Logistik-Konto, jedoch wird dieser mit einer unterschiedlich Basis berechnet. Auf jedem Beleg wird der aktuelle Preis vom Beleg "pricePer"  und von der Rolle "last.defaultPricePer" abgeschrieben.

Die vorhandenen Durchschnittspreise der lagergeführten Teile können Sie im Menü "Dienste --> Materialwirtschaft" in der Karteikarte "Lagerkonto" prüfen. Siehe

Momentan wird folgendes Standard-Schema benutzt:

Beleg Funktionalität
Wareneingangsposition
  • Preisfindung:
    • Rollenpreis: Standardwert bzw. Herstellungskosten aus der Rolle entsprechend der Beschaffungsart des Teils
    • Belegpreis: Wert aus dem Vorgängerbeleg, z.B. Preis aus Bestellposition INKLUSIVE aller Rabatte und Aufschläge. (gross.value durch Gesamtmenge)
  • Durchschnittspreis wird beim Buchen NICHT angepasst (Ausnahmen gibt es, wenn per System ein Wareneingang gleichzeitig als Wareneinlagerung dient)
  • Slots:
    pricePer - Preis aus der Bestellung
    last.defaultPricePer - Preis aus der Bestellrolle

     

Wareneinlagerungsposition
  • Preisfindung:
    • Rollenpreis: Standardwert bzw. Herstellungskosten aus der Rolle entsprechend der Beschaffungsart des Teils
    • Belegpreis: Wert aus dem Vorgängerbeleg, z.B. Wareneingang oder Durchsnittspreis
  • Durchschnittspreis wird beim Buchen angepasst
  • Slots:

    Bei Teilen aus dem Wareneingang :
    pricePer - Preis vom Wareneingang bzw. der Bestellung oder der Durchschnittspreis aus dem Lagerkonto, wenn dieser nicht vorhanden ist wird der Standardrollenpreis verwendet, wenn dieser auch nicht vorhanden ist der NULL-Preis

    Eine Ausnahme sind Teile mit "Eigenbeistellung", hier wird bei dem Wareneingang über Bestellungen nicht der Bestellwert verwendet, da dieser nicht den Gesamtwert des Teiles wiedergibt, sondern immer der Standardrollenpreis.

    last.defaultPricePer - Standardpreis aus der Bestellrolle




     


    Bei Teilen aus der Fertigung :

    PricePer - Durchschnittspreis aus dem Lagerkonto, wenn dieser nicht vorhanden ist wird der Standardrollenpreis verwendet, wenn dieser auch nicht vorhanden ist der NULL-Preis
    last.defaultPricePer - Herstellungskosten aus der Fertigungsrolle




    Bei Teilen ohne Vorgänger :
    PricePer - Durchschnittspreis aus dem Lagerkonto, wenn dieser nicht vorhanden ist wird der Standardrollenpreis verwendet, wenn dieser auch nicht vorhanden ist der NULL-Preis
    last.defaultPricePer - Herstellungskosten aus der Fertigungsrolle bzw. Standardpreis aus der Bestellrolle je nach Logistik-KZ
Warenauslagerungsposition
  • Beim Erstellen der Warenauslagerung wird der Durchschnittspreis als Positionspreis übernommen, falls nicht Null
  • Durchschnittspreis im Lagerkonto bleibt unverändert
  • Slots:
    pricePer - Durchschnittspreis aus dem Lagerkonto
    last.defaultPricePer - Herstellungskosten aus der Fertigungsrolle bzw. Standardpreis aus der Bestellrolle je nach Logistik-KZ

     
Lieferscheinposition
(Direkte Lagerbuchung)
  • Beim Erstellen der Lieferscheinposition wird der Durchschnittspreis als Positionspreis übernommen, falls nicht Null
  • Durchschnittspreis im Lagerkonto bleibt unverändert
  • Slots:
    pricePer - Durchschnittspreis aus dem Lagerkonto, wenn Null werden die Herstellungskosten aus der Fertigungsrolle
      bzw. der Standardpreis aus der Bestellrolle je nach Logistik-KZ
    last.defaultPricePer - Herstellungskosten aus der Fertigungsrolle bzw. Standardpreis aus der Bestellrolle je nach Logistik-KZ

     

Inventurbelegposition
  • Durchschnittspreis wird auf Inventurbelegposition direkt übernommen; auch Bewertungspreis wird mit dem Durchschnittspreis initialisiert
  • Durchschnittspreis wird beim Buchen des ganzen Beleges auf dem Lagerkonto angepasst (s. unten), bei der Einstellung "Nur Bestandskorrektur" in der Inventur bleibt der Durchschnittspreis im Lagerkonto unverändert.
  • Slots:
    pricePer - Preis, der bei der Bewertung der Inventur erfasst wird.
    average.PricePer - Durchschnittspreis aus dem Lagerkonto zum Zeitpunkt der Buchung

Bei jeder Änderung des Durchschnittspreises wird auch das Datum der Änderung im Lagerkonto gespeichert.

Rechnung

Durchschnittspreis wird mit jedem Materialzugang wie folgt angepasst:
    Der Wert für den Zugangspreis wird  je nach Einstellung im Mandanten aus dem Slot pricePer (= Belegpreis) oder last.defaultPricePer (=Rollenpreis) genommen.
    ( alter Bestand * alter Durchschnittspreis + Zugangsmenge * Zugangspreis ) / ( alter Bestand + Zugangsmenge ) ==> neuer Durchschnittspreis

Durchschnittspreis wird mit jedem Inventurbeleg wie folgt angepasst:
    alter Durchschnittspreis = average.PricePer  
   
Bewertungspreis           = pricePer
    ( alter Bestand * alter Durchschnittspreis + Zählmenge * Bewertungspreis - Soll-Menge * Durchschnittspreis ) / ( alter Bestand + Zählmenge - Soll-Menge ) ==> neuer Durchschnittspreis

Der neue Durchschnittspreis wird anschließend auf die im System vorgegebene Anzahl der Nachkommastellen gerundet (z.B. für Euro = 2 Nachkommastellen) und auf den vorherigen Per-Faktor normiert (s. unten Beispiele).

Dieses Berechnungsschema bewirkt gleichzeitig, dass für das jeweilige Lagerkonto zu jedem Zeitpunkt stimmt (s. auch unten Sonderfall 3):
    ( Anfangslagerwert + Summe aller Zugangswerte - Summe aller Abgangswerte ) / (Anfangsbestand + Summe aller Zugänge - Summe aller Abgänge ) = Durchschnittspreis

Sonderfälle:

  1. Alter Durchschnittspreis war Null:
    Der neue Durchschnittspreis wird von dem Zugangsbeleg übernommen.
  2. Belegmenge oder Belegpreis = Null:
    Der Durchschnittspreis wird nicht geändert, die Rechnung stimmt weiterhin.
  3. Der alte oder der neue Bestand ist negativ:
    Die Benutzung der oben angegebenen Formeln würde zu der absurden Rechnung führen, dass bei negativem Bestand der Zugang der teureren Ware den Durchschnittspreis vermindert u.s.w. Deswegen wird der Durchschnittspreis von dem Zugangsbeleg direkt übernommen, was eventuell zur Abweichung von der Gesamtrechnung auf dem Lagerkonto führen kann.

Beispiele

Beispiel 1:

Beleg Zugang Abgang Preis Bestand Durchschnittspreis
        0 Stück -
Warenzugang 25 Stück   120,00 EUR / 1 Stück 25 Stück 120,00 EUR / 1 Stück
Warenentnahme   5 Stück 120,00 EUR / 1 Stück 20 Stück 120,00 EUR / 1 Stück
Warenzugang 10 Stück   140,00 EUR / 1 Stück 30 Stück 126,67 EUR / 1 Stück
Warenentnahme   20 Stück 126,67 EUR / 1 Stück 10 Stück 126,67 EUR / 1 Stück
Warenzugang 30 Stück   100,00 EUR / 1 Stück 40 Stück 106,67 EUR / 1 Stück
Inventur 40 Stück (Zählmenge) 40 Stück (Soll-Menge) Bewertungspreis 100,00 EUR / 1 Stück
Durchschnittspreis 106,67 EUR / 1 Stück
40 Stück 100,00 EUR / 1 Stück

Beispiel 2:

Beleg Zugang Abgang Preis Bestand Durchschnittspreis
        0 Stück -
Warenzugang 350 m   16,50 EUR / 100 m 350 m 16,50 EUR / 100 m
Lieferschein   200 m 16,50 EUR / 100 m 150 m 16,50 EUR / 100 m
Warenzugang 350 m   14,50 EUR / 100 m 500 m 15,10 EUR / 100 m
Lieferschein   300 m 15,10 EUR / 100 m 200 m 15,10 EUR / 100 m
Lieferschein   400 m 15,10 EUR / 100 m -200 m 15,10 EUR / 100 m
Warenzugang 300 m   14,90 EUR / 100 m 100 m 14,90 EUR / 100 m
Warenzugang 200 m   14,80 EUR / 100 m 300 m 14,83 EUR / 100 m

Verwandte Themen

 


Technische Dokumentation

Der Durchschnittspreis wird auf dem Lagerkonto (CX_STOCK_ACCOUNT) im Slot average.pricePer gespeichert. Das Datum der letzten Änderung des Durchschnittspreises wird auf dem Lagerkonto (CX_STOCK_ACCOUNT) im Slot average.date gespeichert.

Standard-Zuweisungsformel aus der Transaktionsbeschreibung des Warenzugangsbeleges:

RoundAutomatically(ValuePer((average.pricePer * current.quantity + pricePer * quantity) / (current.quantity + quantity) * average.pricePer.Denominator(), average.pricePer.Denominator()))

Vorbedingung:

if(has(current.quantity) & has(average.pricePer) & has(quantity) & has(pricePer)) (IsZero(quantity * pricePer)=0 & current.quantity + quantity > 0 & current.quantity > 0) else false

Operativer Betrieb