Screenshot of Object Builder interface showing customizable fields and workflow options

Rating Engine

Simplifying how shipments get priced

A case study on designing Rating Engine — a smarter, automated tool that replaces error-prone spreadsheets for LTL shipment rating. I led the end-to-end design, partnering closely with engineering and customers to build a scalable, business-critical feature that quickly proved its value.

✅ Significant revenue driver

Helped close major enterprise deals, contributing $4.4M+ in contracted ARR.

✅ Exponential monthly usage

Usage surged 772% in two months post-launch, reflecting rapid adoption.

Role

Sole product designer

Team

1 PM, 1 Eng Lead, 6 Engineers

Duration

Jul – Oct 2024

Tool(s)

Figma logoFigma

Introduction

What is Rose Rocket?

Rose Rocket is a cloud-based Transportation Management System (TMS) built for trucking companies and brokerages. It provides essential tools for managing daily operations, including dispatching, customer communication, billing, and driver management.

The Problem

In trucking, shipments are typically rated based on two types of service:

Icon depicting a partially filled truck

Full truckload (FTL)

A shipper’s freight fills the entire truck.

Icon depicting a partially filled truck

Less-than-truckload (LTL)

A shipper’s freight only partially fills the truck.

For FTL shipments, rating is relatively straightforward, as companies typically charge a flat rate for the entire truck.

In contrast, LTL shipments are more complex. Rates fluctuate based on numerous factors—such as weight, distance, and additional services—which together form what is known as a tariff. Many companies depend on cumbersome spreadsheets and internal knowledge to manage these tariffs, leading to several key challenges:

📊 Hard to use

Manual spreadsheets slowed teams down and required heavy onboarding just to get started.

❌ Prone to mistakes

Manual entry left room for costly errors that impacted both accuracy and trust.

💸 Unclear margins

Teams struggled to price with confidence—rates often missed the mark on profitability.

🛠️ Painful to maintain

Tariffs were tedious to set up and update, draining time and requiring expert knowledge.

Shown below are screenshots of actual spreadsheets built and used by various companies. For privacy, certain information has been redacted.

Toggle Image

Examples of rating spreadsheets used by various companies to calculate LTL rates. Most contain multiple sheets with various pricing models and factors. Employees are expected to navigate these complex spreadsheets quickly and accurately to rate shipments.

Sheet 1
Sheet 2
Sheet 3

The Objective

Faced with these challenges, our goal was clear:

How might we streamline the rating process so that users are empowered to calculate LTL tariffs with greater confidence, accuracy and ease?

Our Approach

While our platform included a rating engine, it only supported flat-rate pricing for FTL shipments. This limitation forced a significant portion of our users—who required more complex tariff calculations for LTL shipments—to rely on spreadsheets or other TMS solutions.

Preview of solution

This project set out to bridge that gap by introducing a flexible system that would empower users to make confident pricing decisions and manage the complexities of LTL rating with greater ease.


Project Overview

Timeline

For this project, we used a three-phased approach to design, iterate, and release the feature:

Research & Design
Jul - Aug 2024
Test & Iterate
Aug 2024
Release
Sep 2024

Constraints

Timeline

Meet a firm September deadline tied to pivotal, multi-million dollar enterprise contracts.

Patterns

Build on existing platform UI patterns to help streamline development.

Key Metrics

To track success, we focused on two key metrics:

PRIMARY METRIC

Module sales

Monitor the number of Rating modules sold, indicating user engagement with the rating tools.

SECONDARY METRIC

Adoption rate

Measure usage by tracking the number of tariffs created across all customers who have purchased the Rating module.


Phase 1: Research & Design

Defining scope

While we recognized the need to support LTL rating, the specific requirements were still unclear. To refine our scope, I worked closely with our PM to review past customer calls (via Gong), analyze support tickets (via Hubspot), and consult with our internal Solutions team to pinpoint exactly what was needed.

Below are excerpts from customers, as well as our Sales and Solutions teams requesting rating-related features. These insights were collected and categorized to guide the scope of our project.

Gong calls

...some of our customers are starting to ask us because we're very heavy into retail on the home delivery, final mile side. So some of these clients are going, "Hey, how much is it per pound to move this stuff? How much is it per carton weight to move this stuff?"

[...] then it would ping five other carriers who happen to run to Calgary. It would show the revenue. We'd be able to click on it, see the carrier cost. In an ideal world, eventually, SMC³ is up and running, which we know is not anytime soon.

– Large Canadian moving and storage company

I'm really at the point of I'm just waiting for these [...] especially like the CWT, accessorials, stuff like that. As soon as I have those uploaded [...] I'm gonna be able to go back and continue working in the system

– Quebec-based logistics company

[...]we also have, yeah, like 100 weight, and then also sometimes we have by the seat

– Ontario-based distribution company

Support Tickets

Ability to import the CWT rates they have with their SHIPPERS, importing is important as they have a lot of different customers and different rates associated with those customers

I have a customer that needs the ability to charge per metric ton.

Internal Solutions & Sales

[A large prospective enterprise client] just got awarded a contract of 6,400 orders a year based out of Montreal that will be processed through platform. All CWT tariffs.

— Internal sales team

Using our research, we narrowed our scope to include the following:

Icon depicting dimensional rating
Dimension-based rating

Support tariffs that variably rate by shipment dimensions, such as weight and linear feet.

Icon depicting CWT
Hundredweight (CWT) rating

Support tariffs that rate by hundredweight (CWT).

Icon depicting third-party rating
Third-party rating

Retrieve rates from aggregate third-party services, such as SMC³.

User flows

To better understand the current state, I mapped the existing user flow for building a tariff. This exercise highlighted essential changes and uncovered further opportunities to enhance efficiency. Using these insights, I then outlined a proposed flow, which I validated with the Solutions team before proceeding to designs.

Current user flow image

Current user flow for creating a tariff (click to expand).

Current Flow
Proposed Flow

Designs

Following the proposed user flow, I quickly built a prototype using existing Platform UI components—boards, record views, and widgets—for speed and consistency, without adding any custom elements.

Record view

Image of a 3-panel record view in Rose Rocket

The standard record view in the Platform features a left navigation panel for accessing tools, a central activity panel displaying user activity logs and widgets (explained below), and a right data panel showing a list of all fields on the Object.

Board

Image of a board in Rose Rocket

A spreadsheet-style view offering a detailed overview of records, where columns represent the fields of the Object.

Widget

Image of a widget in Rose Rocket

Widgets serve as assistants, enabling streamlined actions to enhance workflows, minimize errors, and accelerate processes.

Figma Prototype

An interactive prototype of the designs for Rating Engine, highlighting key user flows.

Step 1: Create new tariff

User creates a new tariff by clicking "Create tariff" on the board.

Step 2: Add details

User inputs key details, including a name, description, effective start and end dates (defining when the tariff is active), and specify the tariff type (Customer or Partner).

User enters key details, such as a name, description, effective start and end dates (defining when the tariff is active), and tariff type (specifying whether it applies to a Customer or Partner).

Step 3: Add fuel

User can optionally add fuel to their tariff, which creates a separate line item for a fuel surcharge (sourced from the EIA index) in their rate.

Step 4: Add dimensions & calculation method

User selects a dimension and calculation method for the tariff, including:

  • Flat rate
  • Per dimension NEW
  • CWT NEW

In this example, a user selects "Per dimension" as the calculation method, and "Pound (lb)" as the dimension

Step 5: Add breakpoints

User navigates to "Breakpoints" to add dimensional breakpoints for pricing, which can vary from one (single pricing) to multiple (variable pricing).

Toggle Image

In this example, the user defines three breakpoints: 1–499 lbs, 500–999 lbs, and 1000+ lbs.

Step 6: Add lanes

User navigates to "Lanes & Rates" to add lanes to their tariff.

Lanes are made up of a pair of pickup and delivery locations. A tariff is only applied if the Order matches one of its defined lanes. Tariffs can have hundreds of defined lanes with unique rates per lane (shown below)

In this example, a user defines multiple East Coast lanes, including one from Toronto (TO) to Quebec (QC).

Step 7: Add rates

For each defined lane, the user specifies rates. If multiple breakpoints were set, individual rates must be specified for each breakpoint.

In this example, the user needs to define rates for each breakpoint and repeat this process for every lane.

Step 8: Assign to customer or partner

After creating a tariff, it must be assigned to one or more customer(s) or partner(s) in order to become active.

In this example, a user assigns the tariff to Package Pals (a partner).

Step 9: Find rates

Once a tariff is created and assigned, users can use them by creating an Order.

If an Order’s pickup and delivery locations match lanes on a Partner tariff, rates are automatically calculated and displayed. This helps users decide which Partner (the company moving the freight) to use in order to maximize margins.

In this example, a user creates a TO-QC order, which matches one of the defined lanes in the Package Pals tariff created above. Consequently, rates from this tariff will surface in the list.

Step 10: Select a rate

Once users select a preferred rate and partner, they are automatically assigned to the Order, with costs and margins updated instantly, significantly streamlining the process.

Users can choose a rate as-is or edit them (via Cost Breakdown). In this example, Package Pals' rate is selected, which automatically assigns them to the Order, and updates their cost and margin.

In addition to new functionality, we made several other quality-of-life improvements to the original designs:

Streamlined tariff creation

Users no longer need to navigate away to select dimensions and calculation methods—they can now do so directly from the board, data panel, or widget, offering greater visibility and flexibility in managing their tariff.

Toggle Image

Users had to navigate to a separate, hidden section to manage the tariff's dimension and calculation method.

Before
After

Detailed pricing breakdown

Users can now see a precise cost breakdown, showing exactly how each line item is calculated within the tariff.

Toggle Image

Users could only view totals per line item, with limited visibility into tariff details.

Before
After

Enhanced dimensions list

The dimensions dropdown was reorganized and redesigned to improve categorization, with additional dimensions added.

Toggle Image

Users had to interpret dimensions by short form, and the list lacked categorization.

Before
After

Phase 2: Test & Iterate

Methodology

To validate our initial designs, I gathered feedback from both internal and external stakeholders:

Who

Solutions team with extensive trucking industry experience.

What

Gathered insights to identify pain points and inefficiencies with our proposed designs.

How

Attended "Rocket Lab" sessions, where I presented designs to uncover inefficiencies or points of confusion, allowing us to refine the design further.

Who

Enterprise customers with rating-focused contracts.

What

Compared our designs to their existing workflows to identify points of confusion.

How

Joined customer calls to discuss their current processes and introduce our flows. Their feedback highlighted where our design aligned or diverged from their needs.

Feedback

Through these sessions, we were able to make the following improvements:

Simplified breakpoints

Users found it frustrating to set up breakpoints in the current design, as it was difficult to view all dimension breakpoints and challenging to add or delete them.

Toggle Image

Users could only see a limited number of breakpoints and had to scroll horizontally if more than five were added.

Before
After

Streamlined tariff assignment

Users found the current tariff assignment method cumbersome, as it required navigating to each customer or partner individually.

Many preferred a bulk assignment option, especially those managing tariffs across hundreds of partners.

Toggle Image

Users had to navigate to each partner or customer to individually assign tariffs.

Before
After

Quick rate breakdowns

Users needed a faster way to view rate breakdowns without expanding each card, and they also wanted the ability to quickly reference the original tariff.

This became especially critical for customers managing hundreds of tariffs, which was common among those we interviewed.

Toggle Image

Users had to expand each card to see a rate breakdown and had no way to navigate back to the tariff.

Before
After

Phase 3: Release

With all feedback addressed, we were ready to launch. In September, we introduced LTL rating to our users, and the reception was incredible.

Impact

Money symbol

Significant revenue driver

Several major enterprise deals hinging on LTL rating were able to close, contributing over $4.4M in contracted ARR.

Chart with upward arrow

Exponential monthly usage

In just two months, usage surged by 772%* compared to pre-launch levels in July.

*Usage was measured by the number of unique monthly clicks in the rating widget, indicating engagement with the feature: July = 85; September = 581; October = 642 clicks.

Reflection

The success of this feature in closing several enterprise deals shows the importance of rating tools in trucking, offering companies the accuracy and efficiency they need to replace outdated methods.

Nevertheless, the complexity of rating remains a challenge. While we’ve expanded our rating engine to support LTL needs, there are still many more capabilities that our users need to fully meet their business requirements.

Shown below are four of the most requested features by users since launch.

Custom dimensions

Enable rating by any specified, custom dimension, such as tonners and seats.

...then we'll have weird products called tonners. They're 12 to 2000 pounds. They are a giant cylinder, pressurized gas basically that we'll deliver on flat beds

— Large Chemical Distribution Company

Custom rate adjustments

Allow customer or partner-specific adjustments to rates.

More complicated is well have the base rate and then well, add 60 percent to get like our book rate and then well say, but we want to take 10 percent off for the southeast.

— West Coast Transportation Company

Deficit rating

Allow deficit rating, which applies minimum rates if actual costs fall below a defined threshold.

I'm having an issue [...] 8,389 lbs should rate as 20,000 (deficit weight). I need this to pull from the 20,000-29,999 cwt rate $2.68, not the 5,000-9,999 cwt rate $6.94.

— Midwest Logistics Company

Multi-Dimensional rating

Allow rating by multiple factors, such as weight and distance, for more complex shipments.

They have a matrix set up for rating, essentially they first dictate what equipment is needed and that dictates what the price is for the different mileage bands.

— Product Feedback ticket

As adoption grows, we’re excited to see how companies leverage Rating Engine to meet their unique needs. Our ultimate goal is to build a tool flexible enough to handle the industry’s complexities and nuances in rating—something we are confident we can achieve with continued refinement.