Transsmart bietet eine Kostenprognose auf Basis der Transportverträge, die ein Kunde mit einem oder mehreren Frachtführern abgeschlossen hat. Mit der steigenden Anzahl angebundener Frachtführer ist auch die Vielfalt der verwendeten Vertragstypen gewachsen. Um Transportkosten effizient zu berechnen, haben wir die Tarif-Engine entwickelt. Dieser Artikel erklärt, wie die Engine funktioniert und wie Kunden ihre eigenen Tarife konfigurieren und verwalten können.
Sections in this article:
Prozessbeschreibung
Das folgende Diagramm zeigt, wie der Prozess der Tarifberechnung aufgebaut ist.
Schematische Übersicht des Transsmart-Tarifberechnungsprozesses:
Während dieses Prozesses werden Transportkosten berechnet oder prognostiziert. Außerdem können prognostizierte Kosten mit tatsächlichen Kosten verglichen werden. Da Versandkosten und Zuschläge separat angezeigt werden, ist es möglich, die vollständige Aufschlüsselung des Gesamttarifs zu analysieren.
Grundkonfiguration
Die folgenden Tabellen sind am Prozess der Tarifberechnung beteiligt:
| Previous table name (<2022) | Current table name |
| Client-carrier | Client Carriers |
| Zone Lookup | Zones |
| Weight Determination Lookup | Buy Weights |
| Sales Weight Determination Lookup | Sell Weights |
| Tariff Determination [DEV] | Buy Rates |
| Sales Tariff Determination [DEV] | Sell Rates |
| Sales Margins [DEV] | Sell Margins |
Nur Buy Rates, Sell Rates und Sell Margins können von Kunden konfiguriert werden. Alle anderen Tabellen können ausschließlich von einem nShift-Mitarbeiter verwaltet werden.
Der Hauptfokus liegt auf der Tabelle Buy Rates. Um jedoch ein umfassendes Verständnis des Systems zu unterstützen, werden alle Tabellen im Abschnitt Weitere Tabellen kurz erläutert.
Buy Rates
Die Tabelle Buy Rates bildet die Grundlage der Tarif-Engine. Im Gegensatz zur vorherigen Konfiguration, bei der nur eine einzelne passende Tarifzeile verwendet wurde, bewertet die Engine nun alle zutreffenden Zeilen und addiert diese, um den endgültigen Tarif zu bestimmen. Dadurch können Regeln auf Collo-, Paket- oder Sendungsebene gemeinsam zur Berechnung beitragen.
Im folgenden Abschnitt werden die Spalten der Buy Rates-Tabelle erläutert, gefolgt von Beispielen.
| # | Element | Mandatory | Description |
| 1 | Identity | N | Dieses Feld enthält die eindeutige Datenbank-ID des Datensatzes. Beim Herunterladen bestehender Datensätze ist es ausgefüllt. Wenn Sie bestehende Datensätze hochladen und überschreiben möchten, muss dieses Feld ausgefüllt bleiben. Wenn Sie neue Zeilen hinzufügen möchten, stellen Sie sicher, dass dieses Feld leer ist. |
| 2 | customerId | N | In dieser Spalte können alle Werte der Kundenhierarchie verwendet werden: customer_id, group_id und organisation_id |
| 3 | costcenter | N | Wenn eine Kostenstelle unterschiedliche Tarife hat, kann dies durch Ausfüllen dieser Spalte eingerichtet werden |
| 4 | level | Y | Tarife können auf verschiedenen Ebenen festgelegt werden: COLLO, PACKAGE und SHIPMENT. Abhängig von diesem Wert werden die Tarife unterschiedlich berechnet. Siehe unten eine Erläuterung der Unterschiede je Ebene |
| 5 | carrier | Y | Hier muss der Frachtführer angegeben werden |
| 6 | serviceLevelTime | N | Die serviceLevelTime kann hier angegeben werden, wenn unterschiedliche Tarife für verschiedene serviceLevelTime-Werte gelten |
| 7 | serviceLevelOther | N | Die serviceLevelOther kann hier angegeben werden, wenn unterschiedliche Tarife für verschiedene serviceLevelOther-Werte gelten |
| 8 | packageType | N | Der Pakettyp kann hier angegeben werden, wenn unterschiedliche Tarife für verschiedene Pakettypen gelten |
| 9 | carrierAccountno | N | Die Kontonummer des Frachtführers kann hier angegeben werden, wenn unterschiedliche Tarife für verschiedene Kontonummern gelten |
| 10 | inbound | N | Hier kann angegeben werden, ob die Tarife für eingehende Sendungen gelten. Standardmäßig ist der Wert „0“, was eine ausgehende Sendung bedeutet |
| 11 | zone | N | Die Zone kann hier angegeben werden, wenn unterschiedliche Tarife für verschiedene Zonen gelten |
| 12 | minTotalWeight | N | Das minimale Gesamtgewicht in KG der angegebenen Ebene (#3) wird hier angegeben. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 13 | maxTotalWeight | N | Das maximale Gesamtgewicht in KG der angegebenen Ebene (#3) wird hier angegeben. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 14 | minLength | N | Die minimale Länge in CM je Collo wird hier angegeben. Bei Mehrcolli-Sendungen wird jedes Collo separat geprüft. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 15 | maxLength | N | Die maximale Länge in CM je Collo wird hier angegeben. Bei Mehrcolli-Sendungen wird jedes Collo separat geprüft. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 16 | minWidth | N | Die minimale Breite in CM je Collo wird hier angegeben. Bei Mehrcolli-Sendungen wird jedes Collo separat geprüft. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 17 | maxWidth | N | Die maximale Breite in CM je Collo wird hier angegeben. Bei Mehrcolli-Sendungen wird jedes Collo separat geprüft. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 18 | minHeight | N | Die minimale Höhe in CM je Collo wird hier angegeben. Bei Mehrcolli-Sendungen wird jedes Collo separat geprüft. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 19 | maxHeight | N | Die maximale Höhe in CM je Collo wird hier angegeben. Bei Mehrcolli-Sendungen wird jedes Collo separat geprüft. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 20 | minConveyDimension | N | Die minimale Abmessung der Ebene (collo, package, shipment) in CM wird hier angegeben. Diese wird berechnet als Länge + 2*Breite + 2*Höhe. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 21 | maxConveyDimension | N | Die maximale Abmessung der Ebene (collo, package, shipment) in CM wird hier angegeben. Diese wird berechnet als Länge + 2*Breite + 2*Höhe. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 22 | minLoadmeter | N | Die minimale Lademeterzahl der Sendung, des Pakets oder des Collos wird hier angegeben. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 23 | maxLoadmeter | N | Die maximale Lademeterzahl der Sendung, des Pakets oder des Collos wird hier angegeben. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 24 | minVolume | N | Das minimale Volumen der Ebene (collo, package, shipment) in CM3 wird hier angegeben. Bei Mehrcolli-Sendungen wird jedes Collo separat geprüft. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 25 | maxVolume | N | Das maximale Volumen der Ebene (collo, package, shipment) in CM3 wird hier angegeben. Bei Mehrcolli-Sendungen wird jedes Collo separat geprüft. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 26 | minValue | N | Der minimale Handelswert der Sendung, des Pakets oder des Collos wird hier angegeben. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 27 | maxValue | N | Der maximale Handelswert der Sendung, des Pakets oder des Collos wird hier angegeben. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 28 | colloQuantityFrom | N | Die minimale Anzahl an Colli kann hier angegeben werden |
| 29 | colloQuantityTo | N | Die maximale Anzahl an Colli kann hier angegeben werden |
| 30 | calcType | Y | Die zur Berechnung des Tarifs zu verwendende Methode wird hier festgelegt. Weitere Informationen finden Sie unten unter „Calculation Type“ |
| 31 | queryType | N | Die zur Berechnung des Tarifs zu verwendende Methode wird hier festgelegt. Weitere Informationen finden Sie unten unter „Query Type“ |
| 32 | tariffValue | Y | Der tatsächliche Tarif wird hier festgelegt. Dies kann ein Pauschalpreis, ein Prozentsatz oder ein KG-Tarif sein. Es kann mit bis zu 4 Nachkommastellen definiert werden |
| 33 | currency | Y | Hier wird die verwendete Währung festgelegt |
| 34 | chargeGroup | N | Die zu verwendende chargeGroup wird hier festgelegt. Weitere Informationen finden Sie unten unter „Charge Group“ |
| 35 | chargeType | N | Die zu verwendende chargeType wird hier festgelegt. Weitere Informationen finden Sie unten unter „Charge Type“ |
| 36 | boundaryType | N | In diesem Element können zusätzliche Einschränkungen angegeben werden, die berücksichtigt werden müssen, wie z. B. COLLOWEIGHT, PALLETWEIGHT oder LOADMETER |
| 37 | boundaryMin | N | Wenn in Element #25 eine Einschränkung angegeben ist, legt dieser Parameter den Mindestwert dafür fest. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 38 | boundaryMax | N | Wenn in Element #25 eine Einschränkung angegeben ist, legt dieser Parameter den Höchstwert dafür fest. Es kann mit bis zu 3 Nachkommastellen definiert werden |
| 39 | validFrom | Y | Hier wird das Startdatum festgelegt, ab dem der Tarif gültig ist |
| 40 | validUntil | Y | Hier wird das Enddatum festgelegt, bis zu dem der Tarif gültig ist |
Calculation Type
| # | Calculation Type | Level | Description |
| 1 | BASE |
Shipment Collo Package |
Mit diesem Typ wird ein fester Preis für die jeweilige Zeile festgelegt. Es kann mit bis zu 4 Nachkommastellen definiert werden |
| 2 | PIECE |
Shipment Collo Package |
Mit diesem Typ wird ein Tarif pro Collo festgelegt. Die zu verwendende Formel lautet relevante Menge*tariffValue. Es kann mit bis zu 4 Nachkommastellen definiert werden |
| 3 | KG |
Shipment Collo Package |
Dies ermöglicht einen Tarif pro KG. Basierend auf der Buy Weights-Tabelle wird entweder das berechnete Gewicht oder das Bruttogewicht (je nachdem, welches höher ist) verwendet und, falls festgelegt, ein Rundungsfaktor angewendet. Es ist wichtig, queryType auf STAFFEL zu setzen. Dieser Berechnungstyp führt in der Regel zu mehreren Tarifergebnissen, da üblicherweise eine Staffel für verschiedene Gewichte angewendet wird und zusätzlich ein KG-Tarif hinzugefügt wird: Wiegt eine Sendung 73,26, gibt es ein Ergebnis für die BASE-Preisskala von 70,01 bis 9999,00 kg und ein Ergebnis für die KG–STAFFEL-Zeile von 70,01 bis 9999,00 kg. Die zu verwendende Formel lautet tariffValue (Euro pro kg)*Anzahl kg. Es kann mit bis zu 4 Nachkommastellen definiert werden |
| 4 | PERCENT_VALUE | Shipment | Auf diese Weise wird ein Prozentsatz in Bezug auf den Handelswert der Sendung berechnet. Zur Festlegung eines Prozentsatzes gilt: 0,01 entspricht 1 %. Der Prozentsatz kann mit bis zu 3 Nachkommastellen definiert werden |
| 5 | PERCENT_SERVICE | Shipment | Dieser Berechnungstyp verwendet eine ähnliche Funktionalität wie PERCENT_VALUE, fügt jedoch einen Prozentsatz des Einkaufspreises hinzu. Ein Beispiel hierfür ist ein Treibstoffzuschlag und/oder ein Sperrgutzuschlag. Der Prozentsatz kann mit bis zu 3 Nachkommastellen definiert werden |
| 6 | LOADMETER |
Shipment Package Collo |
Auf diese Weise werden die berechneten Lademeter zur Bestimmung der Transportkosten verwendet. |
| 7 | VOLUME |
Shipment Package Collo |
Auf diese Weise wird das berechnete Volumen zur Bestimmung der Transportkosten verwendet. |
| 8 | MINIMUM |
Shipment Collo Package |
Mit diesem Typ kann ein Mindestbetrag in Kombination mit der angegebenen chargeGroup festgelegt werden. |
| 9 | MAXIMUM |
Shipment Collo Package |
Mit diesem Typ kann ein Höchstbetrag in Kombination mit der angegebenen chargeGroup festgelegt werden. |
| 10 | MIN_PRICE_PIECE | Shipment | Dieser Berechnungstyp kann verwendet werden, um einen Mindestpreis für eine gesamte Sendung festzulegen. |
Query Type
Der Parameter Query Type ist erforderlich, um bestimmte Ausnahmen zu berechnen. Standardmäßig ist er auf SINGLE gesetzt, es können jedoch zwei weitere Werte gelten:
- OR
- STAFFEL
OR
Verwenden Sie OR für Zuschläge, bei denen eine Sendung oder ein Collo gegen mehrere Grenzwerte geprüft wird, wie z. B.:
- Gesamtgewicht
- Gesamtlänge
- Gesamtbreite
- Gesamthöhe
- Gesamte convey_dimension
Wenn einer dieser Grenzwerte überschritten wird, wird der Zuschlag angewendet. Ein Beispiel hierfür ist der PostNL Conveyor-Zuschlag.
STAFFEL
Verwenden Sie STAFFEL für KG-basierte Verträge mit mehreren Gewichtsstaffeln. Dadurch können mehrere Tarifstufen addiert werden.
Beispiel: DHL Express Tarifstruktur:
- Basistarif bis 10 kg
- Zusätzliche Staffeln (10–30 kg, 30–70 kg, 70–200 kg, 200–2500 kg)
Mit STAFFEL werden der Basistarif und der entsprechende Staffeltarif addiert, um den endgültigen Tarif zu ermitteln.
Charge Group
Es gibt zwei charge groups: SHIPPING und SURCHARGE.
- SHIPPING deckt die grundlegenden Transportkosten ab.
- SURCHARGE deckt zusätzliche Gebühren wie Treibstoff-, Zoll- oder Sperrgutzuschläge ab.
Charge Groups können mithilfe von Charge Types weiter detailliert werden.
Charge Type
Jede Zeile in der Tarif-Engine enthält außerdem einen Charge Type, der die genaue Kostenkomponente festlegt. Diese Komponenten werden in der Tabelle Generics verwaltet.
Hier finden Sie ein Beispiel für eine Fuel Rates-Tabelle.
Weitere Tabellen
Client Carriers
Mögliche Parameter in der Tabelle Client Carriers:
In der Tabelle Client Carriers werden Kunden- und Frachtführerparameter definiert. Für die Tarifberechnung sind folgende Parameter relevant:
SHOWRATES: Legt fest, welche Tarife in der Online-Plattform und API sichtbar sind.
- BUY – zeigt nur Einkaufstarife an
- SELL – zeigt nur Verkaufstarife an
- BUYSELL – zeigt sowohl Einkaufs- als auch Verkaufstarife an
USERATES: Legt fest, ob Einkaufs- (BUY) oder Verkaufstarife (SELL) verwendet werden sollen, wenn die CHEAPEST-Logik angewendet wird (Auswahl der günstigsten Transportoption). Einer der beiden Werte muss ausgewählt werden.
TARIFFLOOKUP: Definiert die Quelle der Tarifberechnung.
- ENGINE – verwendet die Tarif-Engine (erforderlich, damit die Tarif-Engine funktioniert)
- NONE – es werden keine Tarife berechnet
-
CARRIER – ruft Tarife direkt vom Frachtführer ab, sofern verfügbar
TARIFF_LEVEL: Legt die Hierarchieebene fest, auf der Einkaufstarife (BUY) berechnet werden. Dies ist nützlich für Kunden mit Unterkontostrukturen und wird verwendet, um festzulegen, auf welcher Ebene die Tarife berechnet werden:
- customer_id
- group_id
-
organisation_id
SALES_TARIFF_LEVEL: Gleiche Funktion wie TARIFF_LEVEL, jedoch für Verkaufstarife.
CALC_SALES_MARGINS: Wenn auf ACTUAL gesetzt, wird eine Neuberechnung der Tarife auf Basis von Einkaufsrechnungen ermöglicht.
Zones
Die Tabelle Zones bestimmt die Lieferzone für jede Buchung. Eine Zone kann auf mehreren Ebenen definiert werden:
- Carrier
- Customer
- Collection country
- Serviceleveltime
- Servicelevelother
- Cost center
- Oder eine beliebige Kombination dieser
Die resultierende Zone wird in der Tarifberechnung verwendet, da unterschiedliche Zonen unterschiedliche Tarife haben können.
Buy Weights
Die Tabelle Buy Weights definiert, welches Gewicht für die Tarifberechnung verwendet werden soll. Da Sendungen sowohl schwere als auch voluminöse Güter enthalten können, ist das Bruttogewicht nicht immer die richtige Grundlage.
Wenn Faktoren für Volumengewicht und/oder Lademetergewicht angewendet werden, berechnet das System drei Gewichtsarten – Brutto, Volumen und Lademeter – und verwendet den höchsten Wert.
Beachten Sie, dass einige Tarifstrukturen (z. B. solche auf Basis der Colli-Anzahl) möglicherweise nicht gewichtsabhängig sind, sodass diese Tabelle die Berechnung nicht immer beeinflusst.
Gewichtsregeln können auf verschiedenen Ebenen festgelegt werden:
- Carrier
- Customer
- Collection country
- Serviceleveltime
- Servicelevelother
- Cost center
- Packagetype
- Oder Kombinationen dieser
Sell Weights
Die Tabelle Sell Weights funktioniert wie Buy Weights, wird jedoch für Verkaufstarife und/oder Margen verwendet.
Dateien