Inspiration
Independent owner-operator truck drivers often receive load offers through texts, emails, and screenshots and must decide quickly whether a job is worth accepting. The advertised dollars per mile can look profitable, but that number may leave out deadhead miles, fuel, maintenance, fixed operating costs, dispatcher fees, and upcoming bills.
We created LoadCheck because a load that looks good on paper can leave a driver with very little actual profit—or even create a cash shortage before payment arrives. We wanted to give drivers one place to answer a practical question: Should I accept this load, negotiate a better rate, skip it, or build a stronger route?
What it does
LoadCheck turns a basic load offer into a complete trip decision.
A driver can paste an offer or upload a screenshot. Gemini extracts information such as the pickup location, destination, rate, mileage, and delivery times. Before any calculations happen, the driver receives an editable confirmation screen to correct or approve the extracted information.
After confirmation, LoadCheck:
- Calculates the load’s true estimated profit after expenses
- Includes loaded and empty miles in the analysis
- Compares the advertised rate with the true net rate
- Suggests a counteroffer based on the driver’s target profit
- Searches combinations of up to three loads
- Considers pickup windows, delivery deadlines, driving limits, and rest periods
- Identifies stronger home-to-home routes
- Combines trip expenses with upcoming bills to predict cash shortages
- Shows whether a delivery advance could keep the trip funded
Instead of only showing numbers, LoadCheck explains what those numbers mean and gives the driver a clear next step.
How we built it
We built the frontend with React and TypeScript, creating separate interfaces for offer confirmation, profitability results, route comparison, and the cash-flow timeline.
Our backend uses FastAPI and Python. We separated the main calculations into dedicated modules:
profit.pycalculates load economics and counteroffersoptimizer.pysearches for feasible multi-load routescashflow.pysimulates balances, expenses, bills, and advancesgeo.pyestimates mileage and caches location data
We used Gemini to read unstructured offers and explain completed results in plain language. However, Gemini does not control the financial calculations. Every number shown to the driver comes from deterministic Python code.
We also integrated the Capital One Nessie API to supply sandbox banking activity, upcoming bills, and advance information. Cached cities, recorded sandbox data, and offline map support help keep the main demo functional if an external service becomes unavailable.
Challenges we faced
One of our biggest challenges was extracting consistent information from load offers because they can appear in many formats. Screenshots may have missing labels, shortened city names, or information arranged differently. We addressed this by requiring the driver to confirm and edit the extracted fields before calculations begin.
Another challenge was separating AI-generated explanations from reliable financial calculations. We wanted the convenience of AI without allowing it to invent mileage, costs, or profit. Our solution was to let AI handle extraction and explanation while pure Python functions handle every calculation.
Route optimization was also challenging because the best-paying loads do not always form a realistic trip. We had to account for pickup windows, delivery deadlines, travel time, empty miles, simplified hours-of-service limits, and whether the route returned the driver home.
Finally, combining profitability with cash flow required us to distinguish between earning money eventually and having enough money to complete the trip today. A trip may be profitable overall but still become impossible if a major bill arrives before the carrier pays the driver.
What we learned
We learned that good AI integration is not about giving AI control over every part of a product. It is about choosing where AI is useful and where predictable code is safer.
We also learned that profitability and cash flow are different problems. Calculating that a driver will earn money is not enough if the driver cannot afford fuel, food, or a truck payment while waiting to be paid.
From a technical perspective, we gained experience connecting a React frontend to a FastAPI backend, processing image-based input, designing optimization logic, integrating external APIs, and creating fallbacks for unreliable services.
Accomplishments that we're proud of
We are proud that LoadCheck connects several decisions that are usually handled separately. It can read an offer, verify its details, calculate its true value, find a stronger route, and identify a possible cash shortage in one workflow.
We are also proud of making the system transparent. LoadCheck clearly labels simulated and sandbox information and explains its assumptions, including estimated road mileage, average driving speed, and simplified hours-of-service rules.
To validate the project, we completed:
- 100 passing backend tests
- 15 out of 15 end-to-end demo checks
- Testing with 60 simulated load-board offers
- A three-load route search designed to complete in under one second
What's next for LoadCheck
Our next step would be to replace estimated mileage with live commercial-routing data and expand the hours-of-service model to include more federal regulations. We would also like to connect LoadCheck to real load boards, fuel-price services, accounting platforms, and authorized banking data.
Long term, LoadCheck could learn a driver’s preferred routes, operating costs, home-time goals, and risk tolerance. This would allow it to provide more personalized recommendations while keeping the final decision in the driver’s hands.
LoadCheck helps owner-operators make the decision before the wheels move.
Log in or sign up for Devpost to join the conversation.