Skip to main content
jelou metrics reads the same analytics catalog the Studio dashboards read — eight categories: inbox, ecommerce, payments, voice, biometrics, brain, ai, general. The catalog is per-company and served live, so discover before you fetch — never hardcode a key from memory.

Listing the catalog

list merges three catalog origins. If one fails, the command still exits 0 with the metrics it could read, and names the rest in errors[] — check failed before concluding a key doesn’t exist. The seven pre-v2 legacy slugs (dau_total, dau_ai_total, unique_users_total, unique_users_per_day, brain_sessions, bic_billing_sessions, hsm_by_sent_status) still resolve and return their usual envelope — they show up flagged legacy: true in --json.

Fetching one metric

Keys are case-insensitive, and the invocation-name tail works when it’s unambiguous. In an interactive terminal it renders as a card or chart; in --json/--agent mode (or with stdout redirected) it emits the JSON envelope.

Time windows

Precedence: --start+--end beats --last, which beats --period.

Filters

Each metric declares which filters it accepts — passing one it doesn’t declare exits with code 2 and tells you which ones it does accept. Check filters in jelou metrics list --json before calling a metric you haven’t used yet.

A whole dashboard

A dashboard’s metrics are fetched concurrently — one that fails doesn’t take down the whole board: the --json response carries failed and errors[], and the rest still renders. With no name or --template, dashboard shows the company’s headline board; that command’s envelope lists the saved-board names it found under workspaces.

Exit codes

The numbers this command returns come with real caveats — don’t treat them as accounting truth:
  • Ecommerce aggregates come from rollup tables refreshed every ~10 min (only today/yesterday plus recently-touched days); detail data is live and can disagree with the summaries.
  • total_sales excludes product modifiers — it’s a GMV estimate, not accounting revenue. AOV inherits this.
  • cart_conversion is a creation-date cohort with no abandonment TTL — recent windows understate it; breakdown.abandoned is often 0.
  • sales_by_category double-counts (M:N relationship) — it won’t sum to total_sales.
  • The catalog metric family ignores from/to entirely (it’s a global snapshot).
  • ai_usage_cost in search metrics is Jelou’s internal cost.
  • Top-search-term totals exclude browse/sentinel queries, but total_searches includes them — the lists won’t add up.
  • You need the analytics:read scope (plus ecommerce:access for shop). Don’t pre-check it — let the API’s own 401/403 come back as-is.
If your agent is already going to fetch the rest of the workspace context, jelou context --agent doesn’t include metrics — this command is still the only entry point to company analytics.