Promedio de ponderación: uso de métricas variables y contratos variables (Ponderado / Balance Scorecard)

Un usuario Pregunto ✅

oneill1

Esta es una consulta bastante compleja / desafiante. Así que espero poder tomar el guante y realmente ayudarme aquí.

Contamos con un sistema de medición jerárquico para nuestro proveedor. Lo cual espero que refleje mejor el rendimiento, ya que la actualidad no permite que se aplique una mayor ponderación a las métricas más influyentes.

Mis objetivos son:

  1. Muestre el % que cada métrica contribuirá a la puntuación en 4 niveles diferentes en PowerBI (captura de pantalla 2: creada a partir de Excel)
  2. Identificar si puedo usar un enfoque de promedio ponderado, aunque no todas las métricas estén activas en cada contrato.
  3. Busque sistemas de medición alternativos si hay alguno que se sugiera en este foro.

Fondo:

  1. Actualmente tengo 68 métricas implementadas, en 29 tipos de contrato diferentes.
  2. Cada contrato tiene varias métricas activas, que van desde 4 hasta 21 métricas, estas dependen de su tipo de trabajo/contrato.
  3. Las métricas se alimentan en una vista jerárquica en formato piramidal, es decir Métrica > Medida > Tema > Imperativo

jerarquía 1.jpg

  1. Una métrica se puntúa por rangos y se le otorga un valor de 0,2,4,6,8,10 o N/A
  1. En la actualidad, hay 2 formas en que agregamos las puntuaciones para permitir una medida coherente con todos los proveedores.
    • Promedio por imperativo (de los cuales hay 3): todas las métricas dentro de un imperativo son promedio, luego el imperativo con puntajes se promedian para asignar como puntaje.
    • Promedio por Tema (de los cuales hay 😎 – Todas las métricas dentro de un tema se promedian, luego el tema con puntajes se promedian para asignar como puntaje.

Como se mencionó anteriormente, existe una necesidad creciente de ponderar las métricas más informativas.

He adjuntado lo siguiente para ayudar a visualizar

  • Ponderación (Metric-Contracts) Documento Excel con los tipos de contratos y estado de las métricas.
  • Ponderación (maqueta) Documento de Excel con un ejemplo de puntuaciones, que muestra a la derecha cómo puede verse la puntuación si la puntuación es por Métrica, Medida, Tema o Nivel imperativo
  • Maqueta: archivo de Power BI que muestra el aspecto de las puntuaciones con el cálculo de medidas que muestra la puntuación por nivel de métrica, medida, tema o imperativo

captura de pantalla 2 – Ejemplo de ponderación de puntuaciones:

texto morado que muestra la ponderación del grupo y la ponderación métrica individual al nivel superior

Partituras.jpg

Puntuaciones de ejemplo

Métricas.jpg

Puntuaciones dentro de powerBI usando una medida para agregar por categoría

Oneill1_0-1610206412316.png

Maqueta de Power BI

Excel – Ponderación y métrica/ejemplos de contrato

Carpeta completa

mfelix

Hola @Oneill1,

Hay un detalle en esto que realmente no entiendo, ¿quieres tener la tabla de maquetas o no?

Usando la tabla de maquetas con los puntajes que necesita para crear las siguientes medidas (las hice para Imperativo pero luego puede cambiarlas a Tema y Medida):

Scored = COUNTROWS(FILTER('Mock up', 'Mock up'[Score] <> BLANK()))

Weight imperative = 
SWITCH (
    TRUE (),
    ISINSCOPE ( 'Mock up'[Imperative] ),
        DISTINCTCOUNT ( 'Mock up'[Imperative] )
            / CALCULATE (
                DISTINCTCOUNT ( 'Mock up'[Imperative] ),
                ALLSELECTED ( 'Mock up'[Imperative] ),
                'Mock up'[Score] <> BLANK ()
            ), ISINSCOPE('Mock up'[Theme Name]),
    DISTINCTCOUNT ( 'Mock up'[Theme Name] )
        / CALCULATE (
            DISTINCTCOUNT ( 'Mock up'[Theme Name] ),
            ALLSELECTED ( 'Mock up'[Theme Name] ),
            'Mock up'[Score] <> BLANK ()
        ),
   
        DISTINCTCOUNT ( 'Mock up'[Measure Name] )
             / CALCULATE (
                COUNT ( 'Mock up'[Measure Name] ),
                ALLSELECTED ( 'Mock up'[Measure Name] ),
                 'Mock up'[Score] > 0 
            )
 
)

Metric Imperative = if([Scored] = BLANK(), BLANK(), [Weight imperative]/[Scored] )

Para la última columna con los promedios creé las siguientes medidas:

Score_Average = AVERAGE('Mock up'[Score])

Average Score Imperative = 
IF(ISFILTERED('Mock up'[Imperative]), [Score_Average], AVERAGEX( ALLSELECTED('Mock up'[Imperative]), [Score_Average])

Average Score Theme = 
IF(ISFILTERED('Mock up'[Theme Name]), [Score_Average], AVERAGEX( ALLSELECTED('Mock up'[Theme Name]), [Score_Average])
)

Average Score MEasure = 
IF(ISFILTERED('Mock up'[Measure Name]), [Score_Average], AVERAGEX( ALLSELECTED('Mock up'[Measure Name]), [Score_Average])
)

Compruebe el resultado en el PBIX adjunto.

mfelix

Hola @Oneill1,

Hay un detalle en esto que realmente no entiendo, ¿quieres tener la tabla de maquetas o no?

Usando la tabla de maquetas con los puntajes que necesita para crear las siguientes medidas (las hice para Imperativo pero luego puede cambiarlas a Tema y Medida):

Scored = COUNTROWS(FILTER('Mock up', 'Mock up'[Score] <> BLANK()))

Weight imperative = 
SWITCH (
    TRUE (),
    ISINSCOPE ( 'Mock up'[Imperative] ),
        DISTINCTCOUNT ( 'Mock up'[Imperative] )
            / CALCULATE (
                DISTINCTCOUNT ( 'Mock up'[Imperative] ),
                ALLSELECTED ( 'Mock up'[Imperative] ),
                'Mock up'[Score] <> BLANK ()
            ), ISINSCOPE('Mock up'[Theme Name]),
    DISTINCTCOUNT ( 'Mock up'[Theme Name] )
        / CALCULATE (
            DISTINCTCOUNT ( 'Mock up'[Theme Name] ),
            ALLSELECTED ( 'Mock up'[Theme Name] ),
            'Mock up'[Score] <> BLANK ()
        ),
   
        DISTINCTCOUNT ( 'Mock up'[Measure Name] )
             / CALCULATE (
                COUNT ( 'Mock up'[Measure Name] ),
                ALLSELECTED ( 'Mock up'[Measure Name] ),
                 'Mock up'[Score] > 0 
            )
 
)

Metric Imperative = if([Scored] = BLANK(), BLANK(), [Weight imperative]/[Scored] )

Para la última columna con los promedios creé las siguientes medidas:

Score_Average = AVERAGE('Mock up'[Score])

Average Score Imperative = 
IF(ISFILTERED('Mock up'[Imperative]), [Score_Average], AVERAGEX( ALLSELECTED('Mock up'[Imperative]), [Score_Average])

Average Score Theme = 
IF(ISFILTERED('Mock up'[Theme Name]), [Score_Average], AVERAGEX( ALLSELECTED('Mock up'[Theme Name]), [Score_Average])
)

Average Score MEasure = 
IF(ISFILTERED('Mock up'[Measure Name]), [Score_Average], AVERAGEX( ALLSELECTED('Mock up'[Measure Name]), [Score_Average])
)

Compruebe el resultado en el PBIX adjunto.

oneill1

En respuesta a mfelix

Hola @mfelix

Sí, esto logra la mayor parte de lo que estaba tratando de representar visualmente. Muchas gracias.

Copié sus medidas, las entendí un poco más que antes de este proceso, así que realmente aprecio su orientación y apoyo.

He ajustado un poco lo que necesito, que puedes ver en el archivo de la carpeta. pero creo que esto ayudará a enviar el mensaje que quiero que la gente escuche.

Gracias de nuevo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *