I launched to zero signups, then found 5 features nobody could reach A developer launched an AI agent platform on Product Hunt to zero signups. Investigating feedback, they discovered five critical bugs: cost data was truncated to zero by an integer cast, workflow totals were never written to the database, provider pricing was misapplied, cost data was not rendered in the frontend, and analytics pages had no navigation links. The developer fixed the issues and shared the code. I spent months building an AI agent platform. I launched it on Product Hunt yesterday. Zero signups. The comments were friendly. Three of the four asked for the same thing — not features, not integrations, not a lower price. They wanted to see what the agents did and what they cost . One put it better than my own landing page ever did: they liked that it wasn't "a black box." So I went to make the cost dashboard better. Instead I found out my product had been lying to me for months, and the lies had a pattern. Here's everything, with the code. The Cost Analytics page reported $0.02 in total across ~100 executions . I'd assumed that meant the platform was cheap to run. It meant the data was being destroyed at write time. cost cents = int llm response.prompt tokens 0.5 / 1000 + llm response.completion tokens 1.5 / 1000 A typical run on my platform is 56 prompt tokens and 45 completion tokens. That's 0.0843 cents . int makes it 0 . Not some runs. Essentially every run — because almost every LLM call costs less than one cent. The production numbers: 189 agent runs, 2 with a non-zero cost. 99% of my cost data was zeroes, and the two survivors were just big enough to clear a whole cent. The rates in that formula were correct. I checked them against the providers' pricing pages; the arithmetic is right. The bug is entirely int on a value that is almost never ≥ 1. A Decimal would have been the textbook fix, but Decimal / float raises TypeError and ~80 call sites do arithmetic on this number, so I widened the column to a float and kept the unit cents . It's a dashboard estimate, not money — Paddle handles money — so float rounding is irrelevant here. Truncation at least loses precision. This one lost everything. WorkflowExecution.total cost cents and total tokens used had no write site anywhere in the codebase . Not a broken write — no write. The columns had been NULL since the feature shipped. The workflow runner computed per-step token counts and dropped them on the floor. I found this by grepping for assignments and getting no hits: bash $ grep -rn "\.total cost cents = " src/ $ nothing The API served the field. The schema declared it. The dashboard summed it. It was never once set. if llm response.provider == "openai": gpt-4o-mini billed at gpt-4o rates Same provider, ~30x cheaper model, same price. Nobody noticed because of 1 — every number was already zero. I fixed the data. Then I went to display it and found costCents had been in the API response for months and was rendered nowhere in the frontend . Not on the run page, not anywhere: bash $ grep -rn "costCents" src/ --include= .tsx $ nothing The TypeScript types never declared the field either — so the API was returning data that was invisible to the compiler. No error. Just absent. And the workflow step list rendered this: {step.tokensUsed &&