Repository navigation
feat(leads): show what outreach actually produced - #142
Merged
Merged
Conversation
The funnel is rendered at project and campaign level, alongside the per-tick history each campaign already carries — which is where a single run belongs, so it is not duplicated here. It reports measured outcomes, never a projection. Published cold-email benchmarks are someone else's list, someone else's offer and someone else's year; dressing one up as a forecast invites a decision the number cannot support. These are the project's own sends, worth little on day one and more every week. Two denominators, chosen rather than defaulted. Reply rate divides by people contacted, not by sends, because follow-ups mean one person can receive three emails and counting them separately understates every campaign that follows up. Close rate divides by people who replied, because a deal comes out of a conversation and dividing by silence answers a different question. Rates are withheld below twenty sends and say why. One reply out of three is not a thirty-three percent reply rate, and drawing it as one is worse than drawing nothing. A campaign with sends but no replies is told there is no close rate rather than shown a zero, which reads as failure rather than as absence. Outcomes are recordable from the lead row, and only once it has actually been mailed. Nothing here can observe a reply — a send is visible, a reply is not — so until something reads the sending mailbox this is the only way the funnel gets a numerator. Offering the control earlier would invite a reply rate computed over people who were never contacted. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
vu1nz Security Review0 finding(s) in PR #? No security issues found. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Renders the funnel from #140 at project and campaign level, alongside the per-tick history each campaign already carries — which is where a single run belongs, so it isn't duplicated.
Measured, not projected
Published cold-email benchmarks are someone else's list, someone else's offer, and someone else's year. Dressing one up as a forecast invites a decision the number can't support. This is the project's own data — worth little on day one, more every week.
Two denominators, chosen rather than defaulted
Honest about small samples
Rates are withheld below 20 sends, with the reason shown. One reply in three is not a 33% reply rate, and drawing it as one is worse than drawing nothing.
A campaign with sends but no replies is told "no replies yet, so there is no close rate to show" rather than shown
0%, which reads as failure rather than absence.Outcomes are now recordable
Nothing in the pipeline can observe a reply — a send is visible, a reply isn't. Until something reads the sending mailbox, marking one is the only way the funnel gets a numerator.
The control appears on the lead row only once it has actually been mailed; offering it earlier would invite a reply rate computed over people who were never contacted.
Checks
tsc --noEmitclean🤖 Generated with Claude Code