e583f6b6befa79a03d6a68b74bcdaf4ab1c31693
Sase.tr has no monthly VIN quota — access is gated by plan.brandCount + user_brands assignments. The PRD's Faz 3 quota-centric metrics don't apply; this commit ships the 8 business signals that DO apply to that model. All queries are RO joins of query_logs to subscription/plan/brand. 1. Tier × decode volume (30d) — unique users, decode count, decodes/user, and success rate per plan. Plan derived from each user's most-recent active/trial subscription. 2. Brand-tier alignment — for plans with brandCount > 0, the fraction of decodes that landed on a brand the user actually has access to via user_brands. Low alignment = wrong tier or upsell signal. 3. Dormant payers — active subscription + no decode in the last 14 days. Sorted by lastDecodeAt ASC (most dormant first), 30 rows. 4. Empty-handed payers — active subscription + zero lifetime decodes. Onboarding-broken signal, sorted oldest start_date first. 5. Trial → paid funnel — bucket trial users by decodes-during-trial (0, 1–2, 3–5, 6–10, 11–25, 26+) and show the conversion rate (any subsequent active/cancelled subscription) per bucket. Answers "how many decodes is the aha moment". 6. Retention cohort — weekly signup cohorts (mature ≥30d), split by "had a successful decode in first 7 days" vs not; columns show 30d active rate per bucket and the retention lift (pp difference). 7. Power users — top 20 by 30d decode count: plan, decode count, brand diversity, top brand + occurrences, success rate. 8. Tier mismatch — brand-spesifik plan kullanıcıları whose 30d decodes include ≥3 hits on brands they don't have access to. Upsell candidates (or refund/downgrade conversation). All tables link emails to /projects/sase/users/[id] (existing detail page), so the dashboard is a "find users to talk to" tool, not just numbers. VIN dashboard header now has a "Business →" pill next to the time range picker. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Süper Panel
Internal admin panel — sp.semih.ai — Tailscale-only access.
Phase 0 skeleton: Next.js 16 + Better Auth (email/password + TOTP) + Prisma + Postgres + Redis. Deployed on Coolify, fronted by Traefik with Let's Encrypt (Cloudflare DNS-01).
See super-panel-prd.md for the full PRD.
Local dev
pnpm install
cp .env.example .env
# fill DATABASE_URL_PANEL, BETTER_AUTH_SECRET (32+ chars)
pnpm --filter @panel/web prisma:generate
pnpm dev
Production deploy
Pushes to main trigger Coolify deploy via webhook.
Deploy status
First production deploy: 2026-05-13. Live at https://sp.semih.ai (Tailscale only).
Description
Languages
TypeScript
99.2%
CSS
0.4%
Shell
0.2%
Dockerfile
0.2%