Ad-hoc questions
T1 · AUTONOMOUSPicks up "what was MRR last week by plan?" from #data-questions, writes SQL, runs on read-only role, replies with chart + query in 8-15 minutes.
Connect your warehouse (Snowflake / BigQuery / Postgres / Redshift). Cyborg learns your schema, picks up ad-hoc questions in #data-questions, writes the query, runs it on a read-only role, returns the answer with the chart and the SQL. Plus weekly metric digest, dashboard upkeep, and "why did X drop" investigations — without the 3-day backlog.
— CAPABILITIES
Cyborg-Analyst is read-only on your warehouse, write on the BI tools (Metabase / Superset / Looker / Mode). It cannot mutate prod. It can answer pretty much any question you ask in natural language.
Picks up "what was MRR last week by plan?" from #data-questions, writes SQL, runs on read-only role, replies with chart + query in 8-15 minutes.
Builds Metabase / Superset / Looker dashboards. Maintains existing ones (broken sources, deprecated metrics, stale filters). Owns dashboard hygiene.
Retention curves, signup funnels, activation cohorts, feature-adoption analysis. Standard outputs in #data-weekly.
Watches your top-30 metrics. When something drifts >2 stddev from baseline, opens an investigation thread automatically with first-cuts of "why."
Slice by every dimension (channel, geo, plan, version, device). Identify the segment driving the change. Posts findings + counter-checks before declaring a cause.
Monday 09:00: 1-page summary of MRR / DAU / activation / churn / LTV / CAC. WoW change, trend, alerts. Posted to #data-weekly + email.
Reads experiment config, computes effect size + significance + power, calls winner / inconclusive / harm with proper guardrails. Counters the "p-hack" reflex.
Adds new dbt models in PR (not direct push), updates schema docs, fixes broken tests, refactors stale models. Reviewed by your data lead.
Row-count checks, freshness checks, null-rate alerts, schema-drift alerts. Surfaces broken pipelines before stakeholders notice the dashboards are wrong.
Drafts board-deck slides, investor-update charts, internal QBR sections. Founder approves before send.
Maintains the metric dictionary (one source of truth for "what is MRR"). Resolves "why does this dashboard say X but that one says Y" disputes by tracing definitions.
Revenue / DAU / signup forecasts using prophet / ARIMA / your existing model. Always presented with confidence intervals + assumptions; founder signs off before external use.
— FLUENCY
Native connectors. SQL dialect-aware (Snowflake's QUALIFY, BigQuery's STRUCT, Postgres window functions — whatever your warehouse needs).
— TUESDAY · 09:00 → 18:00 IST
Anonymised activity log. Every query verifiable in their Snowflake query history (look for the cyborg-cda-004 session tag).
3 founders replied with follow-up questions on yesterday's digest. Cyborg answers all 3 in-thread within 25 min: chart + SQL + caveat.
Auto-detect: signup conversion −14% WoW on mobile-web. Opens investigation thread in #data-investigations. First slice: country breakdown.
14 dimension cuts run. Drop is 100% on Brazil mobile-web traffic. iOS app + Android app + desktop unaffected. Posts findings + 3 hypotheses for engineering to validate.
Kavya asks: "of users who hit the export-csv flow last month, how many returned in 7 days?" Cyborg answers in 9 min: 41.3% (n=2,847), with cohort table.
"Activation v3" Metabase dashboard broken since yesterday's fct_users schema change. Cyborg updates 4 questions, re-deploys. Pings #data-team.
Pauses scheduled queries. Long-running ones complete in background.
Opens PR: fct_export_events. Includes schema YAML, 4 tests (not_null, unique, accepted_values, freshness), description. Tagged data-lead for review.
Marketing's "new pricing page copy" experiment ended Sun. Cyborg pulls data: lift +3.1% signup, p=0.071, n=18,400 per arm. Calls "inconclusive, recommend extend or call no-effect."
"How many DE customers do we have, by ARR band?" 6 min later: chart, table, SQL link, with note "DE is GDPR-flagged, so no PII in this output."
Eng confirms hypothesis #2: Stripe.js 3DS flow timed out for ~30% of BR mobile carriers since Mon deploy. Hotfix deploying. Cyborg notes "monitor recovery in 24h."
Posts: 11 questions answered, 1 investigation closed, 1 dashboard fixed, 1 dbt PR opened, 1 A/B test called, 412 queries this week.
— REAL "WHY DID X DROP" INVESTIGATION · ANONYMISED
From auto-detected anomaly to root-cause confirmed. Real session, real SQL, names removed.
Daily anomaly scan flagged: signup-completion rate fell from 11.8% (28-day baseline) to 10.2% on Mon, then 9.4% Tue — a 2.6σ deviation. Mobile-web only; iOS / Android / desktop steady.
device_type: drop isolated to mobile-web. App + desktop steady.geo: drop concentrated in BR (~85% of total drop).browser: BR Chrome mobile + BR Safari mobile both affected. Not browser-specific.#data-investigations.Mon's checkout-v3 deploy upgraded Stripe.js from 3.x to 4.x. The new version honours stricter 3DS timeouts (30s default vs 60s previously). On slow BR mobile carriers, the 3DS challenge often takes >30s, causing the auth to fail silently. Users see "card declined" and abandon.
-- signup conversion by device + geo, last 14 days vs 28d baseline WITH daily AS ( SELECT DATE_TRUNC('day', started_at) AS d, device_type, country_code, COUNT(*) AS starts, SUM(CASE WHEN completed_at IS NOT NULL THEN 1 ELSE 0 END) AS completes FROM fct_signup_attempts WHERE started_at >= CURRENT_DATE - 42 GROUP BY 1, 2, 3 ) SELECT d, device_type, country_code, starts, completes, ROUND(completes / NULLIF(starts, 0) * 100, 2) AS conv_pct FROM daily WHERE device_type = 'mobile_web' AND d >= CURRENT_DATE - 14 ORDER BY d DESC, starts DESC LIMIT 200;
Confirmed from session-replay. It's Stripe.js 4.x — we shipped Mon. 3DS challenge timing out on TIM/Vivo carriers. Patching now. Good catch.
Recovery confirmed: BR mobile-web back to 11.4% conversion in last 30 min (vs 11.8% baseline). Closing investigation. Adding 3DS-timeout to monitored metrics so this doesn't take a week to catch next time. Postmortem doc draft in notion/postmortems/inv-184.
— INTEGRATIONS
Always its own dedicated read-only role on the warehouse (ANALYST_RO). Always tagged session so every query is traceable to Cyborg.
— FLAT MONTHLY · NO USAGE METER
Same model. Tier defines warehouse rows scanned, dashboard count, and forecasting authority.
Ad-hoc questions, dashboard upkeep, weekly digest. Single warehouse + 1 BI tool.
Full ownership of analytics. Investigations, dbt PRs, A/B test analysis. Most teams start here.
Cross-product. Forecasting. Board-deck data. Owns metric dictionary + governance.
14-DAY EVALUATION · 30-DAY MONEY-BACK · MONTH-TO-MONTH · CANCEL ANYTIME · See full pricing →
— DAY 1 → DAY 7
Analyst ramps quickest because the warehouse is already structured. Day 4 onward is real work.
Contract + DPA. Your data lead provisions ANALYST_RO role.
Founder + your data lead. Walk through warehouse, key tables, metric definitions, "questions that come up most."
Cyborg reads information_schema, dbt manifest, last 90 days of query history. Writes "what I understood" doc back, asks for clarification on 5-10 ambiguous tables.
Cyborg picks 5 already-answered questions from history, re-answers them privately, compares to ground truth. Calibrates style.
Goes live in #data-questions. Data lead reviews each answer for first 2 days, then progressively releases.
By Day 7, ad-hoc + dashboards + weekly digest run autonomously. Investigations + dbt PRs stay reviewed for first 30 days.
— DATA-LEAD QUESTIONS
No. The connector role is read-only by design (ANALYST_RO on Snowflake, roles/bigquery.dataViewer on BigQuery, analyst_ro on Postgres). The only "write" Cyborg can do is on the BI tool layer (dashboards, queries, collections) and on dbt via pull request. It cannot push to your dbt repo, run a model, or mutate any warehouse data. We can show you the IAM trail.
Three guards: (1) the query plan is validated against your dbt manifest before execution — if it references a column that doesn't exist, it never runs. (2) Cyborg posts the SQL alongside every answer, so anyone can check the join logic. (3) Every answer carries a confidence score; below 70%, it routes to your data lead instead of posting.
Cyborg respects your existing column-level security: if your ANALYST_RO role can't see PII, neither can Cyborg (no bypass). For aggregated outputs only, we add a default k-anonymity floor (no group with <5 users in any cell). For GDPR-flagged geos, PII is masked even in aggregates. See security.
No — that's calibrated during onboarding. Default thresholds are conservative (2σ + minimum sample size + minimum effect size). You can tighten further in the kickoff. Average customer gets 2-4 anomaly threads per week, not per day.
Cyborg's queries respect the same warehouse-cost guards your team uses (max scanned bytes, query timeout, cluster sizing). Plus it caches identical questions across the team — if 3 PMs ask "what was MRR last week?" within an hour, it runs once. Customers typically see warehouse spend go up 5-10% in exchange for 3-5x more questions answered.
It reads your dbt model descriptions, your metric dictionary, and your historical question/answer pairs. If your context is undocumented (lots of "active user" definitions floating around), Day 7 outputs will reflect that ambiguity. Onboarding includes 60-90 min of definition cleanup with your lead, which usually saves the team weeks of "which number is right" later.
It absorbs the ad-hoc question queue (typically 60-70% of an analyst's time). The strategic work — choosing what to measure, designing experiments, telling the story to the founder, deciding pricing — stays human. Most teams use Cyborg-Analyst so their senior analyst is freed for that strategic work, not to fire anyone.