MenuWrightMenuWright

Reports

Automatic weekly email digests and monthly PDF reports for every plan, delivered in each restaurant's local timezone.

MenuWright sends two recurring report formats to the owner email for each restaurant with a completed analysis:

  • A weekly HTML email digest.
  • A monthly PDF report attached to an email.

Reports are available on every plan. Free accounts receive the same digest and PDF delivery, but only a preview of the recommendation set; Core and Pro receive the full recommendation set.

Weekly email digest

The weekly task renders an HTML email with:

  • Total revenue.
  • Average contribution margin.
  • The number of menu items in the analysis.
  • Top recommendations for the week, including projected monthly impact when a recommendation has one.
  • A link back to the full dashboard.

The digest template shows up to three recommendations. Free accounts receive only the single highest-impact preview recommendation; the rest stay locked behind the paid-plan upgrade note.

Monthly PDF report

The monthly task renders a PDF and attaches it to an email. The report contains:

  • An executive summary with total revenue, average contribution margin, and the number of analyzed items.
  • An item breakdown with each item's name, classification, price, food cost, contribution margin, menu mix percentage, and quantity sold.
  • Recommendations with their type, summary, and projected monthly impact when available.
  • A locked-recommendation count and upgrade link for Free accounts.

The PDF is generated as a real PDF. If the PDF renderer is unavailable, generation fails rather than sending HTML labeled as a .pdf file.

Who receives reports

The current delivery task sends both formats to the first active user with the owner role for the restaurant. The report footer identifies the message as owner delivery. Team members do not receive a separate copy through this task.

The configured report sender is reports@menuwright.com in the current backend defaults. Delivery failures are reported by the email service; they do not count as a successful report send.

Schedule and timezone behavior

Report dispatchers run hourly and evaluate each restaurant in its configured timezone:

ReportLocal send windowDuplicate protection
Weekly digestThe restaurant's local 8 AM hourA successful dispatch is not repeated until at least 7 days have elapsed.
Monthly PDFThe restaurant's local 8 AM hour on the first day of the monthA successful dispatch is not repeated until at least 27 days have elapsed.

The dispatcher claims a send before enqueueing the delivery task. If email delivery fails, the task clears that report's marker so a later hourly tick can retry. A generation failure currently leaves the claim in place; generation-failure retry behavior is a known limitation under review. A restaurant without a completed analysis or owner email is skipped and remains eligible for a later attempt.

Plan behavior

Delivery and recommendation access are separate concerns:

DetailFreeCorePro
Weekly digestSent with preview contentSent with full contentSent with full content
Monthly PDFSent with preview contentSent with full contentSent with full content
Recommendation set in the reportOne highest-impact preview; remaining recommendations stay lockedFull recommendation setFull recommendation set

The report payload treats any plan that is not explicitly paid as Free for recommendation locking. That keeps report content aligned with the in-app recommendation preview instead of leaking the withheld set through email.

Delivery preferences

The current report tasks use the restaurant's configured timezone and the owner email automatically. There is no separate report-recipient or frequency selector in this flow: weekly and monthly delivery are independent recurring tasks, and the latest completed analysis is selected automatically for each send.

To view the underlying analysis and the complete recommendation experience available on your plan, use the dashboard link in the digest or open the Menu matrix page.

Was this page helpful?

On this page