Introduction
Fenix provides a carrier rate shopping platform that helps the retailers to optimize their shipping process and save a significant amount on their shipping spend by selecting the most cost effective service to deliver the product, meeting the shopper estimated delivery date promises.
There are many rate shopping solutions available in the market, however, most of them do it mainly from the shipping cost perspective. Fenix, on the other hand, factors in the ship cost, transit time, carrier and fulfillment capacities, carrier priority, etc to perform a more comprehensive rate shopping and to determine the most accurate shipping service for a shipment
To get a better understanding of the ship cost savings, Fenix Commerce offers retailers to perform a Carrier Rate Shopping Simulation using their past orders and shipment data, their negotiated carrier rates, carrier invoices (at the shipment level), and processes this information through Fenix rate shopping engine to generate the estimated shipping spend, and the customer delivery experience with detailed reports.
Carrier Rate Shopping Simulation
The Carrier Rate Shopping Simulation helps Fenix to provide retailers with key savings data if they had used the Fenix Rate Shopping solution instead of their current solution in two scenarios.
if Fenix had done the rate shopping using their current services
if Fenix had done the rate shopping by introducing new services in the mix
Any number of what-if scenarios can be performed by using the simulation tool which could nail down the best possible service combination for the retailers.
What data is needed to do the simulation?
There is a standard set of input data that is needed to do the simulation.
historic orders and shipment data
negotiated carrier rates
rate cards
carrier invoices (optional)
Historic shipment Data
The shipment data should contain some basic information some of which are listed below.
From Address
To Address
Package data
Dims
Weight
The label cost
The label cost is what the retailer pays to the carrier. This information is essential to create the savings report.
There are a couple of ways to get this data from the retailer.
Retrieve via webhooks
If the retailer's platform is on Shopify or on BigCommerce and has the Fenix app installed on their store, Fenix will pull the Order and the Fulfillment via the platform specific webhooks.
So, basically, Fenix will make use of the ppd summary information to get the necessary information about the shipments. It uses that information to perform the simulation.
However, there are a couple of downsides with this approach.
For this approach to work seamlessly, the important criteria is for the retailers to install the Fenix app. Only then Fenix will be able to pull the shipment data and then pull the tracking data. If the retailer is a big one, then we need to wait for a few days to get all the tracking and shipment data pulled from the carriers.
We cannot pull the label cost from the tracking data. So, going with this approach, Fenix won’t be able to create a savings report
Feed the shipment data via a file
The retailer can upload the shipment data in a csv file and upload in an SFTP location. Once the file is loaded, all we need to do is to run the simulation.
Advantages of this approach is,
Much quicker to get the data
The retailer can provide us the label cost in the file which will help is building the savings reports
The format of the file is as follows.
Field Name | Required | Details |
order id | Yes | The order id of the shipment |
shipment id | Yes | The shipment id |
order created date time | No | The order created date and time |
shipment created date time | No | The shipment created date and time |
shipping method | No | The shipping option the customer chose on the checkout |
expected days to deliver | Yes | The expected days to deliver decided at the warehouse |
origin address line | No | The address line of the fulfillment location |
origin city | No | The city of the fulfillment location |
origin state | No | The state of the fulfillment location |
origin country | Yes | The country of the fulfillment location |
origin zip code | Yes | The zip code of the fulfillment location |
destination address line | No | The address line of the buyer |
destination city | No | The city of the buyer |
destination state | No | The state of the buyer |
destination country | Yes | The country of the buyer |
destination zip code | Yes | The zip code of the buyer |
carrier | Yes | The carrier selected for shipping |
service | Yes | The shipping service selected for shipping |
tracking number | Yes | The tracking number of the shipment |
shipment length | Yes | The shipping box length in inches |
shipment width | Yes | The shipping box width in inches |
shipment height | Yes | The shipping box height in inches |
shipment weight | Yes | The shipping box weight in inches |
ship cost paid | Yes | The shipping cost paid to the carrier in USD |
Carrier Information
Retailers would need to provide Fenix with the necessary information about their current carriers. This below information will be used when the rate shopping is performed.
Carriers and services used for rate shopping
Carrier Credentials (Preferred) - The credentials will be used to pull the real time rates to perform the rate shopping. The rates pulled with these credentials will give rates including the surcharges and taxes. Using carrier credentials, we’re able to get the most up to date surcharge information and minimize the variances.
Carrier Rate Cards (when carrier information is nor available)
In cases where the retailers cannot give the carrier credentials, as a last resort, retailers should provide the rate cards and the average surcharges that can be applied on top of the base rate. This option can sometimes have a large discrepancy compared to the actual results as the carrier surcharges can vary from week to week. Surcharges can sometimes account up to 40% of the total shipping cost for each package.
Technical Aspects of the Simulation
Following are some important aspects of the simulation from the technical standpoint.
Swagger URL
Rate Shopping Simulation Resource
Mandatory Configuration to setup before running the simulation
Below are some of the important configuration that needs to be set up before running the simulation
Rate Shopping Config
This configuration contains some basic rate shopping configuration parameters. This configuration is used to rate shop individual requests. Some of the important configuration parameters are listed below.
Field | Default | Description |
---|---|---|
validate_address | false | This indicates the rate shopping engine to whether perform any address validation on the input destination address We are using USPS to do the address validation for US addresses. We are yet to integrate any APIs to do address validation for international addresses |
use_product_weights | false | If the retailer wants Fenix to calculate the package weight from the product data, we will use the data in our product indexes to calculate the overall weight of the package |
use_default_box | false | In some cases, we may not know the package weights of the shipment. In such cases, this field indicates if we can use some default package dimensions to get the shipping rates |
default_box_config | null | The default box’s dimensions and weight |
rateshopping_history_rolling_policy | MONTHLY | This field indicates how the rate shopping audit history indexes are to be created. Valid: HOURLY, WEEKLY, MONTHLY, YEARLY |
Default configuration that will work for majority of the cases
{ |
Rate Shopping Simulation Info
This configuration is mainly used to perform the simulation. It contains the SFTP location to upload the shipment data, where to look for the fulfillment data, the fields present in the file, etc,.
Field | Default | Description |
---|---|---|
feed_type | null | Feed Type indicates where to read the shipment data from. Valid Values are: FULFILLMENT, SFTP |
store_name | null | The name of the store. It is equivalent to retailerName in the organization class |
lines_to_ignore | 0 | Number of lines to ignore from the file in SFTP folder before processing the shipment data |
retailer_name | null | Same as store name |
ignore_header | false | Tells you whether there is any header in this file |
field_separator | COMMA | The field separator in the file |
source_data_folder | null | The folder in SFTP the shipment file is located in |
sftp_info | null | The SFTP credential info Must provide: host, port, username, password |
field_map | null | If the file is uploaded by the retailer, then he can specify the columns and their positioning in the file |
service_map | null | This field is used to map the service name defined at Fenix and the service name provided in the shipment file. This mapping is important to determine the label cost if not given in the shipment file |
populate_label_cost_by_service | false | In many cases, the retailers may not be willing to share the label cost. In that case, we can determine the ship cost ourselves by matching the service name provided in the file to the equivalent service when we get the carrier responses. |
threads_to_spawn | 6 | Number of threads to spawn while doing the simulation. For some retailers, the number of shipments may be huge, so, we may need to spawn more threads |
default_box_dims | null | If the package dims are not available, we can use a default box to do the rate shopping |
simulation_response_rolling_index_policy | MONTHLY | This field indicates how the rate shopping audit history indexes are to be created. Valid: HOURLY, WEEKLY, MONTHLY, YEARLY |
shipping_option_transit_tm_info | null | The retailers have their own definitions of the shipping options. Some retailers may specify the Standard should be delivered in 5 days. Some may say, its 7 days. So, we can configure in this mapping by retailer, what is their definition of transit time for each shipping option. |
Sample Configuration for a retailer (menswearhouse)
{ |