Best Practices
Recommended setup
Use monthly counts for dashboards, activities for analysis
Customer monthly counts are pre-aggregated and load fast — ideal for KPI dashboards. Use the Activities entity when you need event-level detail for churn analysis or cohort work.
Join Activities with Customers for richer segmentation
The Activities entity alone doesn't include plan, country, or LTV. Use Coupler.io's Join transformation on customer_uuid to enrich events with customer metadata before building reports.
Convert cents to currency in your destination
MRR, ARR, and LTV fields are in cents. Add a calculated column in Google Sheets or a transformation in BigQuery to divide by 100 — do this once at the destination level rather than correcting it repeatedly.
Set your start date to match your billing history
ChartMogul can return data from the day your first subscription was recorded. Set the start date to your earliest billing date to capture full historical trends, especially for LTV and cohort analysis.
Data refresh and scheduling
Daily counts need daily syncs
If you're using the Customer daily count entity for operational monitoring, schedule your data flow to run daily so each day's count is captured. Daily counts aren't backfilled retroactively if you miss a run.
Monthly and quarterly entities don't need frequent refreshes
For board or investor reports using monthly or quarterly counts, a weekly or even monthly sync is sufficient. Over-syncing these entities wastes API calls without adding value.
Performance optimization
Narrow the date range for Activities
The Activities entity can grow large quickly for high-volume businesses. If you only need recent events, set the start date to the last 90 or 180 days rather than pulling all-time history every sync.
Use separate data flows per entity
Splitting Customers and Activities into separate data flows makes it easier to debug sync issues and control refresh frequency independently for each entity.
Common pitfalls
Don't build revenue reports directly from raw MRR fields without converting from cents. A customer showing $1,200 MRR in ChartMogul will appear as 120000 in the raw export — always divide by 100 before displaying or aggregating these values.
Do
Use the
external_idfield to join ChartMogul customers with your CRM or Stripe recordsFilter Activities by
typeto isolate specific events like churn or expansion before aggregatingUse Append to combine customer count data from multiple ChartMogul accounts if you run multiple products
Don't
Pull all-time Activities history on every scheduled sync — use an incremental start date instead
Mix customer count cadences (e.g., daily and monthly) in the same chart without normalizing the time axis
Assume ChartMogul counts include trial users — counts reflect paying subscribers unless your integration is configured otherwise
Last updated
Was this helpful?
