Data modelling best practices for Metabase metrics

For fast-growing South African businesses, from Cape Town fintech startups to Joburg retail giants, Data modelling best practices for Metabase metrics can make the difference between trustworthy dashboards and confusing, contradictory numbers. As more local teams adopt modern…

Data modelling best practices for Metabase metrics

Data modelling best practices for Metabase metrics

Introduction: Why data modelling matters for South African Metabase teams

For fast-growing South African businesses, from Cape Town fintech startups to Joburg retail giants, Data modelling best practices for Metabase metrics can make the difference between trustworthy dashboards and confusing, contradictory numbers. As more local teams adopt modern BI tools and cloud data analytics to drive decisions, clean and consistent data models have become a trending priority for 2025.

Metabase offers powerful models and metrics features that let you curate data and define “official” business numbers for everyone to use.[External Metabase docs] But to get reliable revenue, churn, or customer health metrics, you need a solid modelling approach that fits your South African context, including multi-currency sales, regional branches, and growing compliance expectations.

What Metabase models and metrics are (in plain language)

Metabase models: your curated analytics layer

Metabase models are curated tables built from one or more raw tables in your database.[Metabase models] They let you:

  • Join and clean raw data into analysis-ready datasets.
  • Rename technical columns into business-friendly names.
  • Standardise filters and dimensions (e.g. province, channel, industry).

Instead of every analyst writing their own SQL, you create a small set of trusted models that the whole company can use as sources for dashboards and questions.

Metabase metrics: the official calculations

Metabase metrics are reusable, centrally defined calculations (like “Monthly Recurring Revenue” or “Active Customers”) that act as the single source of truth for those numbers.[Metabase metrics]

  • They are based on a table or model.
  • They encode the correct formula once (e.g. which statuses count as “active”).
  • Anyone can reuse them in dashboards without redefining logic.

For South African teams where finance, sales, and operations often debate “which number is correct?”, metrics are essential for alignment.

Data modelling best practices for Metabase metrics

1. Start with business questions, not tables

Before modelling anything, list the key decisions your South African business needs to make each week or month, for example:

  • “How many qualified leads did we get from Gauteng last month?”
  • “What is our MRR churn rate for SME customers?”
  • “Which channels bring the highest customer lifetime value?”

From there, identify the metrics and dimensions you’ll need. This lets you design models around real outcomes instead of mirroring your transactional schema.

2. Define the grain of each model clearly

A critical best practice in 2025 data modelling is to define the grain of every model: one row represents what?[1]

  • Lead model: one row per lead.
  • Deal model: one row per deal or opportunity.
  • Invoice model: one row per invoice.
  • Events model: one row per event (login, page view, etc.).

Add this grain definition in the model description so everyone in Metabase understands how to use it. Mixed or unclear grain is a common cause of incorrect Metabase metrics.

3. Use consistent naming and business terminology

For South African teams, consistency is especially important when data spans multiple tools and regions.

  • Use clear, business-first names like customer_id, billing_country, plan_name.
  • Avoid internal system jargon (e.g. tbl_usr_mst).
  • Use South African spelling consistently (e.g. organisation vs organization).

In Metabase models, rename columns to friendly titles and add descriptions that explain what each field means in your organisation.

4. Model around entities that matter to your CRM and revenue

If you’re using a CRM like MahalaCRM, your core entities will usually include leads, contacts, companies, opportunities, and activities. A clean model for Metabase should mirror these entities in an analytics-friendly way:

  • Lead model: source, campaign, region, created date, status.
  • Account / company model: size, vertical, province, lifetime value.
  • Opportunity / deal model: stage, value, expected close date, owner.
  • Activity model: calls, emails, meetings, outcomes.

You can then build Metabase metrics like “New leads”, “Closed-won value”, or “Activity per rep” directly on top of these models for simple, trusted reporting.

5. Centralise business logic in models, not dashboards

Avoid repeating complex logic inside individual questions or dashboards. Instead:

  1. Write the calculation in SQL (or the query builder) inside a Metabase model.
  2. Expose the calculated field as a column (e.g. is_active_customer, mrr).
  3. Base your metrics on these modelled fields.

This way, if your definition of active customer changes (for instance, after 90 days of inactivity), you update it once in the model and all metrics stay consistent.

6. Separate raw, staging, and analytics layers (even for small teams)

Even if you’re a small South African startup, follow a simple layered approach:

  • Raw layer: direct replicas of app/CRM/ERP tables.
  • Staging layer: cleaned, standardised data (types fixed, codes mapped).
  • Analytics models: business-ready models used directly in Metabase metrics.

You can do some of this upstream in your warehouse, and use Metabase models for the final analytics layer where you apply local business rules and aggregations.

7. Treat time and currency carefully for South African reporting

To keep Metabase metrics accurate across time zones and currencies:

  • Standardise timestamps to UTC in the warehouse, then expose local time views for reporting.
  • Store original amounts and a normalised amount_zar field using the correct FX rate when relevant.
  • Add a country or region column so you can segment metrics for South Africa vs other markets.

These practices make revenue and growth metrics comparable across regions without confusion.

8. Document your metrics and models for self-service

South African teams often want business users to explore data without raising tickets. To enable that:

  • Use Metabase metadata settings to add descriptions for each model and metric.
  • Document which dashboards are “official” and which teams own them.
  • Record which filters are safe (e.g. province, industry) and which require care (e.g. sensitive PII).

A simple internal “data guide” or a help page stored in your CRM knowledge base (for example, MahalaCRM contact & support) can point people to the right Metabase spaces and metrics.