- Ballpark Progress Log
- Posts
- Ballpark Progress Log: 003
Ballpark Progress Log: 003
Month 1 with Ballpark: the good, the terrible, and what I've shipped

Yo.
I've had Ballpark live on my own website for about a month now and am stoked with the results. I'm currently waiting to hear back from a super sick client who submitted my estimator a few days back. If this project goes through, I'll be a very happy chappy.
I'm telling you this to say: Ballpark is working for my business. I believe it'll work for yours too. Over the past few weeks, I've been observing whats working and what isn't. I pushed a major change in how the prices are generated. Let's jump into that first then I've got a couple more quality of life updates to share. Finally, I've got 5 invites to private beta. More on that at the end.
The Pricing Engine
Originally, I was using AI to find similarities between past projects and my clients inputs. This was a technically impressive solution. But the results it produced we're terrible. Other beta users and I were having to pass a bunch of rules to tune the AI to get a result that was 'good enough'.
Problem is, 'good enough' doesn't cut it when it comes to estimating projects. These estimates are going to be the first interaction your client has with your business. We can't ruin that interaction by having AI 'Guess' the estimate. They need to be accurate.
The solution: a more manual approach. Instead of similarities, we now set pricing rules. These are conditional rules that update the estimate based on the clients inputs. Some examples from my own business:
If the client says the need motion design, I add 2.5K to the estimate.
If the client has 10 pages, I add 4K to the estimate (10 x $400).
My estimate is rounded to the nearest $250 and displays as a range 10% above and below the original estimate.
I set a base fee of 3k that estimate starts from.
When I want to increase my prices, I add a 20% increase to the total estimate.
The new solution provides clarity on the exact estimates your widget will produce. Removing the risk of sending inaccurate estimates.
As a bonus, building these pricing rules forced me to create a concrete plan for how I price projects. Before, I'd get flustered when someone asked "how much will this cost?" because I was winging it. Now I have a clear framework that I use internally when I get a request, not just for the widget. Pretty dope.
A couple quality of life updates:
Lead management: Last week, I was meant to follow up with a potential project. I forgot because I had no where to save the current status of that lead. Realised how important lead management was so I shipped it.
You can now update statuses, delete leads, and paginate through pages. This has now replaced my lead management table in Notion. And will help me remember who to follow up with…

Widget Builder Improvements: Shout out to Carl and Ali for their feedback on the widget builder experience. They shared frustrations that needed fixing. Those were:
Ability to add questions in between questions.
Ability to add a question at the start of the flow.
The need for both a single select input and a multi select input.
Warnings about losing unsaved questions.
Using labels to quickly identify questions in the flow.
These improvements have made a huge difference in reducing the time it takes to set your widget up. Faster Setup = Ballpark Embedded Sooner = More Leads.
Want in early?
I've got 5 more spots open for people who want to check out Ballpark before I open it up to everyone else.
You can set up your estimator, test it with your pricing, and decide if it's worth your time. The only thing I ask is if you spot something that doesn't make sense or could work better, just shoot me a quick message about it. Your perspective would be super valuable.
Reply with "I'm in" and I'll send you an invite. First come first served.
Thats all for this update. Talk soon.
Will