For tonight: query everyone with no successful send row, chunk it, send those. Then for the next launch stop hand-rolling it and use a broadcast or audience feature, you get suppression lists and unsubscribe handling for free, and you stop owning the boring half of the problem.
Equity Skeptic
@vesting_cliff
Four startups, three of which made my options worthless. I read the cap table now before I read the offer letter.
15 credit Contributor
- From answers
- 0
- From questions
- 15
Instrument this off the usage fields, not off the invoice. The invoice lags and blends every route together, so you cannot tell which one regressed.
We track cache read tokens over total input tokens, per route, on one chart. A prompt change that quietly breaks the prefix shows up within an hour instead of at the end of the month.
Say it in writing, be boring about it, and make the next round the reset point. Something like: happy to keep refining — we have now gone past the two rounds in the original quote, so from here I will bill additional changes at X per hour in half hour blocks, or we can bundle everything outstanding into one final round at a fixed Y. Then stop typing. No apology, no justification paragraph, no explaining that you are a small business. The tone that works is the tone your plumber would use. Nine times out of ten the client says fine, and the requests immediately become more considered, because free changes are infinitely cheap and paid ones are not.
It genuinely helps. Nobody sends their plumber eleven small follow-ups, because they can feel the meter running. And keep the bundled final round in the email — it gives them a way to say yes that does not feel like a punishment.
Before you tune anything, put spans around every stage and look at p95 per stage rather than the total. Embed, search, rerank, prompt assembly, time to first token, stream to completion.
I have watched two teams spend a fortnight optimising a 200ms vector search that sat next to a 6 second reranker, because the total was the only number on the dashboard. The stage breakdown takes an afternoon to add and it decides what you work on for the next month.
Three launches, same shape every time: big day, half of it, a quarter, then a floor at roughly 4-5% of peak by day five. Yours is textbook.
The useful thing to do during the slump is not marketing. It is talking to the handful of people who actually activated. You will never again have this many recent, motivated strangers who tried your thing and can remember why they stopped.
Making the broken set permanent instead of a one-off sanity check reframes it completely. It went from a debugging session into a fixture.
Switched to five binary checks and the broken answers now fail three of them each. The truncated one fails only the completeness check, which is exactly the granularity I wanted and never got from a single number.
Citation containment took twenty minutes to write and catches more than the judge ever did on that dimension.
Very common. I only trust the issuer page or the exchange notice now.
Other way around from the buyer's side. The ex-date is derived from the record date and the settlement cycle, and it is the one that decides whether your purchase entitles you to the payment.
The ex-dividend date decides it and nothing else does. If you own the shares at the open on the ex-date you get paid; if you buy on the ex-date or later, the seller gets it. The record date exists for the company's registrar and settlement plumbing, not for you. So buying two days before the ex-date should have meant you got it, which points at one of three things: you are looking at a different quarter's ex-date than the one your purchase falls before, the position settled differently than you assume, or the payment is being routed somewhere you have not looked. Check the trade date on the confirmation rather than the settlement date, and compare it to the ex-date on the company's own investor relations page rather than a data aggregator — aggregators get these wrong surprisingly often.
Also alert on daily spend, not monthly. Monthly alerts tell you about a problem when it is already a bill.
Do the arithmetic first, because it eliminates one option outright. 400 questions a day at 120k input tokens is 48 million tokens a day. At any current frontier price that is not a $600 month, it is closer to a $600 day. Full context per question is out unless the context is cached.
What is left:
- Cache the document and let a session ask many questions against it. You pay the write premium once and roughly a tenth of the input cost for every follow-up. This maps exactly onto the behaviour you described, which makes it the single biggest lever you have.
- Retrieval, top 8 chunks, call it 6k tokens a question. 2.4 million tokens a day, comfortably inside budget with room for the model to be wrong occasionally. You give up cross-document and cross-section reasoning, "compare the termination clause with schedule 3" is the question type that breaks.
- Hierarchical summaries: summarise each section once at upload, retrieve over summaries, fetch full sections on demand. Best quality per token, most code, and the summaries go stale when a document is replaced.
With $600 and presumably not a large team: retrieval now, plus caching for the follow-up case, and only build the summary index if your eval set shows retrieval actually missing things. Do not build it because it sounds better.
Add a third ratio: dividends divided by cash from operations before capex. It is not the whole story but it is much harder to flatter than earnings, and comparing five years of it shows the direction of travel better than any single number.
Stop talking to your contact about money. He does not pay invoices, he has no authority over it, and every friendly chase resets the clock without moving anything. The sequence that works:
- Email accounts payable directly, not your contact. Ask for the status of the invoice in their system and the purchase order number it is matched against. Half of all late invoices are stuck because there is no PO or it was never entered, and nobody tells you.
- Copy your contact so he sees it happening rather than being asked to do it.
- At day 60, send a formal statement of account with the late payment terms from your contract, or the statutory ones if your contract is silent — most places have a default interest rate for commercial debt.
- At day 75, a final notice with a date after which it goes to a collections service or small claims.
Be polite and completely unmoved throughout. Almost everything settles at step one or step three.
It is the most common cause and the least talked about. Ask for the PO before you start work from now on. While you are there, ask what their payment run schedule is — plenty of companies only pay on the 15th and the last working day, so an invoice approved on the 16th sits for two weeks doing nothing at all.
Third thing: spend $0 and spend the weekend writing 30 individual emails to people who have publicly complained about the exact problem you solve. They exist, they are findable, and they answer. $500 in a bootstrapped tool is two months of infrastructure, do not set fire to it before you know your pitch works on one person.
It is the single biggest one. You will cut a three minute story in 30 minutes on paper and then know exactly which b-roll you need instead of browsing for it.
Normal, and the useful number is that you will roughly halve it within five projects. What actually made me faster, in order of impact: transcribe the interview and cut the story in the text before touching a timeline, stop hunting for the perfect b-roll and drop a good enough clip with a marker to revisit, and build a project template with your bins, titles and export presets already in place. The one hour per finished minute figure people quote is for people producing the same format every week.
The cost of building is not the $200 a month you save, it is that in-house tools get orphaned. If nobody owns it, three months from now you have a script nobody runs, an eval set nobody updates, and a prompt nobody dares change because the safety net rotted quietly. Buying puts a small recurring cost against a thing that keeps working when everyone is busy.
That rule saved us when we switched platforms last year. The cases moved in an afternoon. Everything else we had built inside the old tool was throwaway and we knew it going in, which made the decision easy.
One warning for a taxable account: automatic reinvestment creates a new tax lot every quarter for every holding. After a few years you have hundreds of tiny lots, and if you ever sell partially or move brokers it is genuinely tedious. Not a reason to avoid it, just know it is coming.
Watch what happens if your basis reaches zero — from that point distributions are generally taxed as capital gains rather than reducing basis further. If you have held a high ROC fund for a long time this sneaks up on you. Track your own basis rather than trusting the broker, because they get this wrong on transfers between platforms.
At some point stop pricing from hours entirely. What was the site worth to them? A local business getting an ordering system that saves someone ten hours a week is not buying 25 hours of your time. Value pricing is not a trick, it just requires you to ask questions in the sales call that most freelancers skip.