Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ When the user makes a request, identify which agent should handle it, read its S
| If the user asks to... | Activate | Skill file |
|---|---|---|
| Create a dashboard, build a dashboard, set up analytics for a feature | **Dashboard Builder** | `agents/dashboard-builder/SKILL.md` |
| Quick enterprise usage check (SQL-only, no Hex trends or Gong needed) — enterprise usage, account health, how enterprise accounts are doing | **Enterprise Reporter** | `agents/enterprise-reporter/SKILL.md` |
| Full weekly enterprise report with Hex dashboard trends, comprehensive enterprise analysis with Gong + Hex + BigQuery, enterprise weekly report with 4-week trends | **Enterprise Weekly Report** | `agents/enterprise-weekly-report/SKILL.md` |

If the request doesn't clearly match an agent, ask the user which they need.

Expand Down Expand Up @@ -42,10 +44,10 @@ Every agent reads from these files. They are the single source of truth — do n
12. **Validate column names against actual schema** before running queries. Documentation may be outdated.
13. **Check data quality during query execution.** Inspect results for NULLs, zero/low row counts, date gaps, invalid values (negative counts, retention increases, funnel violations), and schema mismatches. Report issues to users with clear warnings.
14. **Always use EXACT segmentation CTEs from `shared/bq-schema.md`** without modification. Never simplify or skip steps:
- **Enterprise Users:** Must use the two-step pattern (inner CTE + outer SELECT with " Pilot" suffix logic)
- **Enterprise Users:** Must use the two-step pattern (`ent_agg` CTE from `ltxstudio_users` + `enterprise` CTE joining `ltxstudio_enterprise_users`). Includes `user_type` (SSO/Code). See bq-schema.md Enterprise Users section.
- **Heavy Users:** Must include all filters (4+ weeks active, token consumption, etc.)
- **Full Segmentation:** Must follow hierarchy (Enterprise → Heavy → Paying → Free)
- Copy the entire CTE structure from `bq-schema.md` lines 441-516, do not improvise or simplify
- Copy the entire CTE structure from `bq-schema.md`, do not improvise or simplify

## MCP Connections

Expand Down
469 changes: 469 additions & 0 deletions agents/enterprise-weekly-report/SKILL.md

Large diffs are not rendered by default.

162 changes: 162 additions & 0 deletions agents/enterprise-weekly-report/references/enterprise-context.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
# Enterprise Context

## Enterprise Users CTE

The canonical enterprise users CTE lives in `shared/bq-schema.md` (Enterprise Users section). **Always use that exact CTE verbatim** — do not simplify or rewrite it.

The CTE produces: `lt_id`, `org` (with " Pilot" suffix for non-annual orgs), `user_type` (SSO/Code), `email`, `first_active_ts`, `first_active_ts_tokens`.

### How Org Classification Works
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we will need to update it manually - isnt it better to have a logic about it?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I would add it under /shared as a specific file and refer it here, as we probably will use it in the future as well in other agents.


- **Annual orgs** (hardcoded list): `Indegene`, `HearWell_BeWell`, `Novig`, `Cylndr Studios`, `Miroma`, `Deriv`, `McCann_Paris` — org name used as-is
- **Pilot orgs** (all others): org name gets " Pilot" suffix (e.g., "Monster Pilot", "GM Pilot")
- **McCann split**: `McCann_NY` and `McCann_Paris` are distinct orgs (COALESCE logic)
- **Excluded**: Lightricks, Popular Pays, None
- **User type**: SSO (has `organization_name`) vs Code (redeemed code)

### Tables Used

| Table | Purpose |
|-------|---------|
| `ltx-dwh-prod-processed.web.ltxstudio_users` | User attributes, enterprise name resolution |
| `ltx-dwh-prod-processed.web.ltxstudio_enterprise_users` | Enterprise user membership (JOIN filter) |
| `ltx-dwh-prod-processed.web.ltxstudio_user_all_actions` | Event-level actions (LT team pre-excluded) |
| `ltx-dwh-prod-processed.web.ltxstudio_enterprise_calls` | Gong call data with AI-analyzed insights per org |

### Enterprise Calls Table (`ltxstudio_enterprise_calls`)

Contains Gong call recordings matched to enterprise orgs, with AI-analyzed fields:

**Identifiers & Metadata:**
- `conversation_key` — Natural key for the call
- `call_started_at` — When the call started
- `organization_names` — REPEATED array of org names on the call (use UNNEST to flatten)
- `enterprise_participant_emails` / `enterprise_participant_names` — REPEATED arrays
- `title` — Call title/subject
- `call_spotlight_brief` — Gong AI summary of the call
- `clean_text_transcript` — Full transcript (plain text)

**AI-Analyzed Fields (all STRING, values include "Parse Error" for failed parsing):**
- `customer_sentiment` — "Positive/Excited", "Neutral/Professional", "Negative/Frustrated"
- `competitors_mentioned` — Comma-separated list or "None" (tracked: Runway, Freepik, Krea, Higgsfield, Weavy, Luma, Kling, Minimax)
- `primary_objection` — "Price", "Missing Feature", "Timing", "Authority", "Security", "None"
- `customer_pain_point` — Max 10 words describing the problem
- `missing_features` — Features the customer wishes existed
- `mentioned_*_feature` — "Yes"/"No" for: pitch_deck, collaboration, elements, retake
- `budget_discussion` — Amount/range or "Not Discussed"
- `is_decision_maker` — "Yes", "No", "Unclear"
- `next_steps` — Action items summary

**Query pattern:** UNNEST `organization_names` to join with org-level data:
```sql
SELECT org_name, ...
FROM `ltx-dwh-prod-processed.web.ltxstudio_enterprise_calls` c,
UNNEST(c.organization_names) AS org_name
WHERE c.call_started_at >= TIMESTAMP(@report_start_date)
```

**Important — Org Name Mapping:**
The `organization_names` field contains raw org names (e.g., "Monster", "NBC", "GM") without the " Pilot" suffix that the CTE adds. When correlating Gong call data with usage metrics, map raw names to their CTE equivalents:
- Raw "Monster" = CTE "Monster Pilot"
- Raw "Deriv" = CTE "Deriv" (annual, no suffix)
- Raw "McCann" → depends on McCann_NY / McCann_Paris split

## Hex Enterprise Dashboard

**URL:** https://app.hex.tech/lightricks_prod/app/LTX-Studio---Enterprise-Dashboard-031766Suw1qd6T5K733wDu/latest
**Project ID:** `01997093-d0d2-700f-9dcc-e624403815fe`
**MCP Server:** Hex MCP

The dashboard has 5 tabs providing interactive views of enterprise data:

| Tab | Scope | Metrics |
|-----|-------|---------|
| Annual Enterprise Data | Annual orgs | WAU, image/video gens, tokens, WoW trends, model mix, feature adoption |
| Pilot Enterprise Data | Pilot orgs | WAU, image/video gens, tokens, downloads, WoW trends |
| Image Generations Data | User-level | Per-user image gen counts, model used, tokens consumed |
| Video Generations Data | User-level | Per-user video gen counts, model used, tokens consumed |
| Download/Exports Data | User-level | Image/video downloads, project exports, download rates |

**Hex vs BigQuery differences:**
- Hex uses `griffin_enterprise_name_at_action` for org resolution — this field is NULL for Cylndr Studios; Hex joins through `ltxstudio_enterprise_users` as fallback
- Hex has PII restrictions — `email` and `full_name` are protected; users identified by `lt_id` + `email_domain`
- Hex provides 4-week trend windows vs BigQuery queries' 2-week window
- Hex org names use raw `organization_name` (e.g., "McCann", "General Motors"), not the CTE's suffixed names (e.g., "McCann Pilot", "General Motors Pilot")

## Org Reference

| Org | Type | Notes |
|-----|------|-------|
| McCann_Paris | Annual | Image-heavy (~88% Nano Banana 2), creative agency, 34-42 WAU, dominates token consumption (~73% of annual total) |
| Deriv | Annual | Financial services, 10-18 WAU, declining tokens (818K→410K), needs portrait video support |
| HearWell_BeWell | Annual | Single power user, 23% Veo 3 usage (highest of any org), volatile activity |
| Novig | Annual | Low activity (4 WAU), 86% Nano Banana 2, minimal video |
| Cylndr Studios | Annual | Small team (2-7 WAU), volatile usage, `griffin_enterprise_name_at_action` is NULL |
| Indegene | Annual | Healthcare, most balanced feature adoption (Elements 63%, Storyboard 38%, Retake 38%), ramping image generation |
| Miroma | Annual | Video surge (638% WoW spike), high LTX-2 adoption (14%), Script-to-Storyboard adopter (32%) |
| McCann Pilot | Pilot | Image-heavy (10K+ images), 6-11 WAU, highest download rate, separate from McCann_Paris |
| McCann_NY Pilot | Pilot | Low activity (1 WAU), sporadic usage |
| General Motors Pilot | Pilot | Video-heavy (~6.4M tokens total), VEO-3 dominant, enterprise security key differentiator |
| Meta Pilot | Pilot | High-volume evaluation (~6M tokens), 9-16 WAU, declining trend, split between VEO-3 and LTX-2 |
| Fanatics Pilot | Pilot | Sports collectibles, image-focused (6K images), 1-6 WAU, growing user base |
| Jazz Side Pilot | Pilot | New org, rapid ramp-up (600 video gens last week), high growth trajectory |
| Plarium Pilot | Pilot | Gaming, massive onboarding spike (1→30 WAU), recently activated |
| Disney Pilot | Pilot | Broadest pilot user base (7-13 WAU), moderate volumes, exploratory usage |
| EōS Fitness Pilot | Pilot | Print + digital imagery, 3-5 WAU, declining trend |
| Bent Image Lab Pilot | Pilot | Animation studio, 2 WAU, low volume but consistent |
| Bosch Pilot | Pilot | Minimal activity, intermittent usage |
| Comcast Advertising Pilot | Pilot | In training phase, near-zero generation activity |
| Telemundo Pilot | Pilot | Broadcasting, near-zero activity |
| Monster Pilot | Pilot | Energy drinks brand, pilot ended — zero recent activity |
| NBC Universal Pilot | Pilot | Broadcasting, pilot ended — zero recent activity |
| Craft Pilot | Pilot | New, single user, no generations yet |
| Eset Pilot | Pilot | Cybersecurity, pilot stopped |

## Key Business Context
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have it in shared

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

got it


- LTX shifted strategy in ~October 2025 to prioritize Enterprise over self-serve
- "Active" for enterprise = generated content (not just page views)
- McCann_Paris is distinctively image-focused (~70 images/user/week vs 5-10 videos)
- Deriv showed strong LTX-2 adoption but needs portrait video support
- Token costs vary significantly by model (Nano Banana 2 >> Flux >> LTX-2)
- Pilot orgs have time-limited evaluations — declining usage is a churn risk
- Gong call data provides qualitative context — sentiment, feature requests, pain points
- Real-time qualitative context comes from `#ltx-studio-enterprise` Slack channel (read last 7 days each report run)

## Model Distribution Benchmarks (from Hex Dashboard)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it going to live with us all the time?


Based on dashboard data, these are the typical model usage patterns:

| Model Group | Type | Typical Share | Notes |
|-------------|------|---------------|-------|
| Nano Banana 2 | Image | 47-88% of gens | Dominant image model across all orgs |
| Flux (Flux 2 Pro) | Image | 5-36% of gens | #2 image model, used for quality-critical work |
| Z-Image | Image | 1-6% of gens | Newer model, lighter usage |
| LTX-2 (Pro/Fast) | Video | 1-16% of gens | In-house video model, strongest at Miroma/Indegene |
| Veo 3 / Veo 3.1 | Video | 1-23% of gens | External video model, highest at HearWell_BeWell |
| Veo 2 | Video | <1% of gens | Legacy, declining |
| LTXV (13b) | Video | <1% of gens | Legacy, declining |

## Feature Adoption Benchmarks (from Hex Dashboard)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here as well..


| Feature | Adoption Range | Benchmark |
|---------|---------------|-----------|
| Gen Space | 63-100% | Core workflow — nearly universal |
| Elements | 20-63% | Moderate — highest at Indegene (63%), lowest at Novig (20%) |
| Script-to-Storyboard | 0-38% | Growing — zero at McCann_Paris/Cylndr, highest at Indegene (38%) |
| Retake | 7-38% | Lowest adoption — highest at Indegene/Cylndr (38%), lowest at Deriv (7%) |

## Qualitative Data Sources

1. **Gong calls** (`ltxstudio_enterprise_calls`) — Real-time, queried per reporting week. Shows customer sentiment, competitor mentions, feature interest, objections, and next steps.
2. **Hex Enterprise Dashboard** — Interactive dashboard accessible via Hex MCP. Provides 4-week trend windows, per-user drill-downs, model distribution charts, and feature adoption visuals. Use for trend depth beyond the 2-week BigQuery window and for cross-validation of metrics.

## Important Column Mappings

- `action_name_detailed` — Use for filtering event types (NOT `action_name`)
- `source_interaction_id` — Video press count (distinct count)
- `native_action_id` — Image press count (distinct count)
- `tokens_charged` — Tokens consumed per action
- `model_name` — Model user intended to use
- `fetch_result` — Success/failure of generation (NOT `result`)
- `page_workspace_name` — Workspace context (gen_space, storyboard)
Loading