All help articles
Using the dashboard

Using the dashboard

The /app dashboard is one view: a filter bar at the top, a totals strip in the middle, and a sortable table at the bottom. Everything you can change lives in those three regions.

5-min read · Last updated 29 May 2026

What you’re looking at

The dashboard answers one question: what does my marketing performance look like over a window I care about? You pick the window with filters, group the rows by the time grain you want, and read the totals + per-row table.

Underneath, Crowflow pulls every row of MetricsDaily that matches your filters and aggregates them server-side before handing the table to the browser. Sorting and column visibility happen client-side so they feel instant; filters round-trip to the server so the URL stays bookmarkable.

Filter bar

The filter bar across the top has six controls:

  • Date range — last 7 / 30 / 90 days, last 12 months, or all time
  • Group by — Day / Week / Month / Year (see below for what this changes)
  • Platforms — narrow to Google Ads, Microsoft Ads, Meta Ads, or any combination
  • Campaigns— searchable multi-select of every campaign you’ve ever synced for a selected account. Pick any subset
  • Compare — vs the previous same-length window (see below)
  • Columns — show or hide individual columns (see below)

Filter changes update the URL (?range=90&platforms=GOOGLE_ADS&groupBy=month), so you can bookmark a specific view or share the link with a teammate.

Group by

Group by changes the time grain of each row:

  • Day — one row per (date, platform, campaign). The most detailed view. Useful for trend-spotting and recent changes
  • Week — one row per (ISO week, platform, campaign). Smooths out daily noise; good for weekly check-ins. Weeks are Mon-start
  • Month — one row per (year-month, platform, campaign). Right grain for monthly client reports
  • Year — one row per (year, platform, campaign). Useful for year-on-year comparisons with Compare on
Rates roll up correctly. When you switch from Day to Month, your CTR / CPC / CPA columns are recomputed from summed numerators (total clicks divided by total impressions for the month), not averaged from per-day rates. This is the only mathematically correct way to roll up rate metrics.

Compare to previous

Tick Compare → vs previous and every card in the totals strip grows a small delta line:

Impressions
1,234,567
▲ +12.4% (+136,000)

The previous period is the same-length window immediately before the current one. For “Last 30 days” that’s the 30 days before that. For “Last 12 months”, the 12 months before that. Compare is disabled for “All time” — there’s no meaningful previous window.

Direction colours:

  • Impressions, Clicks, Conversions, CTR, CR — up is green (good), down is red
  • CPC, CPA — down is green (cheaper), up is red
  • Spend — neutral grey. Scaling up or down can be intentional either way

CTR and CR deltas are shown in percentage points (“+0.4pp”), not relative percent — the analyst- correct convention.

Totals strip

Eight summary cards above the table: Impressions, Clicks, Conversions, Spend, CTR, CR, CPC, CPA. They reflect what’s currently filtered, not your whole account — change a filter and the strip updates with the new totals.

When you have data in mixed currencies (e.g. one Google Ads account in USD and one in GBP), the Spend / CPC / CPA cards suppress the currency prefix and show a small “mixed currencies” note. Add a currency to your platform filter to read clean totals.

Sortable table

Click any column header to sort. Click again to flip direction:

  • Numeric columns (Impressions, Clicks, Conversions, Spend, CTR, CR, CPC, CPA) default to descending — biggest first
  • Text columns (Date, Platform, Account, Campaign) default to ascending — A-Z, oldest-first

The active column shows a filled arrow; inactive ones a faint hint. Sort is client-side and instant.

Show or hide columns

The Columns dropdown lets you toggle which columns appear:

  • Always shown: Period (Date / Week / Month / Year, depending on Group by), Platform, Campaign. Hiding these would leave the numbers unattributable
  • Toggleable: Account, Impressions, Clicks, Conversions, Spend, CTR, CR, CPC, CPA
  • Custom metricsappear in their own sub-section once you’ve created some at /app/settings/metrics. See custom metrics

Your column choices persist to localStorage — they survive reloads and new sessions on the same browser.

Pagination & page size

The table paginates at 50 rows by default. The footer shows the visible range (“Showing 51–100 of 1,234”) and page navigation (First / Prev / Next / Last).

Pick 25 / 50 / 100 / 250 rows per page from the dropdown. The choice persists to localStorage. Changing filters or sort resets you to page 1 so you’re never stranded on “page 7 of 3”.

Shareable URLs

Filter state lives in the URL, so any view you’re looking at is bookmarkable and shareable. Example:

/app?range=90&platforms=GOOGLE_ADS,META_ADS&groupBy=month&compare=1

That’s the same dashboard for “Last 90 days, Google and Meta only, monthly grain, compared to the prior 90 days.” Sort and column choices don’t live in the URL — they’re a personal-browser preference, persisted to localStorage.

Related help