Add explicit Insights and Opportunities sections to campaign-end report

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
beantownbabeandClaude Sonnet 5 committed 2026-10-02 15:20:28 +02:00
1 parent 6ce1c09797
commit 46b5da00ce
3 files changed
+30 -3

No files matched your search

+6 -2
View File
@@ -4326,10 +4326,14 @@ def _render_campaign_end_summary():
for dim_title, dim_text in exec_summary.get("audience_dimensions") or []:
body.append(html.P([html.Strong(f"{dim_title}: "), dim_text]))
insights = exec_summary.get("insights") or []
if insights:
body.append(html.H5("Insights", style={"marginTop": "18px", "color": "#1b3a5c"}))
body.append(html.Ul([html.Li(i) for i in insights]))
recommendations = exec_summary.get("recommendations") or []
if recommendations:
body.append(html.H5("Recommendations for October & Beyond",
style={"marginTop": "18px", "color": "#1b3a5c"}))
body.append(html.H5("Opportunities", style={"marginTop": "18px", "color": "#1b3a5c"}))
body.append(html.Ul([html.Li(r) for r in recommendations]))
if not fts_f.empty:
+17
View File
@@ -474,6 +474,23 @@ NOTES = {
"behind both the format findings above and the failed direct "
"asks below."),
],
"insights": [
"Carousel ran 7 times across the campaign and averages 29.1% "
"Real Eng %, clearly the best format — Text/Image averages "
"9.1%.",
"13/08 is the campaign's #2 post (48.7%), a Carousel paired "
"with a concrete cost claim.",
"A specific claim beats vague content every time it's been "
"tried, in any format.",
"The audience is stable: Academia/Research Institute, "
"Germany-based, Researcher/Scientist-heavy in all 3 months.",
"Direct asks (2 polls, 1 pilot-partner CTA) got zero or weak "
"response every time, across all 3 months.",
"One real engagement trigger was found (08/09's pain-point "
"post) but never repeated.",
"Growth decelerated every month (July +25.9%, August +17.8%, "
"September +12.7%) even as total followers grew 85 to 142.",
],
"recommendations": [
"Make Carousel the default format and keep pairing it with a "
"concrete claim — 13/08 already proved this works (Carousel + "
+7 -1
View File
@@ -329,9 +329,15 @@ def build_report_docx(ctx, timeframe_value="all"):
p.add_run(f"{dim_title}: ").bold = True
p.add_run(dim_text)
insights = exec_summary.get("insights") or []
if insights:
doc.add_heading("Insights", level=1)
for item in insights:
doc.add_paragraph(item, style="List Bullet")
recommendations = exec_summary.get("recommendations") or []
if recommendations:
doc.add_heading("Recommendations for October & Beyond", level=1)
doc.add_heading("Opportunities", level=1)
for item in recommendations:
doc.add_paragraph(item, style="List Bullet")
elif monthly_notes: