← Back to work

Case study

Sales analytics & reprint planning for an independent publisher

How I turned a publisher's once-a-year sales analysis into a live dashboard the team uses to plan reprints and read trends in real time.

Role
Design, build & delivery
Sector
Independent book publishing
Stack
SvelteKit · Vercel · FileMaker Data API · Python

Contents

  • 01 The problem
  • 02 What I built
  • 03 Approach
  • 04 The outcome

01 The problem

The company sat on years of rich sales data and almost no practical way to use it. Pulling title-level numbers was a slow manual exercise that happened, at best, once a year, so decisions about what to reprint and where to push were made on instinct and stale figures. The points below sketch where things stood.

  • Around a dozen distributor sales files arrived each month, every one in a different format.
  • Sales lived across four separate databases, with no single view of performance.
  • Consolidating it all was manual, slow, and easy to get wrong.
  • Reprint decisions leaned on gut feel and numbers that were already out of date.

02 What I built

  • A Python ingestion layer that reads every distributor file, normalizes the formats, and loads clean records automatically.
  • Sales aggregated across all four sources into one model through the FileMaker Data API.
  • A fast analytics front end built in SvelteKit and deployed on Vercel.
  • Reprint planning that flags titles to reorder before they run short.
  • Per-title profit-and-loss, so each book's real contribution is visible at a glance.

03 Approach

I started where the pain was sharpest: getting clean, current numbers out of the systems automatically instead of by hand. From there I built the analysis on a single reliable pipeline, so each month refreshes itself rather than being rebuilt. I designed it for the people who would actually use it, not for me, which is what made it stick.

04 The outcome

What used to take a specialist days now updates on its own. The team reads sales by title whenever they want, catches movement early, and plans reprints from evidence instead of guesswork. The analysis went from a once-a-year event to part of the weekly routine.

SvelteKit Vercel FileMaker Data API Python ETL Reprint planning Per-title P&L