Proposal Generator
Deterministic proposal builder: audit findings (JSON) → client-ready proposal (Markdown). Same input shape as the discovery-call notes template (the internal playbook), 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 4-day quick-start plan from the quick-win findings automatically.
- Bakes in the guarantee, the two build options (Concierge / Custom), the affiliate disclosure, and a “current as of” date (the version-drift safeguard).
Input schema (sample-audit.json)
client: company, contact_name, industry, headcount, revenue_band,hourly_value(drives ROI math), trigger, goal_90d.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), optionaltool_note.affiliate_disclosure(optional string).
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.