FleetSetu

Logistics

FS FleetSetu

The question was 'how do we optimise the fleet report'. The answer was a product.

  • 2 daysfrom one question to a working proof of concept
  • 30–40 s → under 1 sper update after the move to Firebase
  • ~50 ha month of report-making the app now does itself

The question was “how do we optimise the fleet report”. The answer turned out to be a product.

Chapter 1 · The question

One question in a meeting.

Every day the own-fleet team met to review which vehicles were down, which were free for a load, and which were about to unload. The meeting ran on reports, and the reports ran on people.

The company had a transport management system. It was built for fleet hired from the market, where the crucial data is rates and vendors. The company's own vehicles were an afterthought in it. So the own-fleet team did what every team does with a system that was not built for them: they used it as a formality.

Daily fleet review

  • Non-operational vehicles
  • Free for a load
  • Reaching an unloading point

Chapter 2 · Sitting in the room

Everyone used the TMS. Nobody used only the TMS.

I joined the daily meetings as a silent member for a while, then ran process interviews with each team: how do you do this today, and how would you want it to be easier?

  • The real work lived in spreadsheets saved locally. The TMS was updated afterwards, for monitoring and a few automations.
  • Almost every report came from one file, the Daily Shipment Report. Each was built by hand. Some took an hour and a half to two hours a day.
  • Tracking was reactive by design. Today's statuses were discussed tomorrow.

The tracking sheet itself was the hidden cost.

Tracking.xlsx
MonTueWedThuFri+22

One workbook, one tab per day. By month end: 27 tabs, one person who knows where everything is.

What people said

“[quote] What the tracking team said about the sheet in the first interview.”

Tracker, own-fleet team (paraphrased)
1 / 3

Quotes are paraphrased from the interviews; real lines to follow.

Chapter 3 · One thing first

Daily tracking, before anything else.

If the tracking lived in a system, every report downstream could be generated. If it did not, nothing else would matter.

1 question, in a meeting
2 days to a running proof of concept, before any project existed

The first version ran on Google Apps Script with Google Sheets as the database. Free to host, quick to deploy, a database the team already understood, email automation built in, sign-in restricted to the company domain with no setup. It also had a ceiling: however much you optimise the script and the sheet, every interaction carries a 30 to 40 second lag, and retrieval slows as the data grows.

Apps Script and Sheets

0.0s

every read, write or update

Firebase

0.0s

same action, after the rebuild

Chapter 4 · What fixing it was worth

Three things, written down before building further.

  • Report-making, automated~50 h / month

    An hour and a half to two hours a day of hand-built reports, now generated by the app and emailed on their own.

  • Time per update30–40 s → under 1 s

    The move to Firebase. Shown live in chapter three.

  • Consolidated viewson demand

    Any cross-team view the team needs later is a query, not an afternoon in a spreadsheet.

Because the tracking data was now live, the planning team could see which vehicles needed a plan as it happened, rather than the next morning. And since planning creates the trips that tracking then follows, I built the trip module and the tracking module together.

Chapter 5 · What the product does

A sheet goes in. A board comes out.

Drag the handle. The left is how the data lived. The right is how it lives now.

Before: the sheet After: the board
Hub Load 1 Unload 1 Load 2 Unload 2
Loads and unloads are stops on one loop. When the vehicle is back at its hub city, the round trip closes itself and the lane's profit is final.

Then the rebuild: the same product on Firebase Hosting, Auth and Firestore, with role and fleet access enforced in database rules and a deploy pipeline through GitHub Actions because the client laptop allows nothing to be installed. The whole fleet was on it within a week.

Chapter 6 · The part nobody puts in a case study

The team resisted. Then we measured it.

First instinct: it takes more time. After it clearly worked: it still takes more time.

time to enter a day's data weeks of adoption Spreadsheet FleetSetu week 1 week 3 week 6
“It takes more time than the sheet.”

Entering tracking and trip details in the app took the same time as filling the local spreadsheet, and the trip details were supposed to be entered by a different team anyway.

Take feedback from the doers, but do not rely on it blindly. Every team resists change, and the way work is reviewed has to change along with the tool. If the review still accepts the offline spreadsheet, the offline spreadsheet wins.

FS

Why the name

Setu means bridge. The app bridges the information gap between the teams and leadership, and over time the adoption gap between the own-fleet teams and the company-wide TMS they were meant to use all along.

What I did

  • Sat in the meetings, ran the interviews, designed the flow.
  • Built the application single-handedly with Claude Code, Google Workspace and Firebase.
  • Shipped a running proof of concept in two days, on nothing more than the question.
  • Tested every feature with the users and kept the version they actually used.
  • Ran QA on every release and turned user error reports into the next build.

Roadmap, each phase behind a gate