Data Analytics dashboard

SaaS Implementation & Integration Health

Synthetic implementation portfolio, connector reliability and intervention dashboard.

fixture

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 KPIsTables: dim_account, fact_integration_run

Projects not complete at the snapshot date.

Projects not complete at the snapshot date.Source: Implementation portfolio KPIsTables: dim_account, fact_integration_run

Deterministic query executed by scripts/build_analytics_projects.py.

On-time go-live

45.5%Source: Implementation portfolio KPIsTables: dim_account, fact_integration_run

Completed implementations delivered by committed date.

Completed implementations delivered by committed date.Source: Implementation portfolio KPIsTables: dim_account, fact_integration_run

Deterministic query executed by scripts/build_analytics_projects.py.

Median TTFV days

51Source: Implementation portfolio KPIsTables: dim_account, fact_integration_run

Median kickoff-to-first-value days for eligible accounts.

Median kickoff-to-first-value days for eligible accounts.Source: Implementation portfolio KPIsTables: dim_account, fact_integration_run

Deterministic query executed by scripts/build_analytics_projects.py.

At-risk active

5Source: Implementation portfolio KPIsTables: dim_account, fact_integration_run

Active accounts classified red or amber by explicit rules.

Active accounts classified red or amber by explicit rules.Source: Implementation portfolio KPIsTables: dim_account, fact_integration_run

Deterministic query executed by scripts/build_analytics_projects.py.

Integration success

98%Source: Implementation portfolio KPIsTables: dim_account, fact_integration_run

Successful sync runs divided by all attempted runs.

Successful sync runs divided by all attempted runs.Source: Implementation portfolio KPIsTables: dim_account, fact_integration_run

Deterministic query executed by scripts/build_analytics_projects.py.

Implementation stage completion

Source: Implementation funnelTable: fact_milestone

Deterministic query executed by scripts/build_analytics_projects.py.

Implementation stage completion
StageMilestoneCompleted accounts
1Source: Implementation funnelTable: fact_milestoneDiscovery complete60Source: Implementation funnelTable: fact_milestone
2Source: Implementation funnelTable: fact_milestoneAuthentication60Source: Implementation funnelTable: fact_milestone
3Source: Implementation funnelTable: fact_milestoneMapping approved59Source: Implementation funnelTable: fact_milestone
4Source: Implementation funnelTable: fact_milestoneFirst test sync59Source: Implementation funnelTable: fact_milestone
5Source: Implementation funnelTable: fact_milestoneUAT complete59Source: Implementation funnelTable: fact_milestone
6Source: Implementation funnelTable: fact_milestoneTraining56Source: Implementation funnelTable: fact_milestone
7Source: Implementation funnelTable: fact_milestoneGo-live55Source: Implementation funnelTable: fact_milestone
8Source: Implementation funnelTable: fact_milestoneFirst value55Source: Implementation funnelTable: fact_milestone
Average implementation lead time by kickoff cohort
Average implementation lead time by kickoff cohort data
Kickoff MonthAverage Lead Days
2025-0853.67
2025-0952.5
2025-1051.14
2025-1162.17
2025-1252.67
2026-0149.5
2026-0250.5
2026-0345.83
2026-0452.4
2026-0536
Active implementation readiness by account
Active implementation readiness by account data
Account Risk LabelReadiness RateRisk Status
ACCT-058 | RED | -8 days71.7%Red
ACCT-059 | RED | -2 days75.4%Red
ACCT-057 | RED | +2 days71.7%Red
ACCT-055 | AMBER | +16 days88.8%Amber
ACCT-060 | AMBER | +40 days26.3%Amber

Intervention queue

Source: Intervention queueTable: dim_account

Deterministic query executed by scripts/build_analytics_projects.py.

Intervention queue
AccountFictional nameSegmentRiskDays to committedReadinessMappingRequired UAT7-day sync successNext action
ACCT-058Demo Account 58SMBRed-8Source: Intervention queueTable: dim_account71.7%Source: Intervention queueTable: dim_account66.7%Source: Intervention queueTable: dim_account100%Source: Intervention queueTable: dim_account50%Source: Intervention queueTable: dim_accountRun daily recovery plan with decision owner
ACCT-059Demo Account 59SMBRed-2Source: Intervention queueTable: dim_account75.4%Source: Intervention queueTable: dim_account66.7%Source: Intervention queueTable: dim_account62.5%Source: Intervention queueTable: dim_account100%Source: Intervention queueTable: dim_accountRun daily recovery plan with decision owner
ACCT-057Demo Account 57Mid-MarketRed2Source: Intervention queueTable: dim_account71.7%Source: Intervention queueTable: dim_account66.7%Source: Intervention queueTable: dim_account50%Source: Intervention queueTable: dim_account100%Source: Intervention queueTable: dim_accountRun daily recovery plan with decision owner
ACCT-055Demo Account 55EnterpriseAmber16Source: Intervention queueTable: dim_account88.8%Source: Intervention queueTable: dim_account100%Source: Intervention queueTable: dim_account75%Source: Intervention queueTable: dim_account87.5%Source: Intervention queueTable: dim_accountResolve blocker and re-baseline remaining milestones
ACCT-060Demo Account 60EnterpriseAmber40Source: Intervention queueTable: dim_account26.3%Source: Intervention queueTable: dim_account0%Source: Intervention queueTable: dim_account0%Source: Intervention queueTable: dim_account87.5%Source: Intervention queueTable: dim_accountResolve blocker and re-baseline remaining milestones
Failed sync runs by error code
Failed sync runs by error code data
Error CodeRuns
UPSTREAM_UNAVAILABLE116
SCHEMA_FIELD_CHANGED39
RATE_LIMITED22
OAUTH_TOKEN_EXPIRED3

Connector evidence

Source: Connector reliabilityTable: fact_integration_run

Deterministic query executed by scripts/build_analytics_projects.py.

Connector evidence
ConnectorSuccessData acceptanceAvg latency msFailed runs
WAREHOUSE96%Source: Connector reliabilityTable: fact_integration_run95.7%Source: Connector reliabilityTable: fact_integration_run2,329Source: Connector reliabilityTable: fact_integration_run26Source: Connector reliabilityTable: fact_integration_run
BILLING97.5%Source: Connector reliabilityTable: fact_integration_run97.9%Source: Connector reliabilityTable: fact_integration_run1,947Source: Connector reliabilityTable: fact_integration_run87Source: Connector reliabilityTable: fact_integration_run
PRODUCT98.6%Source: Connector reliabilityTable: fact_integration_run98.1%Source: Connector reliabilityTable: fact_integration_run1,950Source: Connector reliabilityTable: fact_integration_run22Source: Connector reliabilityTable: fact_integration_run
CRM98.7%Source: Connector reliabilityTable: fact_integration_run98.3%Source: Connector reliabilityTable: fact_integration_run1,969Source: Connector reliabilityTable: fact_integration_run45Source: Connector reliabilityTable: fact_integration_run

Method and limitations

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.

Sources

  1. Implementation portfolio KPIssql/analytics.sql · SQLite 3 · 2026-06-30T18:00:00Z

    Deterministic query executed by scripts/build_analytics_projects.py.

    SQL query
    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;
  2. Implementation funnelsql/analytics.sql · SQLite 3 · 2026-06-30T18:00:00Z

    Deterministic query executed by scripts/build_analytics_projects.py.

    SQL query
    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;
  3. Connector reliabilitysql/analytics.sql · SQLite 3 · 2026-06-30T18:00:00Z

    Deterministic query executed by scripts/build_analytics_projects.py.

    SQL query
    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;
  4. Cohort lead timesql/analytics.sql · SQLite 3 · 2026-06-30T18:00:00Z

    Deterministic query executed by scripts/build_analytics_projects.py.

    SQL query
    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;
  5. Intervention queuesql/analytics.sql · SQLite 3 · 2026-06-30T18:00:00Z

    Deterministic query executed by scripts/build_analytics_projects.py.

    SQL query
    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;
  6. Integration errorssql/analytics.sql · SQLite 3 · 2026-06-30T18:00:00Z

    Deterministic query executed by scripts/build_analytics_projects.py.

    SQL query
    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;