Account Reports & Overview
Updated Oct 16, 20254 min read
View account-level analytics, usage metrics, and aggregate performance across all campaigns.
Overview
Account reports provide:
- Overall account performance metrics
- Usage and quota tracking
- Historical trends across all campaigns
- List health and growth metrics
- Sender reputation indicators
Quick Start
View Account Report
$ cakemail reports account
Output:
=== Account Overview ===
Account ID: 456
Account Name: My Company
Plan: Professional
=== Usage ===
Contacts: 6,789 / 10,000 (67.9%)
Emails Sent This Month: 45,678 / 100,000 (45.7%)
=== Campaign Performance (Last 30 Days) ===
Campaigns Sent: 12
Total Recipients: 142,567
Average Open Rate: 24.3%
Average Click Rate: 3.8%
=== List Health ===
Total Lists: 5
Total Contacts: 6,789
Active Subscribers: 6,234 (91.8%)
Unsubscribed: 412 (6.1%)
Bounced: 143 (2.1%)
Account Metrics
Usage Metrics
# Check quota usage
$ cakemail reports account -f json | jq '{
contact_limit: .contact_limit,
contacts_used: .contacts_used,
contact_usage_pct: (.contacts_used / .contact_limit * 100 | round),
email_limit: .email_limit,
emails_sent: .emails_sent_this_month,
email_usage_pct: (.emails_sent_this_month / .email_limit * 100 | round)
}'
Campaign Aggregate Metrics
# Get overall performance
$ cakemail reports account -f json | jq '{
total_campaigns: .campaigns_sent_30d,
avg_open_rate: .avg_open_rate_30d,
avg_click_rate: .avg_click_rate_30d,
avg_delivery_rate: .avg_delivery_rate_30d
}'
List Health Dashboard
#!/bin/bash
# list-health-dashboard.sh
echo "=== List Health Dashboard ==="
echo ""
# Get all lists
LISTS=$(cakemail lists list -f json | jq -r '.data[].id')
TOTAL_CONTACTS=0
TOTAL_ACTIVE=0
TOTAL_UNSUB=0
TOTAL_BOUNCED=0
echo "List ID | Name | Total | Active | Unsub | Bounce"
echo "--------|-----------------|-------|--------|-------|--------"
for LIST_ID in $LISTS; do
LIST=$(cakemail lists get $LIST_ID -f json)
NAME=$(echo "$LIST" | jq -r '.name' | cut -c1-15)
TOTAL=$(echo "$LIST" | jq -r '.contacts_count')
ACTIVE=$(echo "$LIST" | jq -r '.active_contacts')
UNSUB=$(echo "$LIST" | jq -r '.unsubscribed')
BOUNCE=$(echo "$LIST" | jq -r '.bounced')
printf "%-7s | %-15s | %5d | %6d | %5d | %6d\n" \
"$LIST_ID" "$NAME" $TOTAL $ACTIVE $UNSUB $BOUNCE
TOTAL_CONTACTS=$((TOTAL_CONTACTS + TOTAL))
TOTAL_ACTIVE=$((TOTAL_ACTIVE + ACTIVE))
TOTAL_UNSUB=$((TOTAL_UNSUB + UNSUB))
TOTAL_BOUNCED=$((TOTAL_BOUNCED + BOUNCE))
done
echo "--------|-----------------|-------|--------|-------|--------"
printf "%-7s | %-15s | %5d | %6d | %5d | %6d\n" \
"TOTAL" "All Lists" $TOTAL_CONTACTS $TOTAL_ACTIVE $TOTAL_UNSUB $TOTAL_BOUNCED
echo ""
# Calculate health percentage
HEALTH=$((TOTAL_ACTIVE * 100 / TOTAL_CONTACTS))
echo "Overall List Health: $HEALTH%"
if [ $HEALTH -ge 90 ]; then
echo " ✅ Excellent"
elif [ $HEALTH -ge 80 ]; then
echo " ✓ Good"
elif [ $HEALTH -ge 70 ]; then
echo " ⚠️ Fair - Consider cleanup"
else
echo " ❌ Poor - Clean lists immediately"
fi
Performance Trends
30-Day Campaign Summary
#!/bin/bash
# 30day-summary.sh
THIRTY_DAYS_AGO=$(date -d "30 days ago" +%Y-%m-%d)
echo "=== 30-Day Campaign Summary ==="
echo ""
# Get campaigns from last 30 days
CAMPAIGNS=$(cakemail campaigns list \
--filter "status==sent;delivered_at>=$THIRTY_DAYS_AGO" \
-f json | jq -r '.data[].id')
COUNT=0
TOTAL_RECIPIENTS=0
TOTAL_OPENS=0
TOTAL_CLICKS=0
for ID in $CAMPAIGNS; do
REPORT=$(cakemail reports campaign $ID -f json 2>/dev/null)
if [ -n "$REPORT" ]; then
RECIPIENTS=$(echo "$REPORT" | jq -r '.total_recipients')
OPENS=$(echo "$REPORT" | jq -r '.unique_opens')
CLICKS=$(echo "$REPORT" | jq -r '.unique_clicks')
COUNT=$((COUNT + 1))
TOTAL_RECIPIENTS=$((TOTAL_RECIPIENTS + RECIPIENTS))
TOTAL_OPENS=$((TOTAL_OPENS + OPENS))
TOTAL_CLICKS=$((TOTAL_CLICKS + CLICKS))
fi
done
if [ $COUNT -gt 0 ]; then
AVG_OPEN=$((TOTAL_OPENS * 100 / TOTAL_RECIPIENTS))
AVG_CLICK=$((TOTAL_CLICKS * 100 / TOTAL_RECIPIENTS))
echo "Campaigns Sent: $COUNT"
echo "Total Recipients: $TOTAL_RECIPIENTS"
echo "Total Opens: $TOTAL_OPENS"
echo "Total Clicks: $TOTAL_CLICKS"
echo ""
echo "Average Open Rate: $AVG_OPEN%"
echo "Average Click Rate: $AVG_CLICK%"
else
echo "No campaigns sent in last 30 days"
fi
Growth Tracking
#!/bin/bash
# track-growth.sh
LOG_FILE="account-growth.log"
# Log current state
DATE=$(date +%Y-%m-%d)
ACCOUNT=$(cakemail reports account -f json)
CONTACTS=$(echo "$ACCOUNT" | jq -r '.contacts_used')
CAMPAIGNS=$(echo "$ACCOUNT" | jq -r '.campaigns_sent_30d')
echo "$DATE,$CONTACTS,$CAMPAIGNS" >> $LOG_FILE
# Show recent growth
echo "=== Recent Growth ==="
tail -7 $LOG_FILE | column -t -s','
Best Practices
-
Monitor Usage Regularly
- Check quota usage weekly
- Plan upgrades before limits
-
Track List Health
- Review monthly
- Clean inactive subscribers
-
Benchmark Performance
- Compare to industry standards
- Track improvements over time
-
Schedule Reports
- Weekly dashboards
- Monthly executive summaries