Inspiration

I built an online store for a client who sells clothing and accessories. The site worked, but there was a bigger problem. She had sales data and couldn't make sense of it. Charts, trends and KPIs just didn't mean much to her, so the numbers were unusable.

That stayed with me. Plenty of small sellers are in the same spot. They don't need a more powerful dashboard. They need someone to tell them what's going on in simple words. So I built BizzSimp: your sales, made simple.

What it does

A seller uploads a CSV of her sales (date, item, quantity, price) and gets a short story about her latest month, with no charts. It compares the two most recent completed months and shows:

  • A one-line summary: for example, sales rose 20% to ₦618,000, mostly because of one item.
  • What's selling: her top three items by revenue.
  • What's slowing down: items that earned less than the month before, biggest drop first.
  • What to do next: one suggestion, based on the item whose revenue changed the most.
  • An optional AI explanation: one click turns the comparison into a short, friendly explanation, powered by the Groq API.

Revenue is simply

$$\text{revenue} = \text{quantity} \times \text{price}$$

and the change in sales is

$$\text{change} = \frac{\text{latest month} - \text{previous month}}{\text{previous month}} \times 100$$

Every number comes from ordinary code, and every sentence can be traced back to the file. BizzSimp never claims to know things the data can't show, like stock levels. The CSV is read in the browser and never stored. If a seller asks for the AI explanation, only the compared monthly totals and up to 12 item names with their monthly revenue are sent. The CSV and the individual transactions are not.

How I built it

I used Next.js (App Router), TypeScript and Tailwind CSS, with Papa Parse to read the CSV, and deployed it on Vercel. I worked with GitHub Copilot's agent and the hackathon's skills, going through scope, PRD, spec and then building in small slices I could test myself.

The calculations live in plain TypeScript files, separate from the interface: one for parsing and validating the CSV, one for the analysis, and one for the sentence templates. The tests are written with Vitest for the parsing and analysis modules, since those rules are the whole product.

I added AI last, and only for the wording. The code works out the numbers first, then the Groq API explains that finished comparison in simple language. The API key lives in a server-side environment variable on Vercel, so it never reaches the browser.

Challenges

  • Deciding what to leave out. No charts, no column matching, no inventory. Every cut made the project smaller, but it made the core idea clearer.
  • Keeping the AI honest. A seller will act on these numbers, so I didn't want a model to calculate or guess anything. The code does the maths, and the AI only gets the finished results to explain.
  • Privacy. I wanted the file to stay with the seller. The AI step gets monthly totals and item revenue only, and it's optional.
  • Unfinished months. If someone exports data halfway through October, comparing it with September makes everything look like it dropped. BizzSimp only compares completed months and tells the seller which month it left out.
  • Messy and edge-case data. Bad dates, blank cells, negative prices, a previous month with zero sales. Each one needed a clear rule and a friendly message. When rows are skipped, the app shows their row numbers the way a spreadsheet would, so the seller can find them.
  • Making it feel right. I went through a few colour schemes before landing on navy, cream and gold, which feels professional but still warm.

What I learned

Working with a coding agent goes much better when I decide the rules first and review what it builds against them. Most of the real work was in the decisions: what counts as "slowing down", when to name an item in the summary, and what to do with bad rows. I also learned that the safest way to use AI here is to give it a small, narrow job after the numbers are already settled.

What's next

  • Other data sources, like transaction exports and PDF reports
  • Describe the whole trend across all months, like a line chart in words
  • Flexible column matching for different store exports
  • Inventory data, so the advice can cover stock

Live demo: https://bizz-simp.vercel.app/ Code: https://github.com/MmaGod1/BizzSimp

Built With

Share this project:

Updates

Submission history