Dashboard & Metrics
The Praevis dashboard gives you a live view of your inventory performance — fill rate, revenue, latency, and per-supply source breakdowns, updated every 5 seconds.
Metrics ribbon
The top ribbon shows platform-wide (or partner-wide) stats for the selected time period:
| Metric | What it means |
|---|---|
| RPS | Bid requests per second arriving at the exchange |
| Auctions | Total auctions run in the period |
| Fill Rate | % of auctions where a valid bid was returned and a creative was served |
| Revenue | Supply source revenue in the period (clearing price × exchange share going to you) |
| P50 Latency | Median auction-to-response time |
| P95 / P99 Latency | Tail latency — what slow auctions look like |
Time period selector
| Period | Shows |
|---|---|
| 1h | Last 60 minutes, 1-minute buckets |
| 6h | Last 6 hours, 5-minute buckets |
| Today | Current calendar day (UTC), hourly buckets |
| 24h | Rolling 24 hours, hourly buckets |
| 7d | Last 7 days, daily buckets |
| 30d | Last 30 days, daily buckets |
There is a ~60-second lag between an auction completing and it appearing in the dashboard. The stream aggregator batches auction events into 60-second buckets. Live RPS updates every 5 seconds via WebSocket.
Supply source breakdown table
Below the ribbon, the Supply Source Breakdown table shows per-supply source stats:
| Column | Description |
|---|---|
| Supply Source | Name and Publisher ID |
| Impressions | Filled auctions (won + creative served) |
| Fill Rate | Filled / total requests for this supply source |
| eCPM | Effective CPM = (revenue / impressions) × 1,000 |
| Revenue | Total supply source revenue in the period |
| Avg Latency | Mean auction time for this supply source’s requests |
Click any supply source row to see a detailed view with hourly breakdown and DSP win breakdown.
Revenue tracking — how it works
Revenue shown in the dashboard is in cents, calculated from micro-dollar auction data:
Revenue (cents) = winning_price_micro_dollars ÷ 10,000The exchange margin is already deducted. What you see is your supply source payout.
Why micro-dollars? At high QPS, fractional cents matter. A CPM of $1.48 = 0.148 cents per impression = 148 micro-dollars. Storing as micro-dollars prevents rounding errors that would accumulate across millions of auctions.
Data flow — auction to dashboard
Supply source sends request
↓
Praevis runs auction (<10ms)
↓
Winning bid stored in Redis (live:partner:*:revenue_micros)
↓
Stream aggregator batches events every 60s
↓
Aggregated stats written to Redis time-series buckets
↓
Dashboard WebSocket pushes update every 5s
↓
You see updated statsTotal lag: Auction completes → dashboard updates = ~60–65 seconds maximum.
Reading latency percentiles
| Percentile | Meaning |
|---|---|
| P50 | Half of auctions complete faster than this — your “normal” speed |
| P95 | 95% of auctions complete faster — your reliable upper bound |
| P99 | 99% of auctions complete faster — rare slow cases (usually DSP timeouts) |
Target: P50 <5ms, P95 <20ms, P99 <50ms. P99 spikes usually indicate a DSP approaching timeout (150ms).
API access
Pull the same data programmatically:
# Publisher metrics
GET /api/metrics/publisher/{PUBLISHER_ID}?period=24h
# Platform-wide
GET /api/metrics?period=7dResponse:
{
"period": "24h",
"publisher_id": "pub-uuid",
"impressions": 142580,
"fill_rate": 0.847,
"revenue_cents": 21087,
"ecpm_cents": 1478,
"p50_ms": 3,
"p95_ms": 14,
"p99_ms": 28
}