Skip to content

Compare metrics and find groups

In Analytics → Compare metrics, choose a period, video, and environment. Select a dimension and groups A/B; A can be the entire population. The comparison shows thirteen metrics, the B−A difference, and valid/selected coverage. All measurements expands the available measurements for each metric.

With data:read permission and the server client:

const comparison = await orilla.data.metrics.comparison({
timeframe: ["24:hours"],
dimension: "browser",
value: "Chrome",
});
for (const group of comparison.data) {
console.log(group.metric, group.items, group.orilla);
}
const unknownBrowser = await orilla.data.metrics.comparison({
timeframe: ["24:hours"],
dimension: "browser",
missing: true,
});

value selects a literal, including an empty string. missing: true selects absence; they cannot be combined. The text __empty__ remains a literal. Available dimensions are those Orilla collects; missing geolocation or labels are not invented.

Each metric preserves its time population. Views, viewers, and time use the start; quality uses the end of completed views. The query compares a shared snapshot, with explicit unknowns. A zero count does not turn an empty distribution into a measured zero.

Select one of ten quality metrics and its avg, median, or 95th measurement:

const quality = await orilla.data.metrics.insights("video_startup_time", {
timeframe: ["24:hours"],
measurement: "95th",
});
console.log(quality.orilla.baseline, quality.orilla.coverage);
for (const row of quality.data) {
console.log(row.filter_column, row.filter_value, row.negative_impact_score);
}

Orilla’s orilla.cohort-impact.v1 algorithm weights the difference between the population and group by its share of valid measurements. A negative score indicates a worse value relative to the population; bitrate reverses the direction. This is not causality, statistical significance, or another platform’s private algorithm. Different dimensions overlap: do not add their scores.

Choose Views, Estimated viewers, or Playing time:

const volume = await orilla.data.metrics.insights("views", {
timeframe: ["24:hours"],
measurement: "count",
});
await orilla.data.metrics.insights("unique_viewers");
await orilla.data.metrics.insights("playing_time", { measurement: "sum" });
const views = await orilla.data.views.list({
timeframe: [volume.timeframe[0], volume.timeframe[1]],
aggregation: "view_start",
dimension: "browser",
value: "Chrome",
});

With count/sum, larger contributions appear first and orilla.metric_share is reported. Distinct viewers can appear in multiple groups: their shares cannot be added. The global total uses distinct viewers across the population.

playing_time also supports count, avg, median, and 95th. Distributions measure a weighted duration deviation; a negative score means greater duration, without a quality judgment. This algorithm is identified as orilla.volume-distribution.v1.

View playbacks preserves the insight’s two timestamps and uses view_start for volume and view_end for quality. Reuse these dates when paginating with the SDK. The interval is preserved, rather than a snapshot across requests: completions or corrections can change results. When the retention margin expires, refresh insights and reopen the group.

Both families exclude still-active views and unknown data from calculations that need them. Retention is 30 days; the default period is 24 hours. Limits are 100,000 views, 10,000 insight groups, and five seconds per SQL statement. Exceeding limits returns 413; timeout returns 503. Results are not silently truncated.

Readers can query; switching environments discards previous results. For current signals, follow monitoring; for storage and bytes, see Usage.