Active implementations
5Source: Implementation portfolio KPIs
Projects not complete at the snapshot date.
Deterministic query executed by scripts/build_analytics_projects.py.
Data Analytics dashboard
Synthetic implementation portfolio, connector reliability and intervention dashboard.
Decision: which implementations risk missing committed go-live, why, and what intervention should happen next?
Deterministic synthetic portfolio data · 60 fictional accounts · snapshot 30 Jun 2026.
Active implementations
5Source: Implementation portfolio KPIs
Projects not complete at the snapshot date.
Deterministic query executed by scripts/build_analytics_projects.py.
On-time go-live
45.5%Source: Implementation portfolio KPIs
Completed implementations delivered by committed date.
Deterministic query executed by scripts/build_analytics_projects.py.
Median TTFV days
51Source: Implementation portfolio KPIs
Median kickoff-to-first-value days for eligible accounts.
Deterministic query executed by scripts/build_analytics_projects.py.
At-risk active
5Source: Implementation portfolio KPIs
Active accounts classified red or amber by explicit rules.
Deterministic query executed by scripts/build_analytics_projects.py.
Integration success
98%Source: Implementation portfolio KPIs
Successful sync runs divided by all attempted runs.
Deterministic query executed by scripts/build_analytics_projects.py.
Deterministic query executed by scripts/build_analytics_projects.py.
| Stage | Milestone | Completed accounts |
|---|---|---|
| 1Source: Implementation funnel | Discovery complete | 60Source: Implementation funnel |
| 2Source: Implementation funnel | Authentication | 60Source: Implementation funnel |
| 3Source: Implementation funnel | Mapping approved | 59Source: Implementation funnel |
| 4Source: Implementation funnel | First test sync | 59Source: Implementation funnel |
| 5Source: Implementation funnel | UAT complete | 59Source: Implementation funnel |
| 6Source: Implementation funnel | Training | 56Source: Implementation funnel |
| 7Source: Implementation funnel | Go-live | 55Source: Implementation funnel |
| 8Source: Implementation funnel | First value | 55Source: Implementation funnel |
Deterministic query executed by scripts/build_analytics_projects.py.
| Kickoff Month | Average Lead Days |
|---|---|
| 2025-08 | 53.67 |
| 2025-09 | 52.5 |
| 2025-10 | 51.14 |
| 2025-11 | 62.17 |
| 2025-12 | 52.67 |
| 2026-01 | 49.5 |
| 2026-02 | 50.5 |
| 2026-03 | 45.83 |
| 2026-04 | 52.4 |
| 2026-05 | 36 |
Deterministic query executed by scripts/build_analytics_projects.py.
| Account Risk Label | Readiness Rate | Risk Status |
|---|---|---|
| ACCT-058 | RED | -8 days | 71.7% | Red |
| ACCT-059 | RED | -2 days | 75.4% | Red |
| ACCT-057 | RED | +2 days | 71.7% | Red |
| ACCT-055 | AMBER | +16 days | 88.8% | Amber |
| ACCT-060 | AMBER | +40 days | 26.3% | Amber |
Deterministic query executed by scripts/build_analytics_projects.py.
| Account | Fictional name | Segment | Risk | Days to committed | Readiness | Mapping | Required UAT | 7-day sync success | Next action |
|---|---|---|---|---|---|---|---|---|---|
| ACCT-058 | Demo Account 58 | SMB | Red | -8Source: Intervention queue | 71.7%Source: Intervention queue | 66.7%Source: Intervention queue | 100%Source: Intervention queue | 50%Source: Intervention queue | Run daily recovery plan with decision owner |
| ACCT-059 | Demo Account 59 | SMB | Red | -2Source: Intervention queue | 75.4%Source: Intervention queue | 66.7%Source: Intervention queue | 62.5%Source: Intervention queue | 100%Source: Intervention queue | Run daily recovery plan with decision owner |
| ACCT-057 | Demo Account 57 | Mid-Market | Red | 2Source: Intervention queue | 71.7%Source: Intervention queue | 66.7%Source: Intervention queue | 50%Source: Intervention queue | 100%Source: Intervention queue | Run daily recovery plan with decision owner |
| ACCT-055 | Demo Account 55 | Enterprise | Amber | 16Source: Intervention queue | 88.8%Source: Intervention queue | 100%Source: Intervention queue | 75%Source: Intervention queue | 87.5%Source: Intervention queue | Resolve blocker and re-baseline remaining milestones |
| ACCT-060 | Demo Account 60 | Enterprise | Amber | 40Source: Intervention queue | 26.3%Source: Intervention queue | 0%Source: Intervention queue | 0%Source: Intervention queue | 87.5%Source: Intervention queue | Resolve blocker and re-baseline remaining milestones |
Deterministic query executed by scripts/build_analytics_projects.py.
| Error Code | Runs |
|---|---|
| UPSTREAM_UNAVAILABLE | 116 |
| SCHEMA_FIELD_CHANGED | 39 |
| RATE_LIMITED | 22 |
| OAUTH_TOKEN_EXPIRED | 3 |
Deterministic query executed by scripts/build_analytics_projects.py.
| Connector | Success | Data acceptance | Avg latency ms | Failed runs |
|---|---|---|---|---|
| WAREHOUSE | 96%Source: Connector reliability | 95.7%Source: Connector reliability | 2,329Source: Connector reliability | 26Source: Connector reliability |
| BILLING | 97.5%Source: Connector reliability | 97.9%Source: Connector reliability | 1,947Source: Connector reliability | 87Source: Connector reliability |
| PRODUCT | 98.6%Source: Connector reliability | 98.1%Source: Connector reliability | 1,950Source: Connector reliability | 22Source: Connector reliability |
| CRM | 98.7%Source: Connector reliability | 98.3%Source: Connector reliability | 1,969Source: Connector reliability | 45Source: Connector reliability |
Risk is determined by visible schedule, mapping, UAT and reliability rules—not an opaque health score. Readiness combines mapping (40%), required UAT (30%) and recent sync success (30%) for chart positioning; the red/amber intervention status still follows the explicit guardrails. Template-cohort comparisons are observational synthetic patterns and do not establish causality. Account names, payloads and outcomes are fictional.
Deterministic query executed by scripts/build_analytics_projects.py.
WITH completed AS (
SELECT *, julianday(actual_go_live_date) - julianday(kickoff_date) AS lead_days
FROM dim_account WHERE project_status = 'Completed'
), ordered_ttfv AS (
SELECT time_to_first_value_days,
ROW_NUMBER() OVER (ORDER BY time_to_first_value_days) AS row_number,
COUNT(*) OVER () AS total_rows
FROM dim_account WHERE time_to_first_value_days IS NOT NULL AND time_to_first_value_days <> ''
), median_ttfv AS (
SELECT AVG(time_to_first_value_days) AS median_ttfv_days
FROM ordered_ttfv
WHERE row_number IN ((total_rows + 1) / 2, (total_rows + 2) / 2)
), run_rate AS (
SELECT SUM(CASE WHEN status = 'SUCCESS' THEN 1 ELSE 0 END) * 1.0 / COUNT(*) AS integration_success_rate
FROM fact_integration_run
)
SELECT SUM(CASE WHEN project_status = 'Active' THEN 1 ELSE 0 END) AS active_implementations,
ROUND((SELECT SUM(CASE WHEN actual_go_live_date <= committed_go_live_date THEN 1 ELSE 0 END) * 1.0 / COUNT(*) FROM completed), 6) AS on_time_go_live_rate,
ROUND((SELECT median_ttfv_days FROM median_ttfv), 2) AS median_ttfv_days,
SUM(CASE WHEN project_status = 'Active' AND risk_status IN ('Red','Amber') THEN 1 ELSE 0 END) AS at_risk_active_accounts,
ROUND((SELECT integration_success_rate FROM run_rate), 6) AS integration_success_rate
FROM dim_account;Deterministic query executed by scripts/build_analytics_projects.py.
SELECT milestone, MIN(stage_order) AS stage_order,
SUM(CASE WHEN actual_date <> '' THEN 1 ELSE 0 END) AS completed_accounts
FROM fact_milestone GROUP BY milestone ORDER BY stage_order;Deterministic query executed by scripts/build_analytics_projects.py.
SELECT connector_id,
ROUND(SUM(CASE WHEN status = 'SUCCESS' THEN 1 ELSE 0 END) * 1.0 / COUNT(*), 6) AS success_rate,
ROUND(SUM(records_accepted) * 1.0 / SUM(records_received), 6) AS data_acceptance_rate,
ROUND(AVG(latency_ms), 0) AS average_latency_ms,
SUM(CASE WHEN status = 'FAILED' THEN 1 ELSE 0 END) AS failed_runs
FROM fact_integration_run GROUP BY connector_id ORDER BY success_rate ASC;Deterministic query executed by scripts/build_analytics_projects.py.
SELECT substr(kickoff_date, 1, 7) AS kickoff_month,
ROUND(AVG(julianday(actual_go_live_date) - julianday(kickoff_date)), 2) AS average_lead_days,
COUNT(*) AS completed_accounts
FROM dim_account WHERE project_status = 'Completed'
GROUP BY kickoff_month ORDER BY kickoff_month;Deterministic query executed by scripts/build_analytics_projects.py.
SELECT account_id,
account_id || ' | ' || UPPER(risk_status) || ' | '
|| printf('%+d days', days_to_committed_go_live) AS account_risk_label,
CASE risk_status WHEN 'Red' THEN 1 WHEN 'Amber' THEN 2 ELSE 3 END AS risk_order,
fictional_account_name, segment, days_to_committed_go_live,
readiness_rate, mapping_coverage, uat_pass_rate,
recent_integration_success_rate, risk_status, risk_reason, next_action
FROM dim_account WHERE project_status = 'Active'
ORDER BY risk_order, days_to_committed_go_live ASC, account_id ASC;Deterministic query executed by scripts/build_analytics_projects.py.
SELECT CASE WHEN error_code = '' THEN 'NONE' ELSE error_code END AS error_code,
COUNT(*) AS runs,
SUM(records_rejected) AS rejected_records
FROM fact_integration_run WHERE status = 'FAILED'
GROUP BY error_code ORDER BY runs DESC;