About Swift Navigation
Swift Navigation is a precision positioning technology company headquartered in San Francisco, founded in 2012. Its Skylark service delivers cloud-based GNSS corrections that improve standard GPS accuracy from several meters to a few centimeters. The technology is used by automotive manufacturers, robotics companies, and fleet operators worldwide, supporting use cases from advanced driver-assistance systems to autonomous machines and connected devices.
Michael Bennett leads accounting & finance at Swift Navigation, where he has effectively run the accounting function single-handedly as the company scales across multiple distinct customer segments.
Swift Navigation's Pricing Complexity
Swift Navigation offers three distinct pricing models.
- Large automotive fleets are billed after the fact based on the number of vehicles actively using Skylark in a given month.
- Industrial and robotics customers subscribe, with billing starting only when a device is turned on for the first time after a free trial.
- Individual consumers can also buy a single unit through a self-serve storefront, without a salesperson.
On top of all three, Swift Navigation splits revenue with telecom and channel partners on certain deals.
So all of these pricing models run through completely different billing logic, and all needed to work correctly, whether a customer was a Fortune 500 fleet or a single consumer buying one unit online.
Where Manual Work Was Concentrated
Manual Quarterly Billing for Postpaid Customers
For postpaid automotive customers, billing followed the same process every quarter:
- Pull device counts from an internal usage dashboard,
- Check them against the rate card, build a new Salesforce opportunity,
- And wait for a purchase order before invoicing.
The process was accurate, but it required the same manual steps for every cycle and every customer on that model.
Decoupling Revenue Recognition from Invoicing
Revenue had to be recognized every month, regardless of how often a given customer was actually invoiced. For robotics customers on the trial-to-paid model, this was more complex: two devices ordered on the same day could end up on different billing and revenue timelines depending on exactly when each one was activated.
Michael has to track two separate timelines on every contract, one for revenue and one for invoicing, and keeping them aligned took deliberate effort each close.
Protecting Existing NetSuite-Based Reporting
Sales orders and invoices inside NetSuite fed commission calculations and the company's FP&A reporting.
As Michael and Bo Du, Swift Navigation's revenue operations lead, began looking at automation options, a clear requirement from the start was that any new platform had to preserve those downstream workflows rather than require them to be rebuilt.
Evaluating Platforms and Choosing Zenskar
A Side-by-Side Platform Evaluation
Michael and Bo Du tested several platforms in parallel, weighing implementation cost, integration depth, and how each option would fit alongside Swift Navigation's existing Salesforce, NetSuite, and AWS-based usage data. The first round of that evaluation led the team toward a different platform.
Gaps in Revenue Recognition and Licensing Logic
Once implementation began, two specific requirements turned out to be harder to support than expected:
- Recognizing revenue on a monthly cadence, fully independent of the invoice schedule,
- And modeling the trial-to-paid licensing pattern for robotics customers, where a contract's start date depends on device-level activity rather than a fixed date.
Re-Evaluating Zenskar Against Specific Use Cases
Once those gaps surfaced, the team decided to reopen the conversation with Zenskar, this time with a focused list of the hardest contract types in the business and specific questions about how each would be handled.
"We got a real sense during the proof of concept of how you take in data and handle the filtering and aggregation on your end. That's something we hadn't seen anywhere else." ~ Bo Du, Revenue Operations, Swift Navigation
Implementing Zenskar
Ingesting Usage Data Directly from AWS Athena
Swift Navigation's usage data already lived inside AWS. Instead of building a pipeline to clean and pre-aggregate it before sending it elsewhere, the team connected Zenskar directly to the source, sending raw events as they already existed.
"Getting Athena set up and working the way we needed was the ideal scenario for us. It's the lowest lift on our end." ~ Danny Hua, Engineering, Swift Navigation
Building a Pricing Table That Varies by Volume and Term
Some of Swift Navigation's industrial customers don't just get a discount for buying more; the price also depends on how long they commit to.
A thousand units on a one-year term is priced differently from a thousand units on a three-year term, and the rate needed to reflect both dimensions at once.
Previously, approximating this inside Salesforce CPQ meant building custom workflows for each combination by hand. The team configured this directly in Zenskar instead, with volume tiers as one axis and license term as the other, so a single pricing table covers every combination without custom logic behind it.
"With Salesforce CPQ, which is what we currently have, it's very difficult to set up the same table. Here, it's very straightforward." ~ Bo Du, Revenue Operations, Swift Navigation
Modeling Staggered Revenue Recognition by Activation Date
For robotics customers on the trial-to-paid model, the team configured revenue rules tied to actual device activation rather than a calendar date, so a batch of devices switched on over several weeks splits correctly into separate cohorts, each recognized on its own timeline.
Connecting Salesforce and NetSuite Without Middleware
The team also installed Zenskar's Salesforce package and set a closed-won opportunity as the trigger: the moment a deal closes, Zenskar automatically creates the corresponding contract.
From that contract, Zenskar generates the NetSuite sales order and posts journal entries directly, with the chart of accounts mapped so NetSuite doesn't record the same entry twice.
Closed deals in Salesforce now flow directly into NetSuite, and the middleware tool that previously sat between the two systems is no longer needed.
What Changed After Implementation
Automated Monthly Revenue Recognition
Usage data now flows in continuously, so revenue is recognized every month regardless of how often a given customer is invoiced. The quarterly process of pulling numbers from a dashboard and rebuilding a Salesforce opportunity by hand is no longer required.
"We'd save real money on outside consultants just from that alone." ~ Michael Bennett, Director of Accounting & Finance, Swift Navigation
Faster Configuration of New Pricing Models
A custom pricing structure that previously needed real engineering time can now be configured in roughly a day, with no engineering effort required on Swift Navigation's side.
Commission and FP&A Reporting Stayed Intact
Sales orders and invoices still sync into NetSuite, so the commission calculations and FP&A reporting built around them continue to run exactly as before. The team gained automation without rebuilding systems that were already working.
"I'm actually quite happy we're paying for implementation. It gives us a bit more confidence to ask for the use cases we actually need built out properly." ~ Bo Du, Revenue Operations, Swift Navigation
The Impact So Far
~15-20 Hours Saved Every Month
That time used to go into the quarterly routine for postpaid customers: pulling device counts from the usage dashboard, building a new Salesforce opportunity, and cross-checking the final number against the rate card before an invoice could go out. With usage data flowing in continuously and invoices generating directly off it, that manual cycle is gone.
~30-40% Faster Monthly Revenue Close
Previously, usage-based revenue was reconciled with the quarterly billing cycle before it could be recognized properly each month. With revenue recognition fully decoupled from invoicing, the monthly close runs straight off usage data as it arrives, without waiting for when a customer is actually billed.
One Integration Instead of Two
Contracts, sales orders, invoices, and journal entries now move through a single, direct connection between Salesforce, Zenskar, and NetSuite. The separate middleware tool that used to sit between Salesforce and NetSuite is gone entirely.









