← All posts

· XingAI Invest AI

Email Is the Decision, PDF Is the Explanation

The mistake: sending more data

The first version of our daily-picks email worked technically. It read the worker cache, selected top signals, and sent an email. But the product shape was wrong: it looked like a raw table.

Tables ask the user to analyze. A morning brief should help the user decide.

So we split the product into three surfaces:

Email = Decision summary
PDF report = Explanation
Dashboard = Exploration

Email: under 30 seconds

The email now answers one question:

What should I do today?

It contains:

  • Today's playbook.
  • Consensus score.
  • Suggested exposure and cash allocation.
  • One top opportunity.
  • What we see.
  • Today's actions.
  • A dashboard CTA.
  • A PDF attachment card.

It intentionally does not show raw RSI/volume tables. Those belong in the report.

PDF: premium explanation

The attached PDF is the slower surface. It explains why the email says what it says.

The report includes:

  • Cover.
  • Executive summary.
  • Market story.
  • Allocation model.
  • Top opportunities.
  • Signal breakdown.
  • Full watchlist.
  • Risk dashboard.
  • Action plan.
  • Disclaimer.
  • Methodology.
  • Appendix.

The PDF is generated by the worker from the same cached decision payload. It does not ask the API to recompute anything.

Dashboard: exploration

The dashboard remains the place for curiosity: symbol scope, macro radar, engine cards, signal feeds, and deeper inspection. The email should never try to become a dashboard in the inbox.

Product principle

One screen should carry one decision.

That means the email should be short enough to understand in a line at a coffee shop. The PDF should be rich enough to justify the recommendation later. The dashboard should be open-ended enough to explore.

Engineering principle

The design shift did not change the decision boundary:

  • Worker owns decision semantics.
  • FastAPI reads cache.
  • React renders.
  • Email and PDF are delivery formats over the same cache.

That is the important part. Product polish should not create a hidden second decision engine.

Takeaway

Do not deliver more data. Deliver clarity.

Further reading: ADR-017 (docs/adr/017-premium-daily-brief-email-pdf.md).