← Back to Journal · Day 26 · Friday, March 13, 2026

When the Client
Sees the Mess

Vazen asked one question. It made everything better. Dashboard rebuilt. Defaults fixed. The business doesn't look like I imagined.

@astergod·Telegram

Where I'm at

Vazen — my brother — asked me a question yesterday that I should have anticipated but didn't. "Why do I have $146 in gross PnL but only $1,106 in my account? Shouldn't there be more?"

I stared at the message. Then I opened his dashboard and tried to see it the way he sees it. Not as the guy who built the system and carries every detail in his head. As a person who deposited $1,000, was told bots would trade it, and is now looking at a screen trying to figure out where his money went.

The answer is simple: the $146 in profits is already inside the $1,106. Deposit plus profits minus exchange fees minus unrealized loss on open positions. The math works.

But the dashboard didn't show the math. It showed gross PnL in one box and account balance in another, with a gap in the middle that only makes sense if you already understand how exchange fees and open positions work. Vazen doesn't know how exchange fees work. Why would he? He hired me so he wouldn't have to.

If your client has to message you to understand their own money, the dashboard has failed. Not the data. The presentation. I was showing him the ingredients without the recipe.

If your client has to message you to understand their own money, the dashboard has failed.
•  •  •

Making every dollar visible

I rebuilt the financial display across every dashboard — mine, Vazen's, ChuChu's, and the master client view. The old layout showed one headline number: gross PnL. What the bots made before anything gets subtracted. Big, green, feels good. Also misleading, because nobody takes home the gross.

The new layout shows four numbers, in order, the way money actually flows:

Gross PnL → Exchange Fees → My Cut (20%) → Client Take-Home.

That last number is the only one that matters. Everything above it exists to explain how you got there.

The tricky part was the fee split. There are two ways to do it. Option A: fees come off the top first, then we split the remainder 80/20. Option B: we split first, then the client pays fees from their share. The difference is small — maybe two dollars on a $146 gross. But Option A is fairer. Fees are a cost of running the strategy. Both of us benefit from the trades. Both of us should share the overhead. I went with A.

While I was at it, I changed something bigger. My cut went from 29% to 20%. And I applied it retroactively — went back through every past trade for both clients and recalculated. Tedious. Took most of an evening. But now every number on every dashboard reflects the same rate from Day 1.

Why cut my own revenue? Because I'm twenty-six days into this. The bots work. The strategy is proven. But the business isn't proven. Nobody's going to recommend a service where the operator takes 29% and the fee structure is opaque. Twenty percent with full transparency is a better product than twenty-nine percent with a bigger number on my end. I'd rather build trust that compounds than extract margin that doesn't.

I'd rather build trust that compounds than extract margin that doesn't.

Vazen's final numbers: gross $146.62, fees $14.29, my cut $26.47, his take-home $105.86. Every dollar accounted for. No gaps. No questions needed.

•  •  •

ChuChu's money showed up in the wrong place

ChuChu — my wife — came onboard the day before. Second client. Five bots — BTC, XAG, XAU, ASTER, HYPE. Her own API keys, her own Telegram group, her own dashboard.

There's a reason my first two clients are my brother and my wife. They trust me. They won't panic over a bug. They'll tell me what's broken instead of pulling their money. When you're launching something this early, you need people who give you room to mess up while you figure it out. Vazen and ChuChu gave me that room.

Good thing, because the onboarding was rough. First API key she sent was invalid. Had to ask for a new one. Bots started with old position sizes from testing. State files didn't match her actual account. Then I saw it. Two BTC trades — ChuChu's trades, from ChuChu's account — showing up on Vazen's profit tracker. Not ChuChu's. My brother's.

The bug was a default. The bot code writes profits to a file. When I set up ChuChu's bots, I told the agent to configure everything — API keys, Telegram routing, dashboard URL. But I forgot to specify a separate profit file. The code fell back to its default: Vazen's file. My wife's gains were inflating my brother's numbers. Silently. Automatically. With no indication that anything was wrong.

This is the same lesson from Day 22 — defaults are invisible until they're catastrophically wrong. With family, it's a funny story over dinner. With a real client, it's a phone call you don't want to have. The whole point of testing with people who trust you is catching exactly this kind of thing before it reaches someone who doesn't.

The fix took ten minutes. Each bot now takes its own profit file path as a parameter. No shared defaults. Clean walls. ChuChu's trades go to ChuChu's file. Vazen's go to Vazen's. The separation is structural now, not assumed.

When you're building for yourself, bugs are annoying. When you're building for clients — even family — bugs are the things that would destroy trust if they happened to a stranger. Every default, every shared path, every assumption about which file goes where — all of it needs to be explicit when other people's money is involved. Fix it now while the clients forgive you. Because the next ones won't.

•  •  •

The operating manual is writing itself

Three things shipped this week that don't look like features but change everything about how this operates.

The onboarding PDF. Five pages. Step by step. Which account to create on Aster, which wallet to deposit into — Futures, not Spot, and that distinction alone trips up everyone — which API permissions to enable, which IP to whitelist, where to send the keys. Before this, I was walking each person through it on Telegram, repeating myself, forgetting steps. Now it's a document. A new client reads it, sets up, and is live within an hour. I don't need to be involved.

Monthly summary reports. Automated. First of every month, 9 AM, delivered to each client's Telegram group. Trades closed, win rate, gross profit, my cut, their take-home, best performing bot, account status with open positions. Tested both. Vazen: 24 trades, $146.62 gross. ChuChu: 5 trades, $45.47 gross. Both delivered. Both correct. Both sent without me doing anything.

And the dashboards — transparent now. Not "I can explain the numbers if you ask." Transparent as in: the dashboard itself explains the numbers. Fees visible. Cut visible. Take-home visible. No messages needed.

Documents scale. Automated reports scale. Transparent dashboards scale. Verbal explanations and manual reconciliations don't. Every hour I spend building something that explains itself is an hour I'll never spend explaining it again.

•  •  •

End-of-day reflection

Here's what keeps hitting me tonight.

Twenty-six days ago I was Googling what SSH meant. I didn't know what an API key was. Didn't know what a cron job did. Had never connected to a remote server. Had never directed an AI to build anything.

Today I'm running a multi-client trading operation. Ten bots across two clients. Three dashboards that update automatically. Onboarding documentation. Monthly reports. A fee structure I can defend to anyone who asks. A risk calculator that tells me the worst case before it happens.

None of this was planned. Day 1 I just wanted to see if I could get an AI agent to respond on Telegram. That was the whole ambition. Everything since then has been one thing leading to the next — the briefings led to the dashboard, the dashboard led to the bots, the bots led to Vazen, Vazen led to ChuChu, and ChuChu's onboarding bugs led to building actual infrastructure instead of duct-taping things together.

The system isn't finished. The BTC state sync is still pending from when I changed position sizes. The HYPE and XAG bots needed manual closes and restarts after old layers mismatched. The master client dashboard still needs work. There's always something.

But the shape of it is real now. It's not a hobby with a terminal. It's a service with clients and responsibilities and numbers that have to be right because someone else is reading them.

Fix it now while the clients forgive you. Because the next ones won't.

Not because the question was hard. Because it forced me to look at what I'd built from the outside — and fix everything that only made sense from the inside.

Day 26 complete. Two clients. Ten bots. Three dashboards. Every dollar accounted for.

The business doesn't look like I imagined it would. It looks like something that grew one bug at a time.

Day 26 of ∞ — @astergod Building in public. Learning in public.

Following along? @astergod on X · Telegram
Day 25 Day 26 of ∞ Latest →