It started as an undergraduate thesis. Three algorithms, 1,280 records, a CRISP-DM methodology, and a jury waiting for results. But somewhere between the data and the model, a question appeared that didn't fit any chapter: what if this became a real tool?
SSD Editorial
The publisher had the data all along. It just needed to listen.
The Idea
It started as a thesis.
1,280 sales records from a family-owned publisher in Lima. Children's and young adult fiction. Dates, titles, channels, book fairs. Four years of decisions accumulated in a spreadsheet nobody had seriously questioned.
The original question was technical: can a machine learning model predict how many copies a title will sell next quarter?
But as it progressed, a more interesting question emerged.
What happens when a small publisher stops guessing and starts knowing?
The Why
Family publishers have made decisions the same way for decades. How many copies to print? Intuition. Is it worth going to that book fair in Arequipa? Intuition. Which author sells best during the school season? Intuition backed by memory.
Not because they're bad at their job. But because nobody had built them a tool that spoke their language.
When I started studying the data, I found something unexpected. It wasn't just a prediction problem. It was a visibility problem. The publisher didn't know which titles were subsidizing others. Didn't know which fairs were actually profitable after deducting booth fees, staff, and transport. Didn't know whether illustration style influenced sales by age group.
They had the data. They didn't have the mirror.
SSD Editorial was born from that observation: build the mirror. A system that takes historical data, processes it with three ML algorithms —XGBoost, Random Forest, and LSTM— and returns something actionable. Not a paper. Not an academic dashboard. A tool the publisher can use on Monday morning.
Logbook
4 entriesDefined the stack. Python 3.11, XGBoost, Random Forest, LSTM, Streamlit, SQLite, Plotly. uv as package manager. Claude Code as development environment. The most important decision wasn't technical: it was separating the thesis from the system. The academic results are done. What I'm building now is something else.
Chose SQLite over NoSQL. The data is relational by nature: a title has an author, an illustrator, and many sales records. A channel can be a bookstore, an online platform, or a fair in another district. SQL asks those questions naturally. NoSQL would have made me write by hand what already exists.
The system grew beyond expectations. What started as a predictions dashboard ended up including a book fair calendar with stock alerts, an ROI module per event, and geographic analysis of sales outside Lima. The architecture is ready for a phase 2: automatic analysis of writing and illustration style with NLP and Computer Vision. First, make it work. Then, make it learn.