Learn to build a revenue dashboard that answers 'how much should I make?' and 'how's the business doing?' with four essential metrics for solo developers.
You've probably been there: a half-dozen Google Sheets tabs, some formulas that made sense three months ago, maybe a Stripe dashboard tab you refresh nervously on Friday afternoons. You know your revenue is coming in, but do you know if you're on track for the quarter? Do you know which clients are carrying your whole business? Can you answer "how much should I actually be making this quarter?" without opening five different files?
That's the gap a revenue dashboard fills. Not the fancy BI tool that takes six weeks to set up. Not the enterprise dashboard that costs more than you make in a month. A real dashboard—the kind you can wire together in an afternoon—that answers the two questions every solo programmer secretly worries about: how much should I be making? and how's the business actually doing?
This isn't about flashy visualizations. It's about turning raw numbers into clarity. A good revenue dashboard for a solo dev is a decision-making tool, not a status symbol. When you can see your quarterly target, your projected revenue, the gap between them, and which clients are carrying the load, you stop guessing. You start planning.
Before you touch a single line of code, you need to know what you're measuring. Most solo devs either measure everything (and drown in noise) or measure nothing (and fly blind). The sweet spot is four metrics that tell the whole story.
This is the number you're aiming for. Not a vague "I want to make more money." A specific, defensible target for the quarter ahead.
How do you set it? Start with what you need. What's your annual runway cost—rent, software subscriptions, taxes, healthcare, equipment? Divide by four. Add a buffer for taxes (typically 25–30% for solo devs in the US). Add another buffer for the work you won't bill for: admin, learning, proposal writing, downtime between clients.
Let's say you need $12,000 per quarter after taxes and overhead. If you bill at $150/hour and assume 70% utilization (the rest goes to non-billable work), that's roughly $17,000 in gross revenue per quarter. That's your target.
Why does this matter? Because "making money" is too vague. "$17,000 this quarter" is a plan. You can measure against it. You can see if you're tracking ahead or behind. You can adjust pricing, take on more clients, or cut scope before the quarter ends instead of panicking in October.
This is where you live. What are you actually on track to make this quarter, based on current contracts and invoices?
The math is straightforward: add up all confirmed revenue (invoices sent, contracts signed) plus a conservative estimate of recurring revenue (retainers, SaaS subscriptions from client work). Don't include "leads that are probably going to close." Don't include "the client said they might need more work." Include what you can reasonably defend.
If you're in October and you've billed $8,000, and you have two retainer clients paying $2,000 each in November and December, your projected Q4 revenue is $12,000. Your target was $17,000. You have a $5,000 gap. That's actionable. You know you need to close a new client or raise rates before year-end.
The month-to-date view is equally important. It lets you spot trends early. If you're three weeks into October and you've only billed $1,500, you're behind pace. A good dashboard shows you that now, not on November 1st.
This is the difference between your target and your projection. If your target is $17,000 and your projection is $12,000, your gap is $5,000.
A gap isn't failure—it's a signal. A small gap ($500–$1,000) might just be normal variance. You can live with that. A large gap ($5,000+) means you need to act. Either find more work, negotiate higher rates, or reset your target if circumstances have changed.
The beauty of tracking this in real-time is that you can respond while the quarter is still happening. You're not discovering in January that you missed your target by 30%. You're seeing it in week three of October and deciding whether to pitch that prospect you've been putting off.
This one saves your business. It answers: "If my biggest client fires me tomorrow, what happens?"
Calculate what percentage of your quarterly revenue comes from your top client, your top three clients, and your top five clients. If one client is more than 40% of your revenue, you have concentration risk. If your top three clients are more than 70%, you're vulnerable.
This metric doesn't change your immediate revenue. It changes your strategy. High concentration means you should be actively prospecting, raising rates, or diversifying. It's a leading indicator of cash flow trouble before it arrives.
Now that you know what to measure, here's how to build something that actually works.
If you're starting from scratch, a spreadsheet is honest. It's not glamorous, but it works, and you can iterate on it without learning a new framework.
Create a tab for invoices: date, client, amount, status (sent, paid, projected). Create another tab for retainers: client, monthly amount, start date, end date. Create a third tab for your targets and calculations.
In the calculations tab, use SUMIF formulas to:
The limitation: it doesn't update automatically. You have to feed it data. But for a solo dev with 3–5 clients, that's maybe 10 minutes per week.
If you want the spreadsheet to pull data automatically, you have options. Stripe's revenue dashboard can show you subscription revenue if you're using Stripe for payments. Many accounting tools like Wave or Freshbooks have APIs you can query.
The trade-off: you need to write some code. A simple Python script that runs weekly, pulls data from your payment processor's API, and updates a Google Sheet is totally doable. Thirty minutes of scripting saves you hours of manual entry over a year.
If you're building a custom tool, Next.js documentation is your friend—it's the fastest way for a solo dev to build a full-stack app. You can create a lightweight dashboard that pulls from your data sources (Stripe, your invoicing tool, a simple database) and displays your four metrics in real-time.
If you want something purpose-built, you have choices. Cashierr is specifically designed for this: a revenue planning and forecasting app built for solo programmers. It answers "how much should I make this quarter?" and "how's the business actually doing?" with AI agents that track your goals, project your revenue, and flag gaps before they hurt.
The advantage of a dedicated tool is that it's already wired for solo dev workflows. You're not building it yourself; you're using something built for exactly this problem. It handles the boring parts (data ingestion, calculations, alerts) so you can focus on the actual business decisions.
Other lightweight options exist. Quick analytics dashboards for solo indie developers can help you understand what a minimal viable dashboard looks like. DevriX's tutorial on building a revenue dashboard walks through the technical setup if you want to build from scratch.
Let's walk through what this looks like in practice.
You're a solo developer doing contract work. You have three retainer clients paying $2,000, $1,500, and $1,000 per month respectively. You also take project work when it comes.
Your annual expenses (rent, software, taxes, healthcare, buffer) come to $48,000. Divide by four quarters: $12,000 per quarter. Add 25% for taxes and admin overhead: $15,000 target per quarter.
It's October 1st. You open your dashboard.
Month-to-date (October 1–today): $0 (it's October 1st) Quarter-to-date: $0 (new quarter) Projected revenue (Q4): Your three retainers total $4,500/month × 3 months = $13,500. You have one project proposal pending that's worth $3,000. Conservative projection: $13,500. You have no project revenue booked yet. Target: $15,000 Gap: $1,500 Concentration: Retainers are 100% of your confirmed revenue. Your biggest client ($2,000/month) is 44% of your quarterly revenue.
What does this tell you? You're slightly behind target, and you're dependent on retainers. The gap is small—one $1,500 project closes it. The concentration is high—you should be prospecting. The good news: you have three months to act. You're not in crisis; you're in planning mode.
Fast-forward to October 15th. The project proposal closed. Your projected revenue is now $16,500. Gap closed. Concentration improved (the project work is a new client). You're tracking well.
Fast-forward to November 1st. One retainer client downsized their contract to $1,000/month (they're reducing scope). Your projected Q4 revenue drops to $15,000. You're back to target, but you've lost $3,000 of annual recurring revenue. That's a conversation to have with the client: can you add scope? Should you raise rates on the other retainers? Do you need to close more project work?
Without a dashboard, you might not notice the downsize until you reconcile invoices in January. With a dashboard, you notice in November. You have time to respond.
Time to set up: 1–2 hours Maintenance: 10 minutes per week Cost: Free Skill required: Basic spreadsheet formulas
Create a master invoice log. Columns: date, client, amount, status (paid/sent/projected), quarter. Then create a summary tab that uses SUMIF to calculate totals by status and quarter. Add a second section for retainers with the same approach.
Formula example:
=SUMIFS(Invoice!B:B, Invoice!E:E, "Q4", Invoice!F:F, "paid")
This sums all amounts in column B where the quarter is Q4 and status is paid. You can duplicate and modify for other statuses and quarters.
Add your targets in a separate section, calculate gaps with simple subtraction, and you're done. Every Friday, you spend five minutes entering new invoices and the whole dashboard updates.
Time to set up: 4–8 hours Maintenance: 5 minutes per week (plus occasional code updates) Cost: Free tier covers most solo devs; ~$25/month if you scale Skill required: React, basic SQL, API integration
Supabase is a Postgres database with a REST API. You can use it to store your invoices and retainers, then build a React dashboard that queries the data and displays your four metrics.
Basic flow:
invoices and retainersThe disadvantage: you have to build and maintain it. If you're a solo dev who enjoys coding, this is a fun weekend project. If you'd rather not think about it, it's overhead.
Time to set up: 15 minutes Maintenance: 2 minutes per week Cost: Subscription (worth it if it saves you time and thinking) Skill required: None—it's designed for solo devs
Cashierr is purpose-built for this exact problem. You connect your payment processor (Stripe, etc.), set your quarterly target, and it handles the rest. It projects your revenue, tracks your gap to goal, flags concentration risk, and alerts you when things change.
The advantage: it's designed for solo programmer workflows. You don't have to think about the mechanics. You just check it.
The disadvantage: it's a subscription. But if it saves you 5–10 hours per quarter of manual tracking and gives you confidence in your numbers, it pays for itself.
A dashboard is only useful if you actually use it. Here's how to make that happen.
Every Friday morning (or whatever day works), spend 10 minutes with your dashboard. Check:
Your dashboard should inform three types of decisions:
Pricing decisions: If you're consistently above target, you can raise rates. If you're consistently below, you need to either add clients or reduce costs.
Client decisions: If one client is more than 40% of your revenue, you know you need to either diversify or lock in a longer-term contract with them.
Workload decisions: If you're on track, you can take time off or invest in learning. If you're behind, you know you need to focus on sales or delivery.
If you're using a spreadsheet, set a calendar reminder every two weeks to check it. If you're using a custom dashboard, add a simple rule: if your gap to goal exceeds $2,000, send yourself an email. If your top client is more than 50% of revenue, flag it.
The goal is to catch problems early, not to be perfect.
You don't need to track 47 metrics. You need to track four. Anything else is noise. Resist the urge to add "client satisfaction scores" or "hours billed per project" or "revenue per client" unless it directly informs a decision you're making.
Start with the four core metrics. After three months, you'll know if you need anything else.
Your target should be defensible, not aspirational. If you need $12,000 per quarter to cover expenses and taxes, your target should be $12,000–$15,000, not $25,000. You can aim for $25,000, but your dashboard target should be the number you actually need.
Why? Because you need to know the difference between "I'm on track" and "I'm crushing it." If your target is $25,000 and you're projecting $15,000, you feel like you're failing even though you're covering your costs and making a profit. That's demoralizing and leads to bad decisions.
A dashboard is only useful if the data is fresh. If you're using a spreadsheet, enter invoices weekly. If you're using a custom tool, connect it to your payment processor so it auto-updates. If you're using a dedicated tool like Cashierr, it should be pulling data automatically.
If your dashboard is three weeks out of date, it's worse than useless—it's misleading.
Solo devs often rationalize high concentration: "My biggest client is stable. I've been with them for three years." Sure. But what if they downsize? What if they go out of business? What if they find an agency that's cheaper?
Concentration risk isn't about paranoia. It's about resilience. A solo dev with revenue spread across five clients can lose one and survive. A solo dev with 60% revenue from one client is one layoff away from crisis.
Track it. If it's high, make diversification a priority.
Here's the thing about a revenue dashboard: it's not really about the numbers. It's about the story they tell.
Your dashboard should answer:
That's the real power of a revenue dashboard. It's not flashy. It's not AI-powered (unless you use something like Cashierr, which has agents that do the thinking for you). It's just clarity.
And clarity is what every solo programmer needs to answer the two questions that matter: "How much should I be making?" and "How's the business actually doing?"
Don't overthink this. Pick one approach and start.
If you have 2 hours this weekend, open a Google Sheet and build the spreadsheet version. Enter your invoices and retainers. Calculate your four metrics. That's enough to start.
If you want to level up, spend a weekend building a React dashboard with Supabase. It's a fun project, and you'll learn something.
If you want to skip the building and focus on the business, Cashierr is designed exactly for this. Connect your payment processor, set your target, and let the AI agents handle the tracking and forecasting.
Whichever path you choose, the goal is the same: get from "I think we're doing okay" to "I know we're on track." That's the difference between running a business and hoping it works out.
Your revenue dashboard is the tool that makes that possible. Build it this week. Use it every Friday. Watch what happens to your confidence—and your bottom line.
If you want to go deeper, this guide to building profitable SaaS as a solo developer covers the broader business side. This diary from a solo dev building a web app shows the real-world grind of solo development work.
For the technical side, React's official documentation is the gold standard if you're building a custom dashboard. Next.js docs are equally valuable if you want a full-stack framework.
The common thread: solo developers who build clarity around their finances make better decisions, charge higher rates, and sleep better at night. Your revenue dashboard is the first step toward that clarity.
Master the 3-bucket system for solo developers: operating, tax, and profit accounts. Stop leaving money on the table and make tax season painless.
Master your solo dev finances in 30 minutes every Friday. Track revenue, expenses, goals, and cash flow with this step-by-step ritual.
Master revenue forecasting by tracking just 5 metrics. Learn which data points drive 80% of forecast accuracy for freelance developers.