Transsmart tilbyr kostnadsprognoser basert på transportkontraktene som en kunde har med én eller flere transportører. Etter hvert som antallet tilknyttede transportører har økt, har også antallet ulike kontraktstyper økt. For å kunne beregne transportkostnader effektivt har vi utviklet tariffmotoren. Denne artikkelen forklarer hvordan motoren fungerer, og hvordan kunder kan konfigurere og vedlikeholde sine egne satser.
Avsnitt i denne artikkelen:
Prosessbeskrivelse
Diagrammet nedenfor viser hvordan prosessen for beregning av satser er strukturert.
Skjematisk oversikt over Transsmart sin prosess for satsberegning:
I denne prosessen beregnes eller estimeres transportkostnader. Den gir også mulighet til å sammenligne estimerte kostnader med faktiske kostnader. Siden fraktkostnader og tillegg vises separat, er det mulig å analysere hele oppdelingen av den totale satsen.
Grunnleggende konfigurasjon
Følgende tabeller er involvert i prosessen for beregning av 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 av kunder. Alle andre tabeller kan kun administreres av en nShift-ansatt.
Hovedfokuset er på tabellen Buy Rates. For å støtte en helhetlig forståelse av systemet blir imidlertid alle tabeller kort forklart i delen Andre tabeller.
Buy Rates
Tabellen Buy Rates er grunnlaget for tariffmotoren. I motsetning til det tidligere oppsettet, hvor kun én matchende tarifflinje ble brukt, evaluerer motoren nå alle relevante linjer og legger dem sammen for å fastsette den endelige satsen. Dette gjør det mulig for regler definert på collo-, pakke- eller forsendelsesnivå å bidra til beregningen.
Følgende avsnitt forklarer kolonnene i Buy Rates-tabellen, etterfulgt av eksempler.
| # | Element | Mandatory | Description |
| 1 | Identity | N | Dette feltet inneholder den unike database-ID-en for posten. Hvis du laster ned eksisterende poster, vil det være utfylt. Hvis du ønsker å laste opp og overskrive eksisterende poster, må dette feltet forbli utfylt. Hvis du ønsker å legge til nye linjer, må feltet være tomt. |
| 2 | customerId | N | I denne kolonnen kan alle verdier i kundehierarkiet brukes: customer_id, group_id og organisation_id. |
| 3 | costcenter | N | Hvis et kostnadssted har ulike satser, kan dette settes opp ved å fylle ut denne kolonnen. |
| 4 | level | Y | Satser kan settes på ulike nivåer: COLLO, PACKAGE og SHIPMENT. Basert på denne verdien beregnes satsene forskjellig. Se nedenfor for en forklaring av forskjellene mellom hvert nivå. |
| 5 | carrier | Y | Transportøren må spesifiseres her. |
| 6 | serviceLevelTime | N | Serviceleveltime kan spesifiseres her dersom ulike satser gjelder for ulike verdier av serviceleveltime. |
| 7 | serviceLevelOther | N | Servicelevelother kan spesifiseres her dersom ulike satser gjelder for ulike verdier av servicelevelother. |
| 8 | packageType | N | Pakketypen kan spesifiseres her dersom ulike satser gjelder for ulike pakketyper. |
| 9 | carrierAccountno | N | Transportørens kontonummer kan spesifiseres her dersom ulike satser gjelder for ulike kontonumre. |
| 10 | inbound | N | Her kan det angis om satsene gjelder for inbound-forsendelser. Som standard er dette satt til ‘0’, som betyr en outbound-forsendelse. |
| 11 | zone | N | Sonen kan spesifiseres her dersom ulike satser gjelder for ulike soner. |
| 12 | minTotalWeight | N | Den minimale totale vekten i KG for det angitte nivået (#3) angis her. Den kan spesifiseres med opptil 3 desimaler. |
| 13 | maxTotalWeight | N | Den maksimale totale vekten i KG for det angitte nivået (#3) angis her. Den kan spesifiseres med opptil 3 desimaler. |
| 14 | minLength | N | Den minimale lengden i CM for hver collo angis her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan spesifiseres med opptil 3 desimaler. |
| 15 | maxLength | N | Den maksimale lengden i CM for hver collo angis her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan spesifiseres med opptil 3 desimaler. |
| 16 | minWidth | N | Den minimale bredden i CM for hver collo angis her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan spesifiseres med opptil 3 desimaler. |
| 17 | maxWidth | N | Den maksimale bredden i CM for hver collo angis her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan spesifiseres med opptil 3 desimaler. |
| 18 | minHeight | N | Den minimale høyden i CM for hver collo angis her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan spesifiseres med opptil 3 desimaler. |
| 19 | maxHeight | N | Den maksimale høyden i CM for hver collo angis her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan spesifiseres med opptil 3 desimaler. |
| 20 | minConveyDimension | N | Den minimale dimensjonen for nivået (collo, package, shipment) i CM angis her. Denne beregnes ved å legge sammen lengde + 2*bredde + 2*høyde. Den kan spesifiseres med opptil 3 desimaler. |
| 21 | maxConveyDimension | N | Den maksimale dimensjonen for nivået (collo, package, shipment) i CM angis her. Denne beregnes ved å legge sammen lengde + 2*bredde + 2*høyde. Den kan spesifiseres med opptil 3 desimaler. |
| 22 | minLoadmeter | N | Det minimale loadmeteret for forsendelsen, pakken eller collo angis her. Den kan spesifiseres med opptil 3 desimaler. |
| 23 | maxLoadmeter | N | Det maksimale loadmeteret for forsendelsen, pakken eller collo angis her. Den kan spesifiseres med opptil 3 desimaler. |
| 24 | minVolume | N | Det minimale volumet for nivået (collo, package, shipment) i CM3 angis her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan spesifiseres med opptil 3 desimaler. |
| 25 | maxVolume | N | Det maksimale volumet for nivået (collo, package, shipment) i CM3 angis her. Ved forsendelser med flere colli kontrolleres hver collo separat. Den kan spesifiseres med opptil 3 desimaler. |
| 26 | minValue | N | Den minimale kommersielle verdien for forsendelsen, pakken eller collo angis her. Den kan spesifiseres med opptil 3 desimaler. |
| 27 | maxValue | N | Den maksimale kommersielle verdien for forsendelsen, pakken eller collo angis her. Den kan spesifiseres med opptil 3 desimaler. |
| 28 | colloQuantityFrom | N | Det minimale antallet colli kan spesifiseres her. |
| 29 | colloQuantityTo | N | Det maksimale antallet colli kan spesifiseres her. |
| 30 | calcType | Y | Metoden som skal brukes for å beregne satsen angis her. Se nedenfor under ‘Calculation Type’ for mer informasjon. |
| 31 | queryType | N | Metoden som skal brukes for å beregne satsen angis her. Se nedenfor under ‘Query Type’ for mer informasjon. |
| 32 | tariffValue | Y | Den faktiske satsen angis her. Dette kan være en fast pris, en prosentandel eller en KG-sats. Den kan spesifiseres med opptil 4 desimaler. |
| 33 | currency | Y | Valutaen som brukes angis her. |
| 34 | chargeGroup | N | Charge group som skal brukes angis her. Se nedenfor under ‘Charge Group’ for mer informasjon. |
| 35 | chargeType | N | Charge type som skal brukes angis her. Se nedenfor under ‘Charge Type’ for mer informasjon. |
| 36 | boundaryType | N | I dette elementet kan det spesifiseres ytterligere begrensninger som må tas hensyn til, som for eksempel COLLOWEIGHT, PALLETWEIGHT eller LOADMETER. |
| 37 | boundaryMin | N | Hvis en begrensning er spesifisert i element #25, angir denne parameteren minimumsverdien. Den kan spesifiseres med opptil 3 desimaler. |
| 38 | boundaryMax | N | Hvis en begrensning er spesifisert i element #25, angir denne parameteren maksimumsverdien. Den kan spesifiseres med opptil 3 desimaler. |
| 39 | validFrom | Y | Startdatoen for når satsen er gyldig angis her. |
| 40 | validUntil | Y | Sluttdatoen for når satsen er gyldig angis her. |
Calculation Type
| # | Calculation Type | Level | Description |
| 1 | BASE |
Shipment Collo Package |
Med denne typen settes en fast pris for den aktuelle linjen. Den kan spesifiseres med opptil 4 desimaler. |
| 2 | PIECE |
Shipment Collo Package |
Med denne typen settes en sats per collo. Formelen som brukes er relevant amount*tariffValue. Den kan spesifiseres med opptil 4 desimaler. |
| 3 | KG |
Shipment Collo Package |
Dette muliggjør en sats per KG. Basert på Buy Weights-tabellen brukes enten den beregnede vekten eller bruttovekten (den høyeste av de to), og hvis angitt brukes en avrundingsfaktor. Det er viktig å sette queryType til STAFFEL. Denne beregningstypen vil som regel føre til flere satsresultater, ettersom en skala vanligvis brukes for ulike vekter, og i tillegg legges en KG-sats til. Hvis en forsendelse veier 73,26, vil det 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. Formelen som brukes er tariffValue (euro per kg)*amount kg. Den kan spesifiseres med opptil 4 desimaler. |
| 4 | PERCENT_VALUE | Shipment | På denne måten beregnes en prosentandel i forhold til den kommersielle verdien av forsendelsen. Metoden for å angi en prosentandel er at 0,01 tilsvarer 1 %. Prosentandelen kan spesifiseres med opptil 3 desimaler. |
| 5 | PERCENT_SERVICE | Shipment | Denne beregningstypen bruker tilsvarende funksjonalitet som PERCENT_VALUE, men legger da til en prosentandel av kjøpsverdien. Et eksempel på denne typen er et drivstofftillegg og/eller et overdimensjonstillegg. Prosentandelen kan spesifiseres med opptil 3 desimaler. |
| 6 | LOADMETER |
Shipment Package Collo |
På denne måten brukes de beregnede loadmeterne til å fastsette transportkostnadene. |
| 7 | VOLUME |
Shipment Package Collo |
På denne måten brukes det beregnede volumet til å fastsette transportkostnadene. |
| 8 | MINIMUM |
Shipment Collo Package |
Med denne typen kan et minimumsresultat settes i kombinasjon med den angitte chargeGroup. |
| 9 | MAXIMUM |
Shipment Collo Package |
Med denne typen kan et maksimumsresultat settes i kombinasjon med den angitte chargeGroup. |
| 10 | MIN_PRICE_PIECE | Shipment | Denne beregningstypen kan brukes til å angi en minimumspris for en hel forsendelse. |
Query Type
Parameteren Query Type er påkrevd for å beregne enkelte unntak. Den er som standard satt til SINGLE, men to andre verdier kan også brukes:
- OR
- STAFFEL
OR
Bruk OR for tillegg der en forsendelse eller collo kontrolleres mot flere grenser, som for eksempel:
- Total weight
- Total length
- Total width
- Total height
- Total convey_dimension
Hvis én av disse grensene overskrides, gjelder tillegget. Et eksempel på dette er PostNL conveyor surcharge.
STAFFEL
Bruk STAFFEL for KG-baserte kontrakter som inkluderer flere vektskalaer. Dette gjør det mulig å legge flere satsnivåer sammen.
Eksempel: DHL Express sin satsstruktur:
- Grunnsats opptil 10 kg
- Ytterligere skalaer (10–30 kg, 30–70 kg, 70–200 kg, 200–2500 kg)
Med STAFFEL legges grunnprisen og den gjeldende skalaprisen sammen for å gi den endelige satsen.
Charge Group
Det finnes to charge groups: SHIPPING og SURCHARGE.
- SHIPPING dekker de grunnleggende transportkostnadene.
- SURCHARGE dekker tilleggskostnader som drivstoff, toll eller overdimensjonerte gebyrer.
Charge Groups kan spesifiseres ytterligere ved hjelp av Charge Types.
Charge Type
Hver linje i tariffmotoren inneholder også en Charge Type, som spesifiserer den nøyaktige kostnadskomponenten. Disse komponentene administreres i Generics -tabellen.
Finn et eksempel på Fuel Rates-tabellen her.
Andre tabeller
Client Carriers
Mulige parametere i Client Carriers-tabellen:
I tabellen Client Carriers defineres kunde- og transportørparametere. For satsberegning er følgende parametere relevante:
SHOWRATES: Bestemmer hvilke satser som er synlige i onlineplattformen og API-et.
- BUY – viser kun kjøpssatser
- SELL – viser kun salgsatser
- BUYSELL – viser både kjøps- og salgsatser
USERATES: Angir om kjøps- (BUY) eller salgs- (SELL) satser skal brukes ved anvendelse av CHEAPEST-logikk (valg av det billigste transportalternativet). Én av de to må velges.
TARIFFLOOKUP: Definerer kilden for satsberegning.
- ENGINE – bruker tariffmotoren (påkrevd for at tariffmotoren skal fungere)
- NONE – ingen satser beregnes
-
CARRIER – henter satser direkte fra transportøren, dersom tilgjengelig
TARIFF_LEVEL: Angir hierarkinivået der kjøps- (BUY) satser beregnes. Dette er nyttig for kunder med underkontostrukturer og brukes til å bestemme på hvilket nivå satsene beregnes:
- customer_id
- group_id
-
organisation_id
SALES_TARIFF_LEVEL: Samme funksjon som TARIFF_LEVEL, men brukt på salgsatser.
CALC_SALES_MARGINS: Når den er satt til ACTUAL, muliggjøres ny beregning av satser basert på kjøpsfakturaer.
Zones
Tabellen Zones bestemmer leveringssonen for hver booking. En sone kan defineres på flere nivåer:
- Carrier
- Customer
- Collection country
- Serviceleveltime
- Servicelevelother
- Cost center
- Eller enhver kombinasjon av disse
Den resulterende sonen brukes i satsberegningen, siden ulike soner kan ha forskjellige satser.
Buy Weights
Tabellen Buy Weights definerer hvilken vekt som skal brukes i satsberegningen. Siden forsendelser kan inneholde både tunge og voluminøse varer, er bruttovekten ikke alltid riktig grunnlag.
Når faktorer for volumvekt og/eller loadmeter-vekt brukes, beregner systemet tre typer vekt – gross, volume og load meter – og bruker den høyeste verdien.
Husk at enkelte satsstrukturer (for eksempel de som er basert på antall colli) kanskje ikke er vektavhengige, og denne tabellen påvirker derfor ikke alltid beregningen.
Vektregler kan settes på ulike nivåer:
- Carrier
- Customer
- Collection country
- Serviceleveltime
- Servicelevelother
- Cost center
- Packagetype
- Eller kombinasjoner av disse
Sell Weights
Tabellen Sell Weights fungerer på samme måte som Buy Weights, men brukes for salgsatser og/eller marginer.