1. Executive Summary
Governments publish enormous volumes of Open Data, but publication alone does not create operational intelligence. The decisive step is translating raw records into business questions, validated measures and an analytical environment that managers can navigate without technical complexity.
This case study uses the San Francisco Fire Inspections dataset to demonstrate a practical, business-first approach. The model was built to answer operational questions about inspection volume, status, location, processing time, corrective action, invoicing and payment—while allowing users to compare years, months, weeks, neighborhoods and inspection types in the same analytical context.
1. Resumen Ejecutivo
Los gobiernos publican enormes volúmenes de Open Data, pero la publicación por sí sola no genera inteligencia operacional. El paso decisivo consiste en transformar registros crudos en preguntas de negocio, medidas validadas y un entorno analítico que los gerentes puedan navegar sin complejidad técnica.
Este caso de estudio utiliza el dataset de Fire Inspections de San Francisco para demostrar un enfoque práctico centrado primero en el negocio. El modelo fue construido para responder preguntas sobre volumen, estado, ubicación, duración, acción correctiva, facturación y pago, permitiendo comparar años, meses, semanas, barrios y tipos de inspección dentro del mismo contexto analítico.
Business Intelligence should not begin with charts. It should begin with the decisions the user needs to make.
La Inteligencia de Negocio no debería comenzar con gráficos. Debería comenzar con las decisiones que el usuario necesita tomar.
2. The Open Dataset
2. El Dataset Abierto
DataSF describes each row as one inspection and identifies Inspection Number as the row identifier. Key fields include inspection type, address, neighborhood-related geography, start and end dates, status, corrective action, invoice and payment information.
DataSF describe cada fila como una inspección e identifica Inspection Number como el identificador del registro. Entre los campos principales aparecen tipo de inspección, dirección, geografía, fechas de inicio y fin, estado, acción correctiva, factura y pago.
Official DataSF source / Fuente oficial DataSF
3. The Methodology Used
The project did not begin by choosing visuals or forcing a predefined dimensional model. It began by defining what the user needed to know.
3. La Metodología Utilizada
El proyecto no comenzó escogiendo visuales ni imponiendo un modelo dimensional predeterminado. Comenzó definiendo qué necesitaba conocer el usuario.
Business first
Primero el negocio
Define the decisions, questions, filters and comparisons with the user before building the tab.
Definir con el usuario las decisiones, preguntas, filtros y comparaciones antes de construir el tab.
Measures before decoration
Medidas antes que decoración
The measure contains the business rule. Visuals only project that rule through different dimensions.
La medida contiene la regla de negocio. Los visuales solamente proyectan esa regla mediante diferentes dimensiones.
Raw-data validation
Validación contra el raw
Every KPI candidate is tested against detailed rows before it is trusted in a card, matrix or chart.
Cada posible KPI se comprueba contra las filas detalladas antes de confiar en una tarjeta, matriz o gráfico.
Build the tab the user needs
Construir el tab que el usuario necesita
No scientific complexity for its own sake: one page, one operational purpose, multiple questions.
Sin complejidades científicas innecesarias: una página, un propósito operacional y múltiples preguntas.
4. Data Quality Before Dashboard Design
Initial exploration revealed impossible or operationally unusable date sequences. Some records produced negative durations because an end, invoice, corrective-action or payment date preceded the corresponding starting event. Blind averaging would have generated misleading indicators.
4. Calidad de Datos Antes del Dashboard
La exploración inicial reveló secuencias de fechas imposibles o poco útiles operacionalmente. Algunos registros producían duraciones negativas porque una fecha final, de factura, acción correctiva o pago era anterior al evento inicial correspondiente. Promediar sin investigar habría generado indicadores engañosos.
Date fields were converted from Text to true Date/DateTime types.
Los campos de fecha se convirtieron de Texto a tipos Date/DateTime reales.
439,581 inspection-start keys matched the date dimension, with zero unmatched keys in the validation query.
Las 439,581 claves de fecha inicial coincidieron con la dimensión de fechas, sin claves huérfanas en la consulta de validación.
Negative and extreme processing intervals were inspected in raw rows.
Los intervalos negativos y extremos fueron investigados directamente en el raw.
Duration measures used a 1–365 day analytical range for this case study.
Las medidas de duración utilizaron un rango analítico de 1–365 días en este caso.
The 1–365 day range is an analytical design choice used in this project, not an official San Francisco performance standard.
El rango de 1–365 días es una decisión analítica utilizada en este proyecto, no un estándar oficial de desempeño de San Francisco.
5. Validated Business Measures
The first measure established the analytical grain: distinct, nonblank inspection numbers.
5. Medidas de Negocio Validadas
La primera medida estableció el grano analítico: números de inspección distintos y no vacíos.
Insp_Qty =
CALCULATE(
DISTINCTCOUNT('staging FireInspections_Raw'[Inspection Number]),
FILTER(
'staging FireInspections_Raw',
NOT ISBLANK('staging FireInspections_Raw'[Inspection Number])
&&
TRIM('staging FireInspections_Raw'[Inspection Number]) <> ""
)
)
Inspection Quantity
Counts unique inspection identifiers while excluding blank values.
Cuenta identificadores únicos de inspección y excluye valores vacíos.
Average Inspection Duration
Measures elapsed days between inspection start and end within the validated operational range.
Mide días transcurridos entre inicio y fin dentro del rango operacional validado.
Average Corrective Action Days
Evaluates the elapsed time associated with corrective action records.
Evalúa el tiempo transcurrido asociado con las acciones correctivas.
Average Invoice Processing Days
Measures invoice processing intervals after excluding impossible chronology.
Mide los intervalos de facturación después de excluir cronologías imposibles.
Average Payment Processing Days
Measures elapsed time from invoice date to paid date within the operational range.
Mide el tiempo desde la factura hasta el pago dentro del rango operacional.
Status Distribution %
Shows how each inspection status contributes to the selected analytical context.
Muestra la participación de cada estado dentro del contexto seleccionado.
6. Visual Analytics: Charts That Generate Questions
The visual layer was designed for investigation rather than decoration. A chart identifies a pattern; the matrix explains its composition; filters and drill-down preserve context while the user asks the next question.
6. Análisis Visual: Gráficos que Generan Preguntas
La capa visual fue diseñada para investigar, no para decorar. Un gráfico identifica un patrón; la matriz explica su composición; los filtros y el drill-down preservan el contexto mientras el usuario formula la próxima pregunta.
Trend analysis
Análisis de tendencia
Year → Month → Week → Day drill-down exposes seasonality, spikes, declines and unusual activity.
El drill-down Año → Mes → Semana → Día revela estacionalidad, picos, disminuciones y actividad inusual.
Comparative analysis
Análisis comparativo
The same measures can compare years, selected months, neighborhoods, inspection types and statuses.
Las mismas medidas comparan años, meses seleccionados, barrios, tipos de inspección y estados.
Multidimensional matrix
Matriz multidimensional
Rows combine Inspection Type and Status; columns combine Year and Month; values show quantity and percentage.
Las filas combinan Tipo y Estado; las columnas combinan Año y Mes; los valores muestran cantidad y porcentaje.
Cross-filtering
Filtrado cruzado
Selecting one neighborhood or time period recalculates cards, chart and matrix together.
Seleccionar un barrio o período recalcula conjuntamente las tarjetas, el gráfico y la matriz.
7. Comparison and Investigation Scenarios
The dashboard was intentionally designed to answer many questions without rebuilding the report.
7. Escenarios de Comparación e Investigación
El dashboard fue diseñado intencionalmente para responder muchas preguntas sin reconstruir el reporte.
An executive dashboard should not answer only one question. It should let decision-makers investigate hundreds of scenarios through one consistent analytical model.
Un dashboard ejecutivo no debería responder una sola pregunta. Debe permitir que quienes toman decisiones investiguen cientos de escenarios mediante un modelo analítico consistente.
8. What the Analysis Revealed
The most important findings were methodological as well as operational:
- Raw averages could be materially distorted by invalid chronology.
- Inspection volume becomes more useful when decomposed by type, status, location and time.
- A total card alone cannot reveal whether workload is completed, pending or requires follow-up.
- Multi-period selections are essential for distinguishing a one-time spike from a sustained pattern.
- The same validated measures can support multiple tabs and business perspectives without redefining the logic.
8. Lo que Reveló el Análisis
Los hallazgos más importantes fueron tanto metodológicos como operacionales:
- Los promedios crudos podían quedar seriamente distorsionados por cronologías inválidas.
- El volumen se vuelve más útil al descomponerlo por tipo, estado, ubicación y tiempo.
- Una tarjeta total no revela si la carga está completada, pendiente o requiere seguimiento.
- Las selecciones de varios períodos permiten distinguir un pico aislado de un patrón persistente.
- Las mismas medidas validadas pueden soportar varios tabs sin redefinir la lógica de negocio.
9. Next Evolution: Business KPIs and Alerts
This first version deliberately separates descriptive measures from formal performance standards. The next layer should be defined with the business owner: target values, tolerances, warning levels and critical thresholds for each process.
9. Próxima Evolución: KPIs y Alertas de Negocio
Esta primera versión separa deliberadamente las medidas descriptivas de los estándares formales de desempeño. La próxima capa debe definirse con el responsable del negocio: metas, tolerancias, niveles de advertencia y umbrales críticos para cada proceso.
Target
Expected operational result.
Resultado operacional esperado.
Tolerance
Acceptable distance from target.
Distancia aceptable respecto a la meta.
Alert
Exception requiring attention.
Excepción que requiere atención.
Those standards can be stored in a configuration table instead of being hard-coded in DAX. The dashboard can then display On Target, Warning and Critical status and later support automated notifications.
Esos estándares pueden almacenarse en una tabla de configuración en lugar de codificarlos directamente en DAX. El dashboard podrá mostrar estados On Target, Warning y Critical y posteriormente soportar notificaciones automáticas.
10. Final Conclusion
This project demonstrates that the real value of Open Data does not come from publishing more records or adding more charts. Value appears when data is validated, connected to business questions and organized into a simple environment where users can compare, investigate and decide.
Define with the user what they need. Validate the measures. Build the dashboard tab that answers those needs—without unnecessary complexity.
10. Conclusión Final
Este proyecto demuestra que el verdadero valor del Open Data no proviene de publicar más registros ni de agregar más gráficos. El valor aparece cuando los datos se validan, se conectan con preguntas de negocio y se organizan en un entorno sencillo donde el usuario puede comparar, investigar y decidir.
Define con el usuario qué necesita. Valida las medidas. Construye el tab que responde a esas necesidades, sin muelas ni complejidades innecesarias.