monthly_report — Monthly Performance Report
| Field | Value |
|---|---|
| Type key | monthly_report |
| Label | Monthly Performance Report |
| Agent queue | report-writer |
| Plan tier | Pro only (professional plan) |
| Credits/unit | 2 |
| Monthly range | 1 (exactly 1 per month) |
What it produces
A structured monthly performance report summarising the tenant’s marketing activity and results for the period. Sections typically include: executive summary, channel-by-channel breakdown (SEO, social, GBP, ads), key metrics and trends, deliverables produced this month, and recommendations for next month. Output is stored in Activity.outputPayload as markdown/text.
Typical structure:
- Executive Summary: 2–3 paragraph overview
- SEO Performance: Organic traffic, keyword rankings, blog posts published
- Social Media Performance: Reach, engagement, followers growth
- GBP Performance: Views, searches, direction requests, calls
- Paid Advertising: Impressions, clicks, CPC, conversions (if applicable)
- Deliverables This Month: Count and types produced
- Recommendations: 3–5 action items for next period
Pipeline sequence
report-writer ──→ Activity: done
│
[auto-approved — no review]
│
Deliverable status: approvedNo HITL gates. The monthly report auto-approves on completion. It is typically scheduled to run at the end of the monthly cycle after all other deliverables have been produced.
Status machine
Status tracked on the parent Activity record only.
| Activity status | Meaning |
|---|---|
pending | Scheduled, waiting |
queued | Submitted to BullMQ |
in_progress | Worker running |
done | Report written, outputPayload saved |
failed | Worker error |
The Deliverable moves from generating → approved automatically on done.
HITL gates
None. Monthly reports auto-approve on completion. The DM portal’s Reports screen (P8) provides additional controls for sending reports to clients: PDF export, manual send, scheduled delivery, and cover page customisation.
Dependencies
None enforced at the activity level. The report writer uses:
- The tenant’s strategy and goals as a benchmark
- The current month’s deliverable completion data (pulled from Deliverable records)
- Any analytics data available in the client context
Ideally scheduled to run last in the monthly cycle so it can reference all other completed deliverables.
DB records created
| Record | Created by | Notes |
|---|---|---|
DeliverableTemplate | deliverable-planner | 1 report per month |
Activity | activity-planner | type = monthly_report; scheduled at end of cycle |
Deliverable | report-writer worker | Auto-approved on completion |
No dedicated content model. Report content lives in Activity.outputPayload.
Plan restriction
Monthly reports are available on the Professional plan only.
| DB plan name | Tier | Monthly Report? |
|---|---|---|
starter | 0 (free) | No |
growth | 0 (free) | No |
professional | 1 (pro) | Yes |
DM Portal — Reports screen (P8)
The DM Portal’s Reports screen provides additional delivery controls beyond the auto-approved Deliverable:
| Feature | Description |
|---|---|
| Preview | Read the report in a preview panel |
| Download as PDF | Export for offline sharing |
| Send now | Select recipients (tenant users + custom emails) |
| Schedule | Set recurring monthly delivery (day of month + time) |
| Customise cover | Agency branding on the cover page |
Key rules
- Exactly 1 monthly report per period — it is the single summary artefact for the month.
- The report is best scheduled at the end of the month’s activity cycle so it can accurately reflect what was produced.
- 2 credits reflects the aggregation and synthesis work required vs. single-type content.