---
name: ltx-product-daily-report
description: "Generate LTX Studio product daily report with revenue, usage by segment (Enterprise, Pilot, Paying Non-Enterprise, Free), and DoD/DOW-avg comparisons. Use when: daily product standup, executive reporting, or when asked for 'yesterday's product numbers'."
tags: [reporting, daily-metrics, ltxstudio, product]
compatibility:
  - bq CLI installed and authenticated
  - GCP project access (ltx-dwh-explore for query execution)
metadata:
  author: dbeer
  version: "2.0"
  created: "2026-03-13"
---

# LTX Product Daily Report

## Overview

Daily snapshot of LTX Studio product health: revenue by segment, usage metrics (active users, generations, tokens, downloads), with day-over-day and day-of-week average comparisons.

**Slack channel:** `#ltx-product-auto-report`

## Instructions

### Step 1: Run the Query

```bash
bq --project_id=ltx-dwh-explore query --use_legacy_sql=false --format=pretty "$(cat queries/product_segment_metrics.sql)"
```

The query returns two result sets:
- **Part 1** (lines 1-277): Segment metrics — usage + revenue per segment with DoD% and DOW-avg%
- **Part 2** (lines 282+): Sales funnel — leads, meetings, opportunities, pipeline

### Step 2: Format Output

Format per `references/report-template.md`. Key columns: `segment`, `active_users`, `image_generations`, `video_generations`, `downloads`, `token_consumption`, `active_orgs`, `net_revenue`, `gross_revenue`, plus `*_dod_pct` and `*_dow_avg_pct` comparison columns.

### Step 3: Highlight Anomalies

Flag any metric with >50% DoD or DOW-avg deviation.

## Context & References

### Shared Knowledge (Read First)
- **`shared/product-context.md`** — LTX Studio overview, user types, business model

### Query Files
- **`queries/product_segment_metrics.sql`** — Main product report query

### Reference Materials
- `references/report-template.md` — Output formatting example

## Constraints

### DO NOT
- Run queries without `--project_id=ltx-dwh-explore`
- Forget `time_granularity = 'day'` filter on revenue table
- Count video generations without `action_category = 'generations'` filter
- Use `is_enterprise_user` flag — use org-based enterprise logic
- Skip partition pruning (use `date(action_ts) >= ...`)

### DO
- Use `date(action_ts)` for partition pruning on usage table
- Validate Total row = sum of all segments (sanity check)
- Flag anomalies > 50% DoD or DOW-avg deviation
- Use `SAFE_DIVIDE` for all percentage calculations
- Report both press count AND output count for generations

## Examples

```
User: "Product daily report for yesterday"
User: "How did product metrics look yesterday?"
User: "Run the product report"
```
