Inspiration
Over $28 billion of food is wasted annually in U.S. grocery stores alone. Supermarkets face a daily dilemma: overstock and create waste, or understock and fail to meet customer demand. Because daily needs constantly shift based on weather, holidays, and local events, manual purchasing is largely guesswork. Freshora solves this by transforming complex variables into actionable demand forecasts.
What it does
Freshora predicts daily demand for individual grocery products and recommends how much inventory to order. By uploading past sales and inventory data, users receive a personalized dashboard detailing expected sales, potential waste, and upcoming order quantities. Unlike traditional forecasting tools, Freshora uses optimization to not only predict, but to recommend. It finds the balance between understocking and over-ordering, continuously adapting to shifting demand and recommends inventory plans. Since the model learns from every new data upload, its accuracy compounds over time. Ultimately, Freshora reduces food waste while increasing businesses’ long-term profit margins.
How we built it
- Frontend: Vite / React / Typescript for a fast, responsive dashboard
- Backend: Python / FastAPI bridging the ML model and UI
- AI Backend: XGBoost to forecast grocery demand, Gemini API to power inventory recommendations
- Database: Tiger Data to handling time-series weather data
- Data Source: Grocery sales history from Kaggle combined with historical weather data from Open-Meteo API
Challenges we ran into
- Finding datasets with enough information with the factors that influence food waste and demand
- Balancing the model accuracy with adding features that are actually useful for making inventory decisions
- Integrating multiple data sources into one prediction pipeline
Accomplishments that we're proud of
- Building a complete end to end ML application, from data uploads to forecasting inventory recommendations
- Creating a comprehensive and interactive dashboard that make our ML predictions B2B-friendly
- Building a system designed to continuously improve as more store data becomes available
What we learned
- Build and evaluating an XGBoost forecasting model
- Utilizing the Gemini API to integrate an AI-chatbot
- Build a self-learning feedback loop that retrains model with new data
What's next for Freshora
- Personalize predictions to each store’s sales and inventory data
- Incorporate real-time local events, supplier lead times, promotions, etc.
- Train model on larger and more diverse datasets to improve prediction accuracy
Log in or sign up for Devpost to join the conversation.