Transsmart tilbyder omkostningsprognoser baseret på de transportkontrakter, som en kunde har med én eller flere transportører. Efterhånden som antallet af tilknyttede transportører er vokset, er antallet af forskellige kontrakttyper også steget. For effektivt at kunne beregne transportomkostninger har vi udviklet tarifmotoren. Denne artikel forklarer, hvordan motoren fungerer, og hvordan kunder kan konfigurere og vedligeholde deres egne satser.
Afsnit i denne artikel:
Procesbeskrivelse
Diagrammet nedenfor viser, hvordan processen for beregning af satser er opbygget.
Skematisk oversigt over Transsmart-processen for satsberegning:
Under denne proces beregnes eller forudsiges transportomkostninger. Den giver også mulighed for at sammenligne forventede omkostninger med faktiske omkostninger. Da fragtpriser og tillæg vises separat, er det muligt at analysere den fulde opdeling af den samlede sats.
Grundlæggende konfiguration
Følgende tabeller indgår i processen for beregning af satser:
| 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 |
Kun Buy Rates, Sell Rates og Sell Margins kan konfigureres af kunder. Alle andre tabeller kan kun administreres af en nShift-medarbejder.
Hovedfokus er på tabellen Buy Rates. For at understøtte en helhedsforståelse af systemet forklares alle tabeller dog kort i afsnittet Andre tabeller.
Buy Rates
Tabellen Buy Rates er fundamentet for tarifmotoren. I modsætning til den tidligere opsætning, hvor kun én matchende tariflinje blev anvendt, evaluerer motoren nu alle relevante linjer og lægger dem sammen for at bestemme den endelige sats. Dette gør det muligt for regler defineret på collo-, pakke- eller forsendelsesniveau alle at bidrage til beregningen.
Det følgende afsnit forklarer kolonnerne i tabellen Buy Rates efterfulgt af eksempler.
| # | Element | Mandatory | Beskrivelse |
| 1 | Identity | N | Dette felt indeholder den unikke database-ID for posten. Hvis du downloader eksisterende poster, vil det være udfyldt. Hvis du ønsker at uploade og overskrive eksisterende poster, skal feltet forblive udfyldt. Hvis du vil tilføje nye linjer, skal feltet være tomt. |
| 2 | customerId | N | I denne kolonne kan alle værdier i kundehierarkiet anvendes: customer_id, group_id og organisation_id. |
| 3 | costcenter | N | Hvis et omkostningscenter har forskellige satser, kan dette opsættes ved at udfylde denne kolonne. |
| 4 | level | Y | Satser kan fastsættes på forskellige niveauer: COLLO, PACKAGE og SHIPMENT. Baseret på denne værdi beregnes satserne forskelligt. Se nedenfor for en forklaring af forskellene mellem de enkelte niveauer. |
| 5 | carrier | Y | Transportøren skal angives her. |
| 6 | serviceLevelTime | N | Serviceleveltime kan angives her, hvis forskellige satser gælder for forskellige værdier af serviceleveltime. |
| 7 | serviceLevelOther | N | Servicelevelother kan angives her, hvis forskellige satser gælder for forskellige værdier af servicelevelother. |
| 8 | packageType | N | Pakketype kan angives her, hvis forskellige satser gælder for forskellige pakketyper. |
| 9 | carrierAccountno | N | Transportørens kontonummer kan angives her, hvis forskellige satser gælder for forskellige kontonumre. |
| 10 | inbound | N | Her kan det angives, om satserne gælder for inbound-forsendelser. Som standard er dette sat til ‘0’, hvilket betyder en outbound-forsendelse. |
| 11 | zone | N | Zonen kan angives her, hvis forskellige satser gælder for forskellige zoner. |
| 12 | minTotalWeight | N | Den minimale samlede vægt i KG for det angivne niveau (#3) angives her. Den kan angives med op til 3 decimaler. |
| 13 | maxTotalWeight | N | Den maksimale samlede vægt i KG for det angivne niveau (#3) angives her. Den kan angives med op til 3 decimaler. |
| 14 | minLength | N | Den minimale længde i CM for hver collo angives her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan angives med op til 3 decimaler. |
| 15 | maxLength | N | Den maksimale længde i CM for hver collo angives her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan angives med op til 3 decimaler. |
| 16 | minWidth | N | Den minimale bredde i CM for hver collo angives her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan angives med op til 3 decimaler. |
| 17 | maxWidth | N | Den maksimale bredde i CM for hver collo angives her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan angives med op til 3 decimaler. |
| 18 | minHeight | N | Den minimale højde i CM for hver collo angives her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan angives med op til 3 decimaler. |
| 19 | maxHeight | N | Den maksimale højde i CM for hver collo angives her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan angives med op til 3 decimaler. |
| 20 | minConveyDimension | N | Den minimale dimension for niveauet (collo, package, shipment) i CM angives her. Denne beregnes ved at lægge længde + 2*bredde + 2*højde sammen. Den kan angives med op til 3 decimaler. |
| 21 | maxConveyDimension | N | Den maksimale dimension for niveauet (collo, package, shipment) i CM angives her. Denne beregnes ved at lægge længde + 2*bredde + 2*højde sammen. Den kan angives med op til 3 decimaler. |
| 22 | minLoadmeter | N | Det minimale loadmeter for forsendelsen, pakken eller collo angives her. Den kan angives med op til 3 decimaler. |
| 23 | maxLoadmeter | N | Det maksimale loadmeter for forsendelsen, pakken eller collo angives her. Den kan angives med op til 3 decimaler. |
| 24 | minVolume | N | Det minimale volumen for niveauet (collo, package, shipment) i CM3 angives her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan angives med op til 3 decimaler. |
| 25 | maxVolume | N | Det maksimale volumen for niveauet (collo, package, shipment) i CM3 angives her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan angives med op til 3 decimaler. |
| 26 | minValue | N | Den minimale kommercielle værdi for forsendelsen, pakken eller collo angives her. Den kan angives med op til 3 decimaler. |
| 27 | maxValue | N | Den maksimale kommercielle værdi for forsendelsen, pakken eller collo angives her. Den kan angives med op til 3 decimaler. |
| 28 | colloQuantityFrom | N | Det minimale antal colli kan angives her. |
| 29 | colloQuantityTo | N | Det maksimale antal colli kan angives her. |
| 30 | calcType | Y | Metoden, der skal anvendes til at beregne satsen, angives her. Se nedenfor under ‘Calculation Type’ for yderligere information. |
| 31 | queryType | N | Metoden, der skal anvendes til at beregne satsen, angives her. Se nedenfor under ‘Query Type’ for yderligere information. |
| 32 | tariffValue | Y | Den faktiske sats angives her. Dette kan være en fast pris, en procentdel eller en KG-sats. Den kan angives med op til 4 decimaler. |
| 33 | currency | Y | Den valuta, der anvendes, angives her. |
| 34 | chargeGroup | N | Den charge group, der skal anvendes, angives her. Se nedenfor under ‘Charge Group’ for yderligere information. |
| 35 | chargeType | N | Den charge type, der skal anvendes, angives her. Se nedenfor under ‘Charge Type’ for yderligere information. |
| 36 | boundaryType | N | I dette element kan der angives yderligere begrænsninger, som skal tages i betragtning, såsom COLLOWEIGHT, PALLETWEIGHT eller LOADMETER. |
| 37 | boundaryMin | N | Hvis der er angivet en begrænsning i element #25, fastsætter denne parameter minimumsværdien. Den kan angives med op til 3 decimaler. |
| 38 | boundaryMax | N | Hvis der er angivet en begrænsning i element #25, fastsætter denne parameter maksimumsværdien. Den kan angives med op til 3 decimaler. |
| 39 | validFrom | Y | Startdatoen for, hvornår satsen er gyldig, angives her. |
| 40 | validUntil | Y | Slutdatoen for, hvornår satsen er gyldig, angives her. |
Calculation Type
| # | Calculation Type | Level | Description |
| 1 | BASE |
Shipment Collo Package |
Med denne type fastsættes en fast pris for den specifikke linje. Den kan angives med op til 4 decimaler. |
| 2 | PIECE |
Shipment Collo Package |
Med denne type fastsættes en sats pr. collo. Den anvendte formel er relevant amount*tariffValue. Den kan angives med op til 4 decimaler. |
| 3 | KG |
Shipment Collo Package |
Dette muliggør en sats pr. KG. Baseret på tabellen Buy Weights anvendes enten den beregnede vægt eller bruttovægten (den højeste af de to), og hvis angivet, anvendes en afrundingsfaktor. Det er vigtigt at sætte queryType til STAFFEL. Denne beregningstype vil næsten altid føre til flere satsresultater, da der typisk anvendes en skala for forskellige vægte, og derudover lægges en KG-sats oveni. Hvis en forsendelse vejer 73,26, vil der være et resultat for BASE-prisskalaen 70,01 til 9999,00 kg og et resultat for KG – STAFFEL-linjen fra 70,01 til 9999,00 kg. Den anvendte formel er tariffValue (euro pr. kg) * amount kg. Den kan angives med op til 4 decimaler. |
| 4 | PERCENT_VALUE | Shipment | På denne måde beregnes en procentdel i forhold til forsendelsens kommercielle værdi. Metoden til at angive en procentdel er, at 0,01 svarer til 1 %. Procentdelen kan angives med op til 3 decimaler. |
| 5 | PERCENT_SERVICE | Shipment | Denne beregningstype anvender en lignende funktionalitet som PERCENT_VALUE, men her lægges en procentdel af købsprisen til. Et eksempel på denne type er et brændstoftillæg og/eller et overdimensionstillæg. Procentdelen kan angives med op til 3 decimaler. |
| 6 | LOADMETER |
Shipment Package Collo |
På denne måde anvendes de beregnede loadmeter til at fastsætte transportomkostningerne. |
| 7 | VOLUME |
Shipment Package Collo |
På denne måde anvendes det beregnede volumen til at fastsætte transportomkostningerne. |
| 8 | MINIMUM |
Shipment Collo Package |
Med denne type kan der fastsættes et minimumsresultat kombineret med den angivne chargeGroup. |
| 9 | MAXIMUM |
Shipment Collo Package |
Med denne type kan der fastsættes et maksimumsresultat kombineret med den angivne chargeGroup. |
| 10 | MIN_PRICE_PIECE | Shipment | Denne beregningstype kan anvendes til at angive en minimumspris for en hel forsendelse. |
Query Type
Parameteren Query Type er påkrævet for at kunne beregne visse undtagelser. Den er som standard sat til SINGLE, men to andre værdier kan også anvendes:
- OR
- STAFFEL
OR
Brug OR til tillæg, hvor en forsendelse eller collo kontrolleres mod flere grænser, såsom:
- Total weight
- Total length
- Total width
- Total height
- Total convey_dimension
Hvis én eneste af disse grænser overskrides, anvendes tillægget. Et eksempel på dette er PostNL conveyor surcharge.
STAFFEL
Brug STAFFEL til KG-baserede kontrakter, der indeholder flere vægtskalaer. Dette gør det muligt at lægge flere satsniveauer sammen.
Eksempel: DHL Express’ satsstruktur:
- Grundsats op til 10 kg
- Yderligere skalaer (10–30 kg, 30–70 kg, 70–200 kg, 200–2500 kg)
Med STAFFEL lægges base price og den gældende scale price sammen for at danne den endelige sats.
Charge Group
Der er to charge groups: SHIPPING og SURCHARGE.
- SHIPPING dækker de grundlæggende transportomkostninger.
- SURCHARGE dækker ekstra gebyrer såsom brændstof, told eller overdimensionstillæg.
Charge Groups kan yderligere specificeres ved hjælp af Charge Types.
Charge Type
Hver linje i tarifmotoren indeholder også en Charge Type, som specificerer den præcise omkostningskomponent. Disse komponenter administreres i tabellen Generics .
Find et eksempel på Fuel Rates-tabellen her.
Andre tabeller
Client Carriers
Mulige parametre i tabellen Client Carriers:
I tabellen Client Carriers defineres kunde- og transportørparametre. For satsberegning er følgende parametre relevante:
SHOWRATES: Bestemmer hvilke satser der er synlige i online-platformen og API’et.
- BUY – viser kun købspriser
- SELL – viser kun salgspriser
- BUYSELL – viser både købs- og salgspriser
USERATES: Angiver, om købs- (BUY) eller salgs- (SELL) satser skal anvendes ved brug af CHEAPEST-logik (valg af den billigste transportmulighed). Én af de to skal vælges.
TARIFFLOOKUP: Definerer kilden til satsberegning.
- ENGINE – anvender tarifmotoren (påkrævet for at tarifmotoren kan fungere)
- NONE – der beregnes ingen satser
-
CARRIER – henter satser direkte fra transportøren, hvis tilgængeligt
TARIFF_LEVEL: Angiver hierarkiniveauet, hvor købs- (BUY) satser beregnes. Dette er nyttigt for kunder med underkontostrukturer og bruges til at fastsætte, på hvilket niveau satserne beregnes:
- customer_id
- group_id
-
organisation_id
SALES_TARIFF_LEVEL: Samme funktion som TARIFF_LEVEL, men anvendt på salgspriser.
CALC_SALES_MARGINS: Når den er sat til ACTUAL, aktiveres genberegning af satser baseret på købsfakturaer.
Zones
Tabellen Zones bestemmer leveringszonen for hver booking. En zone kan defineres på flere niveauer:
- Carrier
- Customer
- Collection country
- Serviceleveltime
- Servicelevelother
- Cost center
- Eller enhver kombination af disse
Den resulterende zone anvendes i satsberegningen, da forskellige zoner kan have forskellige satser.
Buy Weights
Tabellen Buy Weights definerer, hvilken vægt der skal anvendes i satsberegningen. Da forsendelser kan indeholde både tunge og voluminøse varer, er bruttovægten ikke altid det korrekte grundlag.
Når faktorer for volumenvægt og/eller loadmeter-vægt anvendes, beregner systemet tre typer vægt — gross, volume og load meter — og anvender den højeste værdi.
Bemærk, at nogle satsstrukturer (som f.eks. dem, der er baseret på antal colli) muligvis ikke afhænger af vægt, så denne tabel påvirker ikke altid beregningen.
Vægtregler kan fastsættes på forskellige niveauer:
- Carrier
- Customer
- Collection country
- Serviceleveltime
- Servicelevelother
- Cost center
- Packagetype
- Eller kombinationer af disse
Sell Weights
Tabellen Sell Weights fungerer på samme måde som Buy Weights, men anvendes til salgspriser og/eller marginer.