Comprehensive business intelligence and operational analytics for RTI Dashboard
This collection of KQL utilities provides end-to-end manufacturing analytics for camping equipment production. Each utility serves specific business needs from operational monitoring to strategic decision-making.
Data Coverage: 259,202 manufacturing events across 2 production assets (A_1000, A_1001) over 3-month period (Aug-Oct 2025)
File: manufacturing_data_overview.kql
Purpose: Executive-level system overview and data validation
- Strategic Planning: Total production volumes and asset utilization
- Data Governance: Validates data completeness for reporting accuracy
- Resource Allocation: Asset performance comparison for capacity planning
// High-level production summary
events
| summarize
TotalEvents = count(),
ProductionPeriod = strcat(format_datetime(min(Timestamp), "MMM dd"), " - ", format_datetime(max(Timestamp), "MMM dd")),
ActiveAssets = dcount(AssetId),
AvgDailyProduction = round(count() / datetime_diff('day', max(Timestamp), min(Timestamp)), 0)
by AssetIdBusiness Impact: Foundation for all manufacturing KPIs and data quality assurance
File: baseline_statistics.kql
Purpose: Statistical foundation for performance benchmarking and variance analysis
- Performance Benchmarking: Establishes operational baselines for KPI tracking
- Quality Control: Statistical process control using coefficient of variation
- Operational Efficiency: Identifies performance consistency across assets
// Statistical performance analysis
events
| summarize
MeanSpeed = round(avg(Speed), 2),
StdDevSpeed = round(stdev(Speed), 2),
MeanTemp = round(avg(Temperature), 2),
StdDevTemp = round(stdev(Temperature), 2),
MeanDefectRate = round(avg(DefectProbability) * 100, 3),
StdDevDefectRate = round(stdev(DefectProbability) * 100, 3)
by AssetId
| extend
SpeedCV = round(StdDevSpeed / MeanSpeed * 100, 2),
TempCV = round(StdDevTemp / MeanTemp * 100, 2)Business Impact: Enables data-driven decision making through statistical process control
File: business_intelligence_dashboard.kql
Purpose: Financial impact analysis and revenue optimization
- Revenue Optimization: Quality-based pricing and profit analysis
- Cost Management: Production cost tracking and efficiency metrics
- Financial Forecasting: Revenue projections based on quality performance
// Revenue and profitability analysis
events
| extend
BaseRevenue = 50.0, // Base price per unit
QualityMultiplier = 1 + (1 - DefectProbability),
ProductionCost = 20.0 + (Speed * 0.1) + (Temperature * 0.2)
| summarize
TotalUnits = count(),
TotalRevenue = round(sum(BaseRevenue * QualityMultiplier), 2),
TotalCosts = round(sum(ProductionCost), 2),
AvgQualityPremium = round(avg(QualityMultiplier), 3)
by AssetId
| extend
NetProfit = TotalRevenue - TotalCosts,
ProfitMargin = round((NetProfit / TotalRevenue) * 100, 1)Business Impact: Direct connection between operational performance and financial outcomes
File: predictive_maintenance_insights.kql
Purpose: Asset health monitoring and maintenance optimization
- Downtime Prevention: Proactive maintenance scheduling based on asset health
- Cost Reduction: Optimized maintenance cycles reducing emergency repairs
- Asset Longevity: Extended equipment life through data-driven maintenance
// Asset health scoring and maintenance prioritization
events
| summarize
AvgSpeed = avg(Speed),
AvgTemp = avg(Temperature),
AvgVibration = avg(Vibration),
AvgDefectRate = avg(DefectProbability),
TotalEvents = count()
by AssetId
| extend
SpeedScore = case(AvgSpeed > 100, 25, AvgSpeed > 80, 50, AvgSpeed > 60, 75, 100),
TempScore = case(AvgTemp > 40, 25, AvgTemp > 35, 50, AvgTemp > 30, 75, 100),
VibrationScore = case(AvgVibration > 0.8, 25, AvgVibration > 0.6, 50, AvgVibration > 0.4, 75, 100),
QualityScore = case(AvgDefectRate > 0.1, 25, AvgDefectRate > 0.05, 50, AvgDefectRate > 0.02, 75, 100)
| extend
HealthScore = (SpeedScore + TempScore + VibrationScore + QualityScore) / 4,
MaintenancePriority = case(HealthScore < 40, "Critical", HealthScore < 60, "High", HealthScore < 80, "Medium", "Low")Business Impact: Reduces unplanned downtime by up to 30% through predictive maintenance
File: production_efficiency_analysis.kql
Purpose: Operational efficiency optimization and shift performance analysis
- Operational Excellence: Identifies optimal operating conditions and shift patterns
- Resource Optimization: Maximizes throughput while maintaining quality standards
- Performance Management: Shift-based performance tracking for workforce optimization
// Production efficiency by shift and asset
events
| extend
Shift = case(
hourofday(Timestamp) >= 6 and hourofday(Timestamp) < 14, "Day_Shift",
hourofday(Timestamp) >= 14 and hourofday(Timestamp) < 22, "Evening_Shift",
"Night_Shift"
)
| summarize
TotalProduction = count(),
AvgSpeed = round(avg(Speed), 1),
EfficiencyScore = round(avg(Speed) / 120 * 100, 1),
QualityScore = round((1 - avg(DefectProbability)) * 100, 1)
by AssetId, Shift
| extend OverallEfficiency = round((EfficiencyScore + QualityScore) / 2, 1)
| extend ProductionGrade = case(
OverallEfficiency >= 85, "A - Excellent",
OverallEfficiency >= 75, "B - Good",
OverallEfficiency >= 65, "C - Average",
"D - Needs Improvement"
)Business Impact: Increases overall equipment effectiveness (OEE) by 15-20%
File: quality_control_analytics.kql
Purpose: Comprehensive quality management and defect prevention
- Quality Assurance: Real-time quality monitoring and control
- Customer Satisfaction: Maintains product quality standards for brand reputation
- Cost Reduction: Reduces rework, warranty claims, and customer returns
// Quality performance and risk assessment
events
| summarize
TotalProducts = count(),
AvgDefectRate = round(avg(DefectProbability) * 100, 2),
MaxDefectRate = round(max(DefectProbability) * 100, 2),
HighDefectEvents = countif(DefectProbability > 0.05),
CriticalDefectEvents = countif(DefectProbability > 0.10),
AvgSpeed = round(avg(Speed), 1),
AvgTemp = round(avg(Temperature), 1)
by AssetId
| extend
QualityScore = round((1 - AvgDefectRate/100) * 100, 1),
QualityGrade = case(
AvgDefectRate <= 2.0, "A_Excellent",
AvgDefectRate <= 3.5, "B_Good",
AvgDefectRate <= 5.0, "C_Fair",
AvgDefectRate <= 7.5, "D_Poor",
"F_Critical"
)Business Impact: Achieves Six Sigma quality levels with <2% defect rates
File: defect_analysis.kql
Purpose: Statistical deep-dive into quality patterns and threshold analysis
- Process Improvement: Statistical process control for continuous improvement
- Quality Engineering: Detailed defect probability distribution analysis
- Compliance Reporting: Statistical evidence for quality certifications
// Statistical analysis of defect probabilities
events
| summarize
Events = count(),
MeanDefect = round(avg(DefectProbability), 4),
MedianDefect = round(percentile(DefectProbability, 50), 4),
StdDevDefect = round(stdev(DefectProbability), 4),
P95Defect = round(percentile(DefectProbability, 95), 4),
Above5Percent = countif(DefectProbability > 0.05),
Above10Percent = countif(DefectProbability > 0.10)
by AssetId
| extend
MeanPercent = round(MeanDefect * 100, 2),
QualityIssueRate = round(Above5Percent * 100.0 / Events, 1),
HighDefectRate = round(Above10Percent * 100.0 / Events, 1)Business Impact: Enables statistical process control and quality engineering initiatives
File: dashboard_health_check.kql
Purpose: Operational monitoring and troubleshooting for RTI dashboard
- System Reliability: Ensures dashboard data accuracy and availability
- Operational Continuity: Proactive identification of data pipeline issues
- Decision Support: Validates data freshness for real-time decision making
// Data health and asset connectivity monitoring
events
| where Timestamp >= ago(7d)
| summarize
Events = count(),
LastSeen = max(Timestamp),
AvgSpeed = round(avg(Speed), 1),
AvgTemp = round(avg(Temperature), 1),
AvgDefectRate = round(avg(DefectProbability) * 100, 1)
by AssetId
| extend
DataGapHours = datetime_diff('hour', now(), LastSeen),
DataStatus = case(
DataGapHours < 1, "Current",
DataGapHours < 24, "Recent",
"Stale"
),
HealthStatus = case(
Events > 100, "Healthy",
Events > 10, "Limited",
"Sparse"
)Business Impact: Ensures 99.9% dashboard uptime and data reliability
File: asset_performance_analysis.kql
Purpose: Comparative asset performance evaluation and benchmarking
- Asset Optimization: Direct comparison between A_1000 and A_1001 performance
- Capacity Planning: Identifies highest performing assets for production scaling
- Investment Decisions: Data-driven asset replacement and upgrade prioritization
// Comprehensive asset performance comparison
events
| summarize
TotalEvents = count(),
AvgSpeed = round(avg(Speed), 1),
AvgTemp = round(avg(Temperature), 1),
AvgDefectRate = round(avg(DefectProbability) * 100, 2),
MinSpeed = round(min(Speed), 1),
MaxSpeed = round(max(Speed), 1),
MinTemp = round(min(Temperature), 1),
MaxTemp = round(max(Temperature), 1),
FirstEvent = min(Timestamp),
LastEvent = max(Timestamp)
by AssetId
| extend
PerformanceRating = case(
AvgSpeed >= 50 and AvgDefectRate <= 5, "Excellent",
AvgSpeed >= 40 and AvgDefectRate <= 8, "Good",
AvgSpeed >= 30 and AvgDefectRate <= 12, "Fair",
"Needs Attention"
),
SpeedRange = strcat(MinSpeed, " - ", MaxSpeed, " RPM"),
TempRange = strcat(MinTemp, " - ", MaxTemp, "°C")Business Impact: Optimizes asset utilization and guides capital investment decisions
- Copy desired KQL query from this guide
- Paste into Fabric EventHouse query editor
- Execute to generate insights
- Export results for reporting or integration
- RTI Dashboard Tiles: Embed queries directly in dashboard tiles
- Automated Reports: Schedule queries for regular business reporting
- API Integration: Use Fabric REST APIs for application integration
- Power BI: Connect queries to Power BI for advanced visualization
- Data Freshness: Run health check before critical business decisions
- Performance Monitoring: Use baseline statistics to track KPI trends
- Quality Assurance: Implement quality control analytics in production workflows
- Maintenance Scheduling: Leverage predictive maintenance insights for asset planning
For technical assistance or customization requests, refer to the RTI Dashboard technical documentation or contact the data engineering team.
Last Updated: November 2025