Halton Meter Cloud

Cloud dashboards & analytics

Overview, reconciliation, audit, optimisation, executive, and per-project views. Project rollups, historical trending, and per-machine filters for teams running more than one paired daemon.

macOS 12+ · Python 3.11+ Reading time 2 min Updated May 11, 2026

The shapes you already know, across every machine you paired.

Every view at app.haltonmeter.com/[workspace]/* reads from the cloud’s Postgres mirror of your paired daemons’ SQLite data. The local terminal report (halton-meter report) and the cloud dashboard show the same shape — same project groupings, same cost model, same provider breakdown — just summed across machines instead of one machine at a time.

Overview

/[workspace]/overview is the default landing page after sign-in. It shows:

  • Headline numbers — today’s spend, this month, last month, the variance against budget if one is set.
  • Last-30-days area chart — daily spend, stacked by provider, with the workspace’s previous-period baseline overlaid.
  • Top 5 projects this period — sorted by spend, click-through to the per-project view.
  • Top 5 models this period — sorted by spend, useful for spotting unexpected expensive model use.
  • Sync status banner — green when every paired device is ACTIVE, amber when one is DEGRADED, red when any device is PAUSED.

This is the executive view by default. The headline numbers are read-only; clicking through goes to the relevant deep view.

Per-project view

/[workspace]/projects/[slug] shows everything about one project:

  • Spend over time — daily, weekly, monthly aggregations.
  • By developer — which paired machine contributed which share. If one developer’s spend doubles week-over-week, this is where you see it first.
  • By model — what the project is using under the hood.
  • Request volume — count of requests, with the cost line overlaid. Useful for spotting low-cost-per-request improvements that compound.
  • Recent requests table — paged, last 100 rows by default, searchable by provider_request_id. Click a row for the request trace at /[workspace]/traces/[id].

The project view also drives the PDF report. Pick a period (this month, last month, custom range), click “Generate PDF” — the backend renders a branded WeasyPrint PDF with the workspace’s logo if configured, the project’s hourly rate if set, and a methodology footer linking back to /docs/concepts/pricing. The PDF is a stable artifact you can attach to an invoice.

Reconciliation

/[workspace]/reconciliation is the load-bearing trust view. Three columns per period:

PeriodWhat you loggedWhat the provider billedVariance
2026-05 (May)$342.18$342.04$0.14
2026-04 (April)$298.55$298.50$0.05

The “what the provider billed” column comes from the provider’s billing API where we have one connected; otherwise from a manual paste of the billing statement total. The variance column is sage (green) when the delta is under 0.5%, amber (warning) when between 0.5% and 2%, and red (investigate) when above 2%.

Click into a row for the per-day breakdown and the per-request investigation table. The audit log links from any specific request that contributes to a divergence.

In practice the variance lives at a few cents on a $300 month. When it diverges meaningfully, the typical causes are:

  • Provider pricing change the daemon hasn’t yet picked up (rates.json updates in a public commit; see Pricing rates).
  • Provider promo credit that reduces the billed total below what the daemon logged.
  • Long-tail unattributed rows the daemon couldn’t tag, which the cloud’s attribution.tier_hit telemetry surfaces by tier.

Audit log

/[workspace]/audit shows every actor × event × resource tuple:

  • Captured requests — one row per synced API call (paged, searchable).
  • Membership events — invitations sent, accepted, revoked; role changes.
  • Device events — pairings, revocations, renames.
  • Config events — project rename, archive, policy changes.
  • Billing events — plan change, payment method update, seat change.

Every row has the actor (user or daemon), the event name, the affected resource, the timestamp, and a free-form details JSON. CSV-exportable for procurement / compliance handoff.

The audit log is the answer when a client asks “show us how this number was computed” — it gives them the per-request provenance.

Optimisation

/[workspace]/optimization runs continuous analysis over the last 30 days of synced data and quotes a number per recommendation:

Swap Claude Sonnet 4.6 → Claude Haiku 4.5 on acme-batch-summariser and save $42/month.

Based on 4,287 requests in the last 30 days. The summariser’s prompts are well under 8k tokens and the model’s responses do not currently require Sonnet’s longer-context handling. Confidence: high. Click to see sample requests.

Recommendations come from realised usage patterns — not synthetic benchmarks. The optimisation catalog (/[workspace]/optimization/catalog) lists every check that has fired historically and lets you suppress checks for specific projects.

The “Realised savings” view tracks money saved against recommendations you have accepted, so you can quote a concrete number back to the team or the client.

Executive view

/[workspace]/executive is the page to send to a CFO. Larger fonts, fewer charts, the headline numbers and the period-over-period change. Includes:

  • This-month spend, last-month, year-to-date.
  • Top 3 projects with their share of total spend.
  • Variance against reconciliation (the trust signal).
  • A signed PDF “executive summary” export with the same content, suitable for board packs.

Cost centers and clusters

/[workspace]/cost-centers and /[workspace]/clusters let you group projects into business units (e.g. “Client Work”, “R&D”, “Internal Tools”) and roll up across them. Useful for orgs that bill different client engagements through the same workspace.

Clusters are a similar grouping at a different level — group requests by request shape (the prompt_hash field) to find duplicates, caching opportunities, or accidental loops.

Filtering

Every view supports the same filter rail:

  • Date range — last 24h, last 7d, last 30d, this month, last month, custom.
  • Provider — multi-select Anthropic, OpenAI, Gemini, xAI.
  • Model — multi-select per provider.
  • Project — multi-select project slugs.
  • Developer / device — multi-select paired machines.
  • Cost center — when configured.

Filter state is persisted to URL query parameters so a filtered view is shareable.

Exporting

Three exports today:

  • PDF reports — per-project from the project view; executive summary from the executive view; both branded with the workspace name.
  • CSV — the recent-requests table on any view exports the visible rows as CSV.
  • JSON — the API surface at https://api.haltonmeter.com/v1/[workspace]/... returns everything the dashboard reads. Auth via the workspace’s API key (/[workspace]/settings/advanced → “API keys”).

Scheduled S3 / GCS export is on the Team plan roadmap (see Build plan).

See also