RevOps Analytics, Data & Reporting · Sprout Solutions
Sign in with your Sprout Google account to continue. Access is restricted to approved users only.
RADAR
RevOps Analytics, Data & Reporting
Sprout Solutions · shared.revops · Databricks
Not Connected
🗄️ Database
📖 DataPedia
📊 Dashboard Studio
📱 Dashboards
RADAR
RevOps Data & Analytics Resource
Your central hub for Databricks data, metric definitions, dashboard templates, and live team dashboards.
🗄️
Database Explorer
Browse all shared.revops tables, explore schemas, and connect your Databricks workspace. Gold, silver, and lookup layers all in one place.
EXPLORE TABLES →
📖
DataPedia
Official metric definitions, business rules, date-column logic, and approved KPIs. The single source of truth for how every number is calculated across all dashboards.
VIEW DEFINITIONS →
🎛️
Dashboard Studio
Build a new dashboard from scratch — SQL templates, filter references, and a step-by-step Claude prompt that generates all project files instantly.
START BUILDING →
📱
Team Dashboards
Browse all live dashboards built by the team — Channels, Marketing, Pipeline, and more. Click any card to open the dashboard directly.
BROWSE DASHBOARDS →
RADAR v2.0 · shared.revops · Databricks
📡 Connect Your Dashboard
All tables live in shared.revops on Databricks. Use gold_monthly_exec_summary for standard dashboards — all KPIs are pre-computed. Use silver tables for custom drill-downs.
⚡
Power BI
Azure Databricks connector → Direct Query or Import
📊
Databricks SQL Editor
Query directly in the Databricks workspace
📗
Excel
ODBC connector → pull data into Excel sheets
🔗
Other BI Tools
Tableau, Looker, Metabase via JDBC/ODBC
🤖
AI Tools
Claude, ChatGPT, Gemini → generate dashboards from data
🔍
5 tables
📖 DataPedia
Centralized metrics dictionary — approved definitions, formulas, and data sources
✅ 48 Approved Metrics
🔍
48 metrics
🎛️ Dashboard Studio
Build, publish, and iterate on RevOps dashboards — metric definitions, SQL templates, step-by-step publishing guide, and a Claude prompt generator connected to shared.revops.
🛠️ DIY Dashboard
📤 How to Publish
🔧 Filters
💾 SQL Templates
💾 SQL Templates — 26 Reference Queries
All queries use Databricks SQL syntax against shared.revops.
💡 Tip: Copy any query and paste it into Claude alongside your dashboard request. Claude will use these as the reference logic to calculate metrics correctly — no need to re-explain the business rules.
🔧 Recommended Filters / Slicers
Date Basis Selector
If your BI tool supports parameter-driven date field switching, expose a selector with these options:
Projected Close Date → pipeline / TMRR metricsClose Date → Won, Revenue, Avg Deal ValueCreate Date → Leads, Channel, Conversion, Velocity
Important: Do not mix date bases in a single visual. Each metric section has its own date basis. Mixing them produces incorrect cohort counts.
🤖 Claude Prompt — RevOps Dashboard Builder
This tab has moved — see 🏗️ How to Build → Step 4 for the updated Claude prompt and publishing guide.
🐙 GitHub Guide
This tab has moved — see 🏗️ How to Build for the full step-by-step guide including GitHub setup, publishing, and auto-refresh.
🤖 Claude Prompt — RevOps Dashboard Builder
Copy this prompt into Claude to generate a live HTML dashboard connected to your Databricks tables.
📋 RevOps Dashboard Prompt — paste into Claude
You are a RevOps Data Analytics Engineer building a STANDALONE HTML DASHBOARD FILE for Sprout Solutions.
Your output must be a single self-contained HTML file (HTML + CSS + JavaScript all in one file) that displays RevOps KPIs as an interactive dashboard. Use Chart.js (via CDN) for all charts and visualizations. Do NOT output a Databricks notebook, Power BI report, or Python script — the deliverable is always an HTML file the user can open in any browser.
Your goal is to create a production-ready HTML dashboard using standardized RevOps data models, business logic, and approved metric definitions.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔌 DATABRICKS LIVE CONNECTION (REQUIRED)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The dashboard MUST include a live Databricks connection using the REST API:
Endpoint: POST https://{hostname}/api/2.0/sql/statements
Auth: Bearer {personal_access_token}
Body: { "warehouse_id": "{warehouse_id}", "statement": "{sql}", "wait_timeout": "30s" }
Connection setup:
• On first load, show a small settings panel asking for: Databricks Hostname, HTTP Path, and Personal Access Token
• Save these to localStorage so the user only enters them once
• Show a connection status badge (🟢 Live / 🔴 Not Connected)
Data loading:
• On page load, automatically fetch live data from Databricks using the SQL queries
• Show a loading spinner while fetching
• If connection is not configured, fall back to hardcoded sample data and show a "⚠️ Using sample data" notice
Refresh:
• Include a "🔄 Refresh Data" button in the header that re-runs all queries and updates all charts
• Include an auto-refresh toggle (every 30 minutes) the user can enable/disable
• Show a "Last updated: {timestamp}" label next to the refresh button
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧱 DATA PLATFORM
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
USE CATALOG shared;
USE SCHEMA revops;
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🥇 GOLD TABLES (PRIMARY — ALWAYS USE FIRST)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• shared.revops.gold_monthly_exec_summary → pre-aggregated KPIs (PRIMARY)
• shared.revops.gold_targets → targets (MRR, QL, Won, EF MRR)
• shared.revops.datapedia_approved → approved metric definitions
🥈 SILVER TABLES (ONLY FOR DRILLDOWN OR MISSING METRICS)
• shared.revops.silver_deals → 1 row per deal
• shared.revops.silver_line_items → product-level MRR
• shared.revops.silver_company → company attributes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ CORE DATA RULES (STRICT)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. EXCLUDE RENEWALS (always):
WHERE LOWER(COALESCE(deal_name,'')) NOT LIKE '%renewal%'
2. SEGMENT STANDARDIZATION:
CASE WHEN UPPER(segment) = 'MICRO' THEN 'SME' ELSE segment END
3. LEAD-BASED FUNNEL LOGIC (FINAL):
MKT INBOUND FUNNEL (department_source_clean = 'MKT Inbound'):
All metrics cohorted by CREATE DATE.
Funnel Stage | Logic
─────────────────────────────────────────────────────────────
MQL | department_source_clean = 'MKT Inbound'
| AND qualified_lead = 'Yes'
| AND pipeline_name IN ('Sales Pipeline', 'Unified Channel Pipeline')
| Filtered by: create_date
SQL | All MQL deals WHERE client_journey_stage <> 'MQL'
| (any stage that has progressed past MQL)
Won Leads | All MQL deals WHERE client_journey_stage = 'Customer'
| Filtered by: create_date (same cohort as MQL)
Lost Leads | All MQL deals WHERE client_journey_stage = 'Closed Lost'
UQL | department_source_clean = 'MKT Inbound'
| AND pipeline_name = 'PH Upsell Pipeline'
| No qualified_lead filter required
| Filtered by: create_date
⚠️ MQL = MKT Inbound. Always apply department_source_clean = 'MKT Inbound' for MQL metrics.
⚠️ SQL is NOT stage = Opportunity — it is any stage EXCEPT 'MQL'
⚠️ Won is cohorted by create_date, NOT close_date
⚠️ Always use DISTINCT deal_id for counts
4. DATE LOGIC:
Pipeline (TMRR) → projected_close_date
Won / Revenue (general) → close_date
MKT Inbound Funnel (MQL/SQL/Won/UQL) → create_date
5. MRR LOGIC:
mrr → recurring revenue
ef_mrr → Embedded Finance (ReadyCash + ReadyWage)
6. DEPARTMENT SOURCE: Always use department_source_clean (NOT raw department_source)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 GOLD TABLE PRE-AGGREGATED FIELDS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
gold_monthly_exec_summary already includes (renewal-excluded, funnel-aligned):
qualified_leads, sales_qualified_leads, won_deals, lost_deals, dq_leads,
won_mrr, won_ef_mrr, won_amount, avg_deal_size, avg_deal_velocity, mrr_in_pipeline
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 TARGET LOGIC
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Join gold_targets using: metric_month, pipeline_name, segment, department_source_clean
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧠 APPROVED METRIC DEFINITIONS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• MQL → COUNT(DISTINCT deal_id) WHERE department_source_clean = 'MKT Inbound' AND qualified_lead = 'Yes'
AND pipeline_name IN ('Sales Pipeline','Unified Channel Pipeline') | date basis: create_date
• SQL → COUNT(DISTINCT deal_id) from MQL base WHERE client_journey_stage <> 'MQL'
• Won Leads → COUNT(DISTINCT deal_id) from MQL base WHERE client_journey_stage = 'Customer' | date basis: create_date
• Lost Leads → COUNT(DISTINCT deal_id) from MQL base WHERE client_journey_stage = 'Closed Lost'
• UQL → COUNT(DISTINCT deal_id) WHERE department_source_clean = 'MKT Inbound'
AND pipeline_name = 'PH Upsell Pipeline' | no qualified_lead filter | date basis: create_date
• MQL TMRR → SUM(mrr) from MQL base using projected_close_date
• SQL TMRR → SUM(mrr) where client_journey_stage = 'Opportunity'
• Won MRR → SUM(mrr) from Won base | date basis: create_date
• EmFi MRR → SUM(ef_mrr) from Won base
• Avg Deal Value → won_mrr ÷ won_deals
• Deal Velocity → AVG(deal_velocity_days)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏗️ BUILD REQUIREMENTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Use GOLD tables first; join with targets where needed
2. Use SILVER only for drilldowns or missing metrics
3. Always apply lead-based funnel logic (qualified_lead = 'Yes')
4. Always exclude renewals
5. Always use standardized segment + department_source_clean
6. Align date logic per metric type
🎛️ STANDARD FILTERS TO INCLUDE:
Date range | Pipeline name | Segment (SME/ENT) | Department source clean
Channel source | Sales rep | HubSpot team | Deal type
🎨 OUTPUT FORMAT — Return ONE standalone HTML file containing:
1. A fully styled, interactive dashboard (HTML + CSS + JS in one file)
2. Chart.js charts loaded via CDN (bar, line, donut as appropriate)
3. KPI scorecards / summary tiles at the top
4. Live Databricks connection (REST API) with localStorage credential storage
5. "🔄 Refresh Data" button + auto-refresh toggle (30 min) + "Last updated" timestamp
6. Loading spinner while fetching; graceful fallback to sample data if not connected
7. Connection status badge (🟢 Live / 🔴 Not Connected / ⚠️ Sample Data)
8. Filter dropdowns for: Date range | Pipeline | Segment | Department Source
🚫 DO NOT:
• Output a Databricks notebook, Python script, or Power BI report
• Use raw HubSpot logic
• Redefine metrics outside datapedia_approved
• Mix date logic across metric types
• Include renewal deals
• Ignore the qualified_lead filter
• Use raw department_source field
CONNECTION DETAILS (fill in locally — do not share):
• Server Hostname: [YOUR_SERVER_HOSTNAME]
• HTTP Path: [YOUR_HTTP_PATH]
• Personal Access Token: [YOUR_PAT]
Security reminder: Never paste your actual Databricks PAT token into a public AI tool. Use the [YOUR_PAT] placeholder in the prompt, then fill it in locally in the generated file.
Tips for Best Results
Always paste DESCRIBE TABLE output
Claude needs real column names. Run DESCRIBE TABLE in Databricks SQL Editor and paste the output to prevent hallucinated columns.
Start with gold table
Use gold_monthly_exec_summary first. Simpler queries, faster responses, and all KPIs are pre-computed.
Be specific about charts
Say "bar chart of Won MRR by month, line for target" instead of "make a dashboard." Specificity = accuracy.
Provide approved definitions
Include the DataPedia definitions in your prompt so Claude uses the correct business logic, not its own assumptions.
🐙 Publish Your Dashboard to GitHub Pages
Once Claude generates your HTML dashboard, follow these steps to publish it as a shareable web app — no server, no cost, accessible from any browser.
How it works: Claude generates a single .html file. You upload it to GitHub and enable GitHub Pages — it becomes a live URL you can share with your team. Anyone with the link can open it, enter their Databricks credentials, and see live data.
Step 1 — Generate your dashboard
1
Copy the Claude Prompt
Go to the Claude Prompt tab → click Copy Prompt. Open a new Claude conversation and paste it.
2
Ask Claude to build your dashboard
Tell Claude what you need, e.g.: "Build a monthly MRR and funnel dashboard by segment and pipeline." Claude will return a complete HTML file.
3
Save the HTML file
Copy Claude's output → paste into a text editor (VS Code or Notepad) → save as index.html.
Step 2 — Publish to GitHub Pages
4
Create a GitHub repository
Go to github.com → + → New repository. Give it a name (e.g. revops-dashboard). Set visibility to Private if your team has a paid GitHub plan, otherwise Public. Initialize with a README.
5
Upload your index.html
In the repo, click Add file → Upload files. Upload index.html. Commit the changes.
6
Enable GitHub Pages
Go to Settings → Pages. Under Source, select Deploy from a branch → main → / (root). Click Save.
7
Share your live URL
After ~1 minute your dashboard is live at:
https://[your-username].github.io/[repo-name]/
Share this link with your team. Each person enters their own Databricks credentials on first visit — saved to their browser only.
Step 3 — Update your dashboard
8
Push updates anytime
When you generate an improved version from Claude, replace index.html in the repo. GitHub Pages republishes automatically within ~1 minute.
⚠️ Security note: Never hard-code your Databricks PAT token inside the HTML file. The generated dashboard stores credentials in localStorage on the user's own browser — this means the PAT is never exposed in the source code. For team-wide access, each user connects with their own PAT.
💡 Tip — Auto-refresh: The generated dashboard includes a 🔄 Refresh Data button and an optional auto-refresh every 30 minutes toggle. Users can enable it to keep their dashboard live without manually reloading.
📤 How to Publish Your Dashboard
Built your dashboard with Claude? Follow these steps to publish it as a live shareable URL — for free, using GitHub Pages or Vercel — then submit it to RevOps to be added to the Dashboards gallery.
✅ Already built your dashboard? Good — you're in the right place. This tab covers how to get it live on the internet so anyone on the team can open it from a browser link, no setup required.
📌 Haven't built it yet? Go to 🛠️ DIY Dashboard first — pick your metrics, generate the Claude prompt, and download your project files. Then come back here.
Before You Start — What You Need
Your project files
The files Claude generated: fetch_data.py, dashboard.html, .env, .gitignore, refresh_and_push.bat, and the data/ folder.
Python 3.8+
Download from python.org. Check "Add to PATH" during install.
pip install requests
Git
Download from git-scm.com. Used to push files to GitHub.
GitHub Account
Free at github.com. Hosts your dashboard as a shareable URL.
Step 1 — Create a GitHub Repository
2
Create a new repo on GitHub
Go to github.com → + → New repository. Name it e.g. my-team-dashboard. Set to Private. Check "Add a README file". Click Create repository.
3
Clone to your computer
Open PowerShell and run:
git clone https://github.com/YOUR-USERNAME/YOUR-REPO-NAME.git
cd YOUR-REPO-NAME
Step 2 — Drop In the Generated Files
4
Create folders + paste in each file Claude generated
Create the subfolders first, then save each file from Claude's output into the correct location:
mkdir data
mkdir .github\workflows
Root folder
📄 fetch_data.py
📄 dashboard.html
📄 .env(fill in your tokens)
📄 .gitignore
📄 refresh_and_push.bat
Subfolders
📁 data/ (empty for now)
📄 .github/workflows/refresh.yml
5
Create .env with your Databricks credentials
Create a plain text file named .env in the project root. Never commit this file — it's already listed in your generated .gitignore.
Get these from: Databricks → SQL Warehouses → your warehouse → Connection Details. Generate a PAT under Settings → Developer → Access Tokens.
Step 3 — Test Locally First
6
Run fetch_data.py to verify your Databricks connection
pip install requests
python fetch_data.py
Expected: Running: All Records... [N] rows (0 polls) → Done! Saved [N] records to data/dashboard.json Open data/dashboard.json to verify records look correct before proceeding.
Step 4 — Commit & Push
7
Push everything to GitHub
data/dashboard.json must be committed — GitHub Pages serves it to the browser. .env is already in .gitignore so it will never be committed.
Your dashboard is live after ~2 minutes. Share this link with your team.
Step 6 — Activate Auto-Refresh
Claude already generated both automation files. Use both options — they back each other up. Windows Task Scheduler runs from your machine; GitHub Actions runs from the cloud even when your laptop is off.
9
Option A — Windows Task Scheduler (schedule refresh_and_push.bat)
First, open refresh_and_push.bat and update the path to your actual project folder:
cd /d "C:\path\to\YOUR-REPO-NAME"
Then open Task Scheduler → Create Task:
• General: check "Run whether user is logged on or not" + "Run with highest privileges"
• Triggers: Daily, repeat every 8 hours — or set 3 specific times (8:30 AM, 1:30 PM, 5:15 PM)
• Actions: Start a program → point to refresh_and_push.bat
10
Option B — GitHub Actions (add Secrets so refresh.yml can run)
The .github/workflows/refresh.yml is already in your repo. Just add your credentials as GitHub Secrets so the Action can authenticate to Databricks:
Repo → Settings → Secrets and variables → Actions → New repository secret
Paste the same values from your .env file into each secret.
Step 7 — Verify It's Working
11
Test end-to-end
1. GitHub repo → Actions tab → Refresh Dashboard Data → Run workflow
2. Wait ~2 minutes for the run to complete
3. Open your GitHub Pages URL
4. Confirm 🟢 Live status badge appears (not Sample Data)
5. Change Start Date / End Date and click Apply Filters — KPIs should update instantly with no loading
Common Issues
Symptom
Cause
Fix
Dashboard shows Sample Data
data/dashboard.json not committed, or opened via file://
Run python fetch_data.py and git push. Locally, always open via serve.bat — Chrome blocks fetch() on file:// URLs
Currency shows ₱
HTML entity used in Chart.js label — Chart.js renders plain text, not HTML
Use the literal ₱ character in all Chart.js callbacks and tooltips
HTTP 401 from Databricks
PAT expired
Generate a new token; update .env and GitHub Secrets
wait_timeout error
Value out of range
Must be 5s to 50s (use 50s)
.env key has prefix
BOM added by PowerShell Out-File
Open .env with encoding='utf-8-sig' in Python
Filters don't update KPIs
Old pre-aggregated JSON format
Re-run fetch_data.py to generate raw-records format
GitHub Pages shows old version
Browser cache
Hard refresh: Ctrl + Shift + R
⚠️ Security: Never commit .env. Never hardcode your PAT in any file that goes to GitHub. GitHub Secrets are the safe way to store credentials for GitHub Actions.
📤 Vercel — Alternative to GitHub Pages (no Git required)
When to use Vercel: If you don't want to set up Git, Vercel lets you drag-and-drop your dashboard files and get a live URL in under 2 minutes. Free tier is more than enough.
Sign up with your GitHub, GitLab, or email. No credit card required.
2
Create a new project → drag your project folder
Drag your entire project folder (containing dashboard.html, data/, etc.) into the Vercel dashboard.
3
Set the root to your project folder, deploy
Vercel auto-detects it as a static site. Click Deploy — you'll get a yourproject.vercel.app URL in seconds.
4
Re-deploy whenever you refresh data
Run python fetch_data.py locally to update data/dashboard.json, then re-upload via Vercel CLI (vercel --prod) or re-drag to the dashboard.
➕ Submit to RADAR — Get Listed in the Dashboards Tab
Once your dashboard is live, submit the link to RevOps. After a quick review, it'll be added to the 📱 Dashboards gallery so the whole team can access it.
Opens your email client with all details pre-filled
🛠️ DIY Dashboard Builder
Select the metrics you need, configure your dashboard settings, and get a ready-to-use Claude prompt with exact DataPedia definitions, SQL templates, and filters — then publish it to GitHub Pages or Vercel.
1Pick Metrics
2Configure
3Get Prompt
Step 1 of 3 — Select Metrics v20260519j
Choose the metrics to include in your dashboard. Selected metrics will be included with their exact definitions, formulas, and SQL logic.
0 metrics selected
🔍
DQ Rate
Funnel% of leads marked Disqualified
Lead to Won Conversion %
FunnelPercentage of total leads that convert into Closed-Won deals.
Marketing Qualified Leads (MQL)
FunnelLeads qualified by Marketing using BANT with Probability to Buy ≥ 40
Outbound Qualified Leads (OQL)
FunnelLeads qualified by LDU Outbound using BANT with Probability to Buy ≥ 40
Qualified Leads (QL)
FunnelLeads qualified by Marketing/ LDU/ Sales
SQL Conversion Rate
Funnel% of Qualified Leads that become SQL
Sales Disqualified
FunnelDeals disqualified by Sales during demo stage
Sales Qualified Leads (SQL)
FunnelAlso known as SQL are leads that the Sales team will work on to convert them into clients.
Upsell Qualified Leads (UQL)
FunnelLeads qualified by Marketing/ CSM/ Sales
WON/ SQL
FunnelPercentage of Sales Qualified Leads (SQL/ACTIVE) that converted into Closed-Won deals. SQL count is based on customers that are currently active within the selected month.
Cost per Lead (CPL)
MarketingAverage marketing cost per lead generated
Attach Rate (Industry–Product)
ProductPercentage of companies in an industry that purchased a specific product.
Attach Rate (Product → Product)
ProductPercentage of companies that purchased Product B among companies that purchased Product A.
Attach Rate (Segment–Product)
ProductPercentage of companies in a segment that purchased a specific product.
Annual Recurring Revenue (ARR)
RevenueExpected yearly recurring revenue from signed clients
EF Monthly Recurring Revenue (EF MRR)
RevenueReadyCash/ ReadyWage monthly recurring revenue from signed proposal. Recognized only if contract term ≥ 12 months.
Monthly Recurring Revenue (MRR)
RevenueMonthly recurring revenue from signed proposal. Recognized only if contract term ≥ 12 months.
One Time Payment
RevenueOne-Time Payment represents revenue from line items billed as “One Time Payment” and non-OTP products with contract terms less than 12 months, treated as one-time equivalent revenue.
Total Contract Value (TCV)
RevenueFull contract value inclusive of recurring & one-time
Average Deal Size (ADS)
SalesAverage MRR of won deals
Average Deal Velocity (ADV)
SalesThe average number of days it takes to close a deal, measured from deal creation to deal close date.
Coverage Ratio
SalesDetermines the health of the sales pipeline relative to the sales target. The industry standard for the coverage ratio is at 5X the target for the full year and 3x for the quarter.
Lost Deals
SalesA deal pursued by sales but did not successfully close to becoming a client.
Pipeline MRR
SalesTotal MRR of all active pipeline deals
Quota Attainment %
SalesPercentage of assigned quota achieved by a rep or team.
Sales Churn Rate
Sales% of Contract Signed deals that did not proceed to Implementation within 60 days.
Upsell Rate
Sales% of existing customers that purchased additional products.
WON/ CLOSED
Sales% of won deals against all closed deals
Weighted Pipeline MRR
SalesExpected pipeline revenue based on deal probability
Won Deals
SalesDeals completed with a signed proposal
Implementation Fee
RevenueOne time payment revenue generated from Implementation fee
Step 2 of 3 — Configure Your Dashboard
Set the dashboard name, date filter, apply data filters, and choose what views to include.
Dashboard Name
Date Filter create_date / close_date
Data scope
Dashboard date filter style
Main Filters Applied globally to all queries
Pipeline pipeline_name
Lead Source / Department department_source_clean
Sub Filters Select which filters to add to the dashboard
Views to Include (select all that apply)
Dashboard is structured into 2–3 pages. Select which sections to include — deal table is always added on the last page.
Page 1 — Summary
Page 2 — Breakdown
Page 3 — Deal Details
Selected Metrics
Additional Notes Anything else the dashboard should take note of
Step 3 of 3 — Your Claude Prompt
Copy this prompt and paste it into Claude. It includes the exact metric definitions, formulas, and filters for each selected metric.
💡 Tip: Paste this prompt into Claude. It includes the exact DataPedia definitions, SQL templates, and filters for each metric — Claude will build the dashboard correctly on the first try.
🔌 Step A — Connect to Databricks
After Claude sends you the files
Download the artifacts Claude created, place them in a project folder, then run the data fetch script to connect to your Databricks warehouse.
1
Download all artifacts → place in your project folder
Save each file Claude created into one folder on your computer. Your folder should look like:
my-dashboard/
├── fetch_data.py
├── dashboard.html
├── .env ← fill this in next
├── .gitignore
├── refresh_and_push.bat
└── data/ ← create this empty folder
2
Open .env and fill in your Databricks credentials
Get these from Databricks → SQL Warehouses → RevOps_SQL → Connection Details. Generate your token at Settings → Developer → Access Tokens.
DATABRICKS_HOST=adb-XXXXXXXXXXXXXXXX.XX.azuredatabricks.net
DATABRICKS_HTTP_PATH=/sql/1.0/warehouses/XXXXXXXXXXXXXXXXX
DATABRICKS_TOKEN=dapi... ← paste your personal access token here
3
Run python fetch_data.py to pull live data
Open a terminal, navigate to your project folder, and run the script. It queries Databricks and saves data/dashboard.json. Takes ~10–30 seconds.
cd my-dashboard
python fetch_data.py
# You should see something like:
# ✅ silver_deals: 2,341 rows
# ✅ gold_monthly_exec_summary: 144 rows
# ✅ Saved to data/dashboard.json
4
Open dashboard.html in your browser — verify 🟢 Live
Double-click dashboard.html to open it locally. The header should show 🟢 Live and your real data. If it shows ⚠️ Sample Data, the JSON file is missing — re-run Step 3.
5
Publish to GitHub Pages or Vercel
Ready to share? Go to Dashboard Studio → 📤 How to Publish for the full step-by-step publishing guide — including how to submit it to the RADAR Dashboards gallery.
✏️ Step B — Update Your Dashboard
Always stay in the same Claude conversation where you built the dashboard — Claude already knows your data, metrics, and the code it wrote. How you ask depends on what you need:
💬 Just type it in chat
For quick tweaks — no generator needed. Just send a message in the same conversation.
✦ Change chart type or layout
✦ Move or resize a section
✦ Change colors or formatting
✦ Show numbers in ₱ format
✦ Add a filter for an existing column
✦ Highlight values above/below a threshold
✦ Fix something that looks wrong
🔄 Use the Update Request generator
When you need Claude to follow the exact business definition — the generator includes the right references automatically.
✦ Adding a new metric not in your original selection
✦ Changing how a metric is calculated
✦ Adding a metric with specific date logic (e.g. create_date vs close_date)
✦ Anything where the DataPedia definition matters
🔄 Update Request Generator
Generates a follow-up prompt to paste in the same Claude conversation. Automatically includes DataPedia definitions for any new metrics you select.
Select the new metric(s) to add — their DataPedia definitions will be included in the generated prompt:
Paste this into the same Claude conversation 👇
After Claude sends the updated artifact → download dashboard.html, replace the file in your folder, then press Ctrl + Shift + R to refresh. If on GitHub Pages, push the file and wait ~1 min.
📱 Team Dashboards
Dashboards built by the team using shared.revops data — browse, explore, and share yours.
🔍
➕ Submit Your Dashboard
Share your dashboard with the team — it will be added to the gallery after review by the RevOps team.
1
Generate your dashboard — go to Dashboard Studio → 🛠️ DIY Dashboard, copy the Claude prompt, and ask Claude to build your dashboard.
2
Publish to GitHub Pages — follow the steps in Dashboard Studio → 📤 How to Publish to get a live URL.
3
Send the following details to the RevOps team: • Dashboard name & short description • Your GitHub Pages URL • Your name / team • Metric categories covered (e.g. Finance, Funnel, Revenue)
4
RevOps will add it to this gallery — usually within 1–2 business days.
📩 Send submissions to: revops@sprout.ph
⚡ Databricks Connection
Credentials saved to your browser only — never sent anywhere except Databricks.