Proposal Generator
Deterministic proposal builder: audit findings (JSON) → client-ready proposal (Markdown). Same input shape as the discovery-call notes template (03-audit-spin-scripts/call-setup-and-notes-template.md), so notes flow straight into a proposal with no reformatting.
Use
# 1. After the discovery call, fill a findings file (copy sample-audit.json)
cp sample-audit.json audit-<client>.json # edit it
# 2. Generate
python3 generate_proposal.py audit-<client>.json --out proposal-<client>.md
# 3. Ship as a shareable link (styled Google Doc)
python3 ~/google/md_to_gdoc.py proposal-<client>.md
What it does for you
- Computes totals and ROI from your inputs (never asserts a dollar figure without the hours × hourly-value math behind it — see the opportunity-analysis standard).
- Orders fixes quick-wins-first, then by dollar impact — so the guarantee (“one fix worth 5+ hrs/week in 7 days”) is visibly deliverable up top.
- Builds the first-week plan (“Our first week together”) from the quick-win findings automatically.
- Bakes in the first-month guarantee (named distinctly from the Assessment guarantee), a recommendation-led two-option close (Concierge recommended against the client’s stated 90-day goal / Custom as the hand-it-off alternative), the affiliate disclosure, and a “current as of” date (the version-drift safeguard).
- Bakes in a closing “Next step” Advance block — held dates + booking link + a cost-of-delay line derived from the top fix’s monthly impact. A proposal must never end without a designed next step.
Input schema (sample-audit.json)
client: company, contact_name, industry, headcount, revenue_band,hourly_value(drives ROI math), trigger, goal_90d, optionalquotes[](verbatim things the buyer said on the call — rendered as “In your words” blocks; their words, their commitment).pains[]: title,axis(effectiveness|efficiency|quality), story,hours_per_week, current_tool, recommended_fix,effort(quick_win|moderate|project), optionalmonthly_dollar_impact(else derived from hours × hourly_value × 4.33), optionalimpact_basis(the arithmetic behind an asserted dollar figure, shown as a parenthetical — never assert a number without its derivation), optionalproof(an honest “seen elsewhere” line — only real patterns, never fabricated clients), optionaltool_note.effort: projectfixes auto-render an honest caveat (multi-week build, payoff in month two).- Top level: optional
booking_link,held_dates[],next_slot(renders calendar scarcity in the close — the next real open build-slot date; only supply it when it’s true. No seat caps — see 01 §7a),affiliate_disclosure.
sample-proposal-output.md is a committed example built from sample-audit.json — regenerate it any time to verify the generator still runs.
Note on the ROI math
monthly_dollar_impact is used verbatim when you supply it (use this for revenue leaks like missed leads, where the value isn’t reclaimed owner-hours). When omitted, it’s derived: hours_per_week × 4.33 × hourly_value. Keep estimates conservative and grounded in what the client told you on the call — the number has to survive them repeating it to their spouse.