// "Apache Superset dashboard automation for Finance SSC, BIR compliance, and operational analytics. Auto-generate dashboards, datasets, and charts. Tableau/Power BI alternative saving $8,400/year in licenses."
| name | superset-dashboard-automation |
| description | Apache Superset dashboard automation for Finance SSC, BIR compliance, and operational analytics. Auto-generate dashboards, datasets, and charts. Tableau/Power BI alternative saving $8,400/year in licenses. |
Transform Claude into an Apache Superset expert that creates enterprise BI dashboards automatically.
Auto-generate dashboards - BIR compliance, finance SSC, operational analytics
Create datasets - Optimized SQL from Supabase/Odoo
Build charts - 20+ visualization types with best practices
Apply templates - Pre-built dashboards for common use cases
Schedule refreshes - Automated data updates
Annual Savings: $8,400 (vs Tableau 10-user license)
When asked to create dashboards:
User asks: "Create BIR filing status dashboard"
Steps:
1. Connect to Supabase database
2. Create dataset: bir_filing_summary
3. Build charts:
- 1601-C monthly trends (timeseries)
- 2550Q status by agency (pivot table)
- ATP expiry calendar (table)
- Tax payable big number (KPI)
4. Apply filters: agency, period, status
5. Set refresh schedule: daily 6am
Result: Live BIR compliance dashboard
See examples/bir-dashboard.md.
User asks: "Create dataset for expense analytics"
Steps:
1. Write SQL query joining Odoo tables
2. Add calculated columns
3. Set proper column types
4. Configure cache timeout
5. Add metrics (SUM, AVG, COUNT)
6. Define dimensions (groupby fields)
7. Test query performance
Result: Performant dataset for charts
See examples/create-dataset.md.
User asks: "Show AP aging in Superset"
Steps:
1. Select chart type: Pivot Table v2
2. Configure:
- Rows: Vendor name
- Columns: Aging buckets
- Metrics: Sum(amount)
- Color scale: Red (overdue) to Green (current)
3. Add conditional formatting
4. Set refresh interval
Result: Interactive AP aging analysis
See examples/chart-selection.md.
{
"dashboard_title": "BIR Compliance Tracker",
"charts": [
{
"title": "1601-C Withholding Summary",
"viz_type": "pivot_table_v2",
"dataset": "bir_withholding_monthly"
},
{
"title": "2550Q VAT Status",
"viz_type": "big_number_total",
"dataset": "bir_vat_quarterly"
},
{
"title": "Filing Deadline Calendar",
"viz_type": "echarts_timeseries",
"dataset": "bir_filing_schedule"
}
],
"filters": ["agency", "period", "status"]
}
{
"dashboard_title": "Finance SSC Overview",
"charts": [
{
"title": "Cash Position",
"viz_type": "big_number_total",
"comparison": "month_over_month"
},
{
"title": "AP Aging",
"viz_type": "echarts_bar"
},
{
"title": "Month-End Progress",
"viz_type": "echarts_gauge"
}
]
}
{
"dashboard_title": "Travel & Expense Analytics",
"charts": [
{
"title": "Expense by Category",
"viz_type": "echarts_pie"
},
{
"title": "Monthly Trend",
"viz_type": "echarts_timeseries"
},
{
"title": "Top Spenders",
"viz_type": "table"
}
]
}
-- Materialized view for Superset
CREATE MATERIALIZED VIEW superset_odoo_financials AS
SELECT
a.code as agency_code,
acc.code as account_code,
acc.name as account_name,
SUM(l.debit) as total_debit,
SUM(l.credit) as total_credit,
m.date as transaction_date
FROM odoo_account_move_line l
JOIN odoo_account_account acc ON l.account_id = acc.id
JOIN odoo_account_move m ON l.move_id = m.id
JOIN agencies a ON m.agency_id = a.id
WHERE m.state = 'posted'
GROUP BY 1,2,3,6;
-- Refresh schedule
REFRESH MATERIALIZED VIEW CONCURRENTLY superset_odoo_financials;
CREATE VIEW superset_bir_summary AS
SELECT
agency_code,
form_type,
period,
tax_amount,
status,
filing_deadline,
CASE
WHEN status = 'Filed' THEN 'On Time'
WHEN filing_deadline < CURRENT_DATE THEN 'Late'
ELSE 'Pending'
END as compliance_status
FROM bir_filings
WHERE period >= '2025-01-01';
| Use Case | Recommended Chart | Why |
|---|---|---|
| KPI/Metric | Big Number Total | Focus attention |
| Trends over time | ECharts Timeseries | Interactive, zoomable |
| Comparisons | ECharts Bar | Clear comparison |
| Proportions | ECharts Pie | Part-to-whole |
| Detailed data | Pivot Table v2 | Sortable, filterable |
| Distributions | ECharts Histogram | Show patterns |
| Correlations | ECharts Scatter | Relationships |
| Geographic | Deck.gl GeoJSON | Map visualization |
See reference/chart-selection-guide.md.
# Create database connection in Superset
superset.create_database({
'database_name': 'Supabase Production',
'sqlalchemy_uri': f'postgresql://postgres:{password}@{host}:5432/postgres',
'extra': {
'allows_virtual_table_explore': True,
'engine_params': {
'connect_args': {'sslmode': 'require'}
}
}
})
# Schedule dashboard refresh
superset.schedule_refresh({
'dashboard_id': dashboard_id,
'schedule': '0 6 * * *', # Daily 6am
'timezone': 'Asia/Manila'
})
"Query timeout": Optimize SQL, add indexes, use materialized views "Data not refreshing": Check cache timeout, clear cache "Chart not loading": Verify dataset permissions "Slow dashboard": Reduce number of charts, optimize queries "Wrong data": Check date filters, verify SQL logic "Access denied": Configure RLS policies in Supabase
"Create BIR compliance dashboard"
"Build expense analytics dashboard"
"Generate dataset for trial balance"
"Create chart showing AP aging"
"Apply finance SSC template"
Your Tableau alternative starts here! 📊