> For the complete documentation index, see [llms.txt](https://docs.powermonitor.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.powermonitor.com.br/es/power-monitor/qualidade-de-dados/score-de-boas-praticas-bpa.md).

# Score de Buenas Prácticas

Evalúe un modelo semántico con 55 reglas de buenas prácticas (Tabular Editor BPA, directrices de Microsoft y heurísticas de Power Monitor), con severidad, objeto, recomendación, fuente de la regla y c

El **Score de Buenas Prácticas** verifica si un modelo semántico sigue las buenas prácticas de modelado del **Best Practice Analyzer (BPA)** de Tabular Editor, complementadas con reglas de las **directrices oficiales de Microsoft** para Power BI y con recomendaciones reconocidas de la comunidad. El resultado es una nota de 0 a 100, la nota de cada categoría y la lista de problemas con la corrección recomendada.

**Cómo acceder:** *Calidad de Datos › Score de Buenas Prácticas*. Disponible para todos los perfiles (solo lectura), salvo que el acceso a la página esté bloqueado: el perfil predefinido **Audit** no abre esta pantalla de forma predeterminada, y un administrador puede habilitarla o bloquearla por perfil o por usuario (consulte [Usuarios](/es/power-monitor/usuarios.md#perfiles-de-usuario)); el bloqueo también se aplica a los datos. El mismo score aparece en la pestaña **Adherencia de Buenas Prácticas** del detalle del modelo, en pantallas como [Gobernanza › Modelos Semánticos](/es/power-monitor/governanca/modelos-semanticos.md).

<figure><picture><source srcset="/files/KapX1UygZV9lTTbPsFNo" media="(prefers-color-scheme: dark)"><img src="https://4061945739-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHiNRgoZ8eJ4rcnrLAoso%2Fuploads%2Fgit-blob-a8320c52415fe8dc60066284fd88066868143370%2Fpm-qualidade-score-boas-praticas-es.png?alt=media" alt="Pantalla Score de Buenas Prácticas con la puntuación general, las tarjetas por categoría y la tabla de problemas"></picture><figcaption><p>Puntuación general, categorías y problemas encontrados</p></figcaption></figure>

## Para qué sirve

* **Revisión de modelos antes de pasar a producción** (code review de modelado).
* **Estandarización** de nomenclatura, formato y tipos de datos entre equipos.
* **Rendimiento**: encontrar columnas de punto flotante, columnas ocultas sin uso, relaciones bidireccionales y funciones que impiden el *query folding*.
* **Priorización de la deuda técnica** en modelos críticos, usando la nota y la severidad.

## Funcionalidades

La pantalla usa el mismo diseño del [Score de IA](/es/power-monitor/qualidade-de-dados/score-de-ia.md), con las reglas y los pesos propios del BPA.

### Selección del modelo semántico

**Qué es:** el campo *Buscar modelo semántico...*, en la parte superior de la pantalla; en la lista solo aparecen modelos semánticos, con el workspace de cada uno.

**Para qué sirve:** elegir el modelo que se va a revisar.

<figure><picture><source srcset="/files/XhjNhRUnUCREYkjfE5ok" media="(prefers-color-scheme: dark)"><img src="https://4061945739-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHiNRgoZ8eJ4rcnrLAoso%2Fuploads%2Fgit-blob-6426c091af77f2cad449b450ddd7310bb23d1709%2Fpm-qualidade-score-boas-praticas-selecao-es.png?alt=media" alt="Campo Buscar modelo semántico con la lista de sugerencias abierta"></picture><figcaption><p>Búsqueda y selección del modelo</p></figcaption></figure>

**Cómo usar:**

1. Escriba al menos 2 caracteres en **Buscar modelo semántico...**.
2. Haga clic en la sugerencia (o use **↑**/**↓** y **Enter**).
3. La franja debajo de la búsqueda confirma el modelo y el workspace, con el recordatorio *el análisis usa los metadatos del último escaneo*, y la pantalla muestra *Analizando el modelo...*.

**Cómo funciona:** sin un modelo elegido, la pantalla muestra *Ningún modelo seleccionado*. Si el análisis falla, aparece *No se pudo analizar este modelo semántico.* Una nueva búsqueda reemplaza el resultado anterior.

### Puntuación general

**Qué es:** el medidor de **0 a 100** con el estado **Bueno** (80 a 100, verde), **Atención** (60 a 79, ámbar) o **Requiere atención** (0 a 59, naranja).

**Para qué sirve:** ofrecer una nota única de adherencia a las buenas prácticas, útil para priorizar la deuda técnica entre modelos.

<figure><picture><source srcset="/files/f4I83OTYQ7MjflmI5LeF" media="(prefers-color-scheme: dark)"><img src="https://4061945739-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHiNRgoZ8eJ4rcnrLAoso%2Fuploads%2Fgit-blob-25a139962acefa2186d33855693e183d1eece6e0%2Fpm-qualidade-score-boas-praticas-score-geral-es.png?alt=media" alt="Medidor de la puntuación general con el estado y las tarjetas por categoría"></picture><figcaption><p>Puntuación general y tarjetas por categoría</p></figcaption></figure>

**Cómo funciona:** la puntuación general es el promedio de las categorías ponderado por los pesos proporcionales (consulte [Categorías y pesos](#categorias-y-pesos)). Es el mismo valor de la columna *Score de Buenas Prácticas* de la [Inventario del Ambiente](/es/power-monitor/qualidade-de-dados/inventario-do-ambiente.md).

### Tarjetas por categoría

**Qué es:** una tarjeta para cada categoría evaluada (hasta nueve), con el peso (porcentaje en la esquina de la tarjeta), la nota (0 a 100, con una barra verde desde 80, azul de 60 a 79 y roja por debajo de 60) y el número de **Problemas**. El ícono de información junto al título explica que las categorías sin verificaciones aplicables quedan fuera y los pesos se redistribuyen.

**Para qué sirve:** ver qué aspectos del modelo (DAX, formato, metadatos, diseño, nomenclatura, rendimiento, directrices, gobernanza y seguridad, mantenibilidad) concentran los problemas.

<figure><picture><source srcset="/files/zJaqPizxvF3YfVjQl08I" media="(prefers-color-scheme: dark)"><img src="https://4061945739-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHiNRgoZ8eJ4rcnrLAoso%2Fuploads%2Fgit-blob-25f0d243fa88d68fe4f6521354a8066cd9973b6b%2Fpm-qualidade-score-boas-praticas-filtro-categoria-es.png?alt=media" alt="Tarjeta de categoría seleccionada y la tabla filtrada, con el botón Limpiar filtro"></picture><figcaption><p>Tarjeta seleccionada que filtra la tabla de problemas</p></figcaption></figure>

**Cómo usar:**

1. Haga clic en la tarjeta de una categoría (por ejemplo, **Rendimiento**) para ver solo sus problemas.
2. Para deshacerlo, vuelva a hacer clic en la tarjeta o en **Limpiar filtro: Rendimiento**, encima de la tabla.

### Tabla Problemas encontrados

**Qué es:** la lista de problemas del modelo, con **Severidad**, **Categoría**, **Objeto**, **Problema** y **Acción recomendada**. En cada fila, el elemento desplegable **Recomendación** explica qué hacer, y, debajo de la acción, aparece el enlace **Fuente: …** a la documentación de la regla (las heurísticas de Power Monitor no tienen enlace). Cuando la regla trae un detalle (por ejemplo, el nombre de la función o de la columna involucrada), aparece en texto más pequeño debajo del nombre del problema.

**Para qué sirve:** conducir la revisión del modelo regla por regla, con la corrección sugerida.

<figure><picture><source srcset="/files/rlkk0qQQ2Vh9C7M6sBNR" media="(prefers-color-scheme: dark)"><img src="https://4061945739-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHiNRgoZ8eJ4rcnrLAoso%2Fuploads%2Fgit-blob-31e347647bf068befa191bc2e78a614a9aa7bdb8%2Fpm-qualidade-score-boas-praticas-problemas-es.png?alt=media" alt="Tabla Problemas encontrados con la columna Acción recomendada y el enlace Fuente"></picture><figcaption><p>Problemas con la acción recomendada y la fuente de la regla</p></figcaption></figure>

**Cómo usar:**

1. Use las listas del encabezado: **Severidad** (**Todas**, *Error*, *Aviso*, *Info*), **Categoría** (**Todas** o una categoría) y **Problema** (**Todos** o una regla específica).
2. Escriba parte del nombre de una tabla, columna, medida o relación en **Buscar objeto...** (columna **Objeto**).
3. Haga clic en **Recomendación** para leer la guía de corrección y, para leer la documentación de una regla, haga clic en el enlace **Fuente:** (por ejemplo, *Fuente: learn.microsoft.com*), debajo de la **Acción recomendada**. La página se abre en una pestaña nueva, con la explicación completa y ejemplos de corrección.

**Cómo funciona:** los filtros se suman; si nada los cumple, la tabla muestra *Ningún problema coincide con los filtros aplicados.* Si no hay ningún problema, aparece *No se encontraron problemas. ¡Excelente!* Los problemas ya vienen ordenados por severidad (Error, luego Aviso, luego Info), categoría y objeto; las columnas no tienen ordenación propia. La tabla muestra 10 problemas por página: use **Elementos por página** (10, 25, 50 o 100) y la paginación, y tenga en cuenta que cambiar un filtro vuelve a la primera página. En pantallas estrechas (móvil), cada problema se convierte en una tarjeta y los filtros pasan a una barra sobre la lista.

{% hint style="info" %}
Los nombres, las descripciones y las recomendaciones de las reglas se muestran en el idioma de la interfaz. Para atacar primero lo que más pesa, filtre **Severidad** = *Error*: las reglas de error (división sin `DIVIDE`, coma flotante, Auto Date/Time y credencial en el código) descuentan el doble que un aviso.
{% endhint %}

### Reglas no evaluadas y cobertura

**Qué es:** el elemento desplegable **Reglas no evaluadas (N)**, debajo de las tarjetas (solo aparece cuando alguna regla quedó fuera) y, cuando falta parte de los metadatos del modelo, una franja de aviso que informa que las reglas que dependen de ellos no se evaluaron.

**Para qué sirve:** saber qué **no** miró la nota. Una regla que no pudo evaluarse nunca cuenta como aprobada ni como reprobada: simplemente no entra en el score.

<figure><picture><source srcset="/files/zNHRhnkhvCIgZRBxrSDo" media="(prefers-color-scheme: dark)"><img src="https://4061945739-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHiNRgoZ8eJ4rcnrLAoso%2Fuploads%2Fgit-blob-0e91ab322889b1a5af1675139bb1eabd26f47f79%2Fpm-qualidade-score-boas-praticas-regras-nao-avaliadas-es.png?alt=media" alt="Elemento Reglas no evaluadas desplegado con el nombre de cada regla y el motivo"></picture><figcaption><p>Reglas no evaluadas y el motivo de cada una</p></figcaption></figure>

Cada regla de la lista trae el motivo, por ejemplo: *Metadatos del modelo (TMSL) no disponibles*, *Ningún informe asociado al modelo*, *Definición del modelo (TMSL) aún no capturada*, *Dato aún no capturado* o *Datos de contexto (informes, gobernanza, seguridad) no cargados en este análisis*. Las reglas de uso en los informes, por ejemplo, solo se evalúan cuando el modelo tiene informes con la estructura capturada (vea [Estructura de Informes](/es/power-monitor/mapeamento/estrutura-de-relatorios.md)).

### Versión del catálogo

**Qué es:** la etiqueta *catálogo vN*, junto a los botones **Exportar CSV** y **Ejecutar de nuevo**.

**Para qué sirve:** el score puede cambiar cuando cambia el conjunto de reglas (reglas nuevas o textos modificados). Compare notas solo entre análisis de la misma versión del catálogo.

### Exportar CSV

**Qué es:** el botón **Exportar CSV**, debajo de las tarjetas.

**Para qué sirve:** registrar la revisión y distribuir las correcciones.

**Cómo usar:**

1. Con un modelo evaluado, haga clic en **Exportar CSV** (deshabilitado cuando no hay problemas).
2. Se descarga el archivo `bpaScore-<nombre del modelo>-<fecha>.csv`.

**Cómo funciona:** el archivo incluye **todos** los problemas del modelo (los filtros de la pantalla no se aplican a la exportación), con las columnas Severidad, Categoría, Objeto, Problema, Acción recomendada, Recomendación y **Fuente (URL)** de la regla.

### Ejecutar de nuevo

**Qué es:** el botón **Ejecutar de nuevo**, junto a **Exportar CSV**.

**Para qué sirve:** verificar si las correcciones publicadas mejoraron la nota.

**Cómo usar:**

1. Publique los cambios del modelo en Power BI y espere el próximo escaneo (consulte [Mapeo](/es/power-monitor/mapeamento.md)).
2. Con el modelo abierto, haga clic en **Ejecutar de nuevo** (o vuelva a seleccionar el modelo en la búsqueda).
3. Compare la nueva nota general y el número de **Problemas** de cada categoría.

**Cómo funciona:** el análisis usa los metadatos más recientes ya recopilados; no se ejecuta nada contra el modelo y no se modifica nada.

### Pestaña de adherencia en el detalle del modelo

**Qué es:** el mismo análisis dentro del detalle de un modelo semántico, en la pestaña **Adherencia de Buenas Prácticas** (junto a **Adherencia de IA**), abierta desde pantallas como Gobernanza › Modelos Semánticos.

**Cómo funciona:** la pestaña muestra la puntuación general, las tarjetas por categoría, la tabla de problemas, **Exportar CSV** y **Ejecutar de nuevo** del modelo abierto, sin el campo de búsqueda. El análisis comienza al abrir la pestaña (*Analizando el modelo...*); si falla, aparece *No se pudo analizar este modelo semántico.*

## Categorías y pesos

Son nueve categorías. A diferencia del Score de IA, **los pesos no son fijos**: cada categoría pesa en proporción a la cantidad de objetos que evaluó en ese modelo, y las categorías sin ninguna verificación aplicable quedan fuera (los pesos de las demás se redistribuyen). Un modelo con muchas columnas y medidas visibles, por ejemplo, tendrá Nomenclatura y Formato con mayor peso. El porcentaje de cada categoría aparece en la esquina de la tarjeta.

| Categoría                   | Enfoque                                                                           |
| --------------------------- | --------------------------------------------------------------------------------- |
| **Expresiones DAX**         | Calidad y rendimiento de las fórmulas DAX y de los filtros de seguridad           |
| **Formato**                 | Format strings en columnas y medidas                                              |
| **Metadatos**               | Tipos de datos, agregación predeterminada y fechas almacenadas como texto         |
| **Diseño del Modelo**       | Auto Date/Time, relaciones, tabla de fechas y ordenación                          |
| **Nomenclatura**            | Convenciones de nombres de objetos y de columnas de relación                      |
| **Rendimiento**             | Objetos sin uso (en el modelo y en los informes) y dimensiones innecesarias       |
| **Directrices de Power BI** | Recomendaciones oficiales de Microsoft e higiene de Power Query                   |
| **Gobernanza y Seguridad**  | Credenciales en el código, RLS, etiqueta de confidencialidad, aval y responsables |
| **Mantenibilidad**          | Nombres predeterminados, fuentes locales y expresiones sin uso                    |

## Las 55 reglas evaluadas

Las reglas provienen de tres familias: el conjunto oficial del **Best Practice Analyzer (Tabular Editor)**, las **directrices de Microsoft** (Microsoft Learn) y **heurísticas de Power Monitor**. Cuando la regla tiene una fuente pública, la pantalla muestra el enlace **Fuente** (vea [Origen de las reglas](#origen-de-las-reglas)). Los nombres y las descripciones aparecen en el idioma de la interfaz.

### Expresiones DAX

| Regla                                                                  | Severidad | Cuándo se dispara                                                                                                   |
| ---------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |
| Evite la división (use la función DIVIDE)                              | Error     | Una medida o columna calculada usa `/` con un denominador que no es constante                                       |
| Las referencias a columnas deben estar totalmente calificadas          | Aviso     | Referencia a una columna sin el nombre de la tabla (`[Columna]` en lugar de `Tabla[Columna]`)                       |
| Las referencias a medidas no deben estar calificadas                   | Aviso     | Referencia a una medida con nombre de tabla (`Tabla[Medida]`)                                                       |
| Revise las expresiones con TODO                                        | Info      | La expresión contiene la palabra `TODO`                                                                             |
| Evite la función IFERROR                                               | Aviso     | La expresión usa `IFERROR`                                                                                          |
| Prefiera SUMMARIZECOLUMNS a SUMMARIZE                                  | Aviso     | La expresión usa `SUMMARIZE`                                                                                        |
| Prefiera TREATAS a INTERSECT para relaciones virtuales                 | Info      | La expresión usa `INTERSECT`                                                                                        |
| Use variables en expresiones DAX complejas                             | Info      | Expresión de más de 150 caracteres y sin `VAR`                                                                      |
| Reduzca el uso de RELATED en columnas calculadas                       | Info      | Una columna calculada usa `RELATED`                                                                                 |
| Evite FILTER sobre una tabla completa como argumento de filtro         | Aviso     | `CALCULATE` o `CALCULATETABLE` recibe `FILTER` sobre una tabla completa como argumento de filtro                    |
| Use SELECTEDVALUE en lugar de IF(HASONEVALUE(...), VALUES(...))        | Info      | Patrón `IF(HASONEVALUE(x), VALUES(x), ...)`, que `SELECTEDVALUE` reemplaza                                          |
| Use COUNTROWS en lugar de COUNT sobre una columna                      | Info      | `COUNT` o `COUNTA` sobre una sola columna                                                                           |
| Evite convertir BLANK en cero o texto vacío                            | Info      | Convierte BLANK en cero o texto vacío (`IF(ISBLANK(x), 0, x)`, `COALESCE(x, 0)`)                                    |
| Use variables en lugar de EARLIER y EARLIEST                           | Info      | La expresión usa `EARLIER` o `EARLIEST`                                                                             |
| Evite funciones volátiles en columnas calculadas                       | Aviso     | Una columna calculada usa una función volátil (el valor solo se calcula en la actualización y queda desactualizado) |
| Use USERPRINCIPALNAME en lugar de USERNAME en los filtros de seguridad | Aviso     | El filtro de un rol de seguridad usa `USERNAME()`; prefiera `USERPRINCIPALNAME()`                                   |

### Formato

| Regla                                                      | Severidad | Cuándo se dispara                                     |
| ---------------------------------------------------------- | --------- | ----------------------------------------------------- |
| Defina la Format String de las columnas numéricas visibles | Aviso     | Columna numérica o de fecha visible sin format string |
| Defina la Format String de las medidas numéricas visibles  | Aviso     | Medida visible sin format string                      |

### Metadatos

| Regla                                      | Severidad | Cuándo se dispara                                                                   |
| ------------------------------------------ | --------- | ----------------------------------------------------------------------------------- |
| No use tipos de datos de coma flotante     | Error     | Columna de tipo coma flotante (Double). Use Decimal Fijo/Moneda                     |
| No resuma las columnas numéricas           | Info      | Columna numérica visible con una agregación predeterminada distinta de "Ninguna"    |
| Las fechas no deben almacenarse como texto | Info      | Columna de texto visible cuyo nombre parece el de una fecha (heurística por nombre) |

### Diseño del Modelo

| Regla                                                                 | Severidad | Cuándo se dispara                                                                                                 |
| --------------------------------------------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------- |
| Desactive la fecha y hora automática                                  | Error     | El modelo contiene tablas automáticas de Auto Date/Time                                                           |
| Oculte las columnas de clave externa                                  | Info      | Una columna del lado "muchos" de una relación está visible                                                        |
| Evite las relaciones de muchos a muchos                               | Aviso     | Relación de muchos a muchos                                                                                       |
| Tabla sin relaciones                                                  | Info      | Tabla visible sin ninguna relación (se omiten las tablas solo de medidas y los grupos de cálculo)                 |
| Relación inactiva que nunca se activa                                 | Info      | Relación inactiva que ninguna expresión activa con `USERELATIONSHIP`                                              |
| Marque la tabla de fechas                                             | Aviso     | Hay una tabla con aspecto de calendario y columnas de fecha, pero ninguna tabla está marcada como tabla de fechas |
| Ordene los nombres de mes y día de la semana por una columna numérica | Aviso     | Columna de texto con nombres de mes o día de la semana sin columna de ordenación (se ordena alfabéticamente)      |

### Nomenclatura

| Regla                                                             | Severidad | Cuándo se dispara                                                                                                                                                                                       |
| ----------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Los nombres de las columnas de una relación deben ser iguales     | Aviso     | Las columnas de los dos lados de una relación tienen nombres distintos (con varias relaciones entre las mismas tablas, el nombre de la columna de origen debe terminar con el de la columna de destino) |
| Los nombres de columnas y jerarquías deben comenzar con mayúscula | Aviso     | Una columna visible comienza con minúscula                                                                                                                                                              |
| Los nombres de medidas y tablas deben comenzar con mayúscula      | Aviso     | Una tabla o medida visible comienza con minúscula                                                                                                                                                       |
| Evite CamelCase en columnas y jerarquías visibles                 | Aviso     | Nombre de columna visible en CamelCase, sin espacios                                                                                                                                                    |
| Evite CamelCase en medidas y tablas visibles                      | Aviso     | Nombre de tabla o medida visible en CamelCase, sin espacios                                                                                                                                             |

### Rendimiento

| Regla                                                                                       | Severidad | Cuándo se dispara                                                                                           |
| ------------------------------------------------------------------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------- |
| Elimine las columnas no utilizadas                                                          | Aviso     | Columna oculta que no es referenciada por ninguna expresión DAX ni usada en una relación                    |
| Elimine las medidas no utilizadas                                                           | Info      | Medida oculta que no es referenciada por ninguna expresión DAX                                              |
| Evite las dimensiones de un solo atributo que no se comparten entre varias tablas de hechos | Aviso     | Dimensión vinculada a una sola tabla y con como máximo un atributo visible además de las claves             |
| Tabla no usada por ningún informe                                                           | Aviso     | Ningún informe vinculado al modelo usa la tabla (un solo hallazgo cubre la tabla y sus campos)              |
| Columna no usada por ningún informe                                                         | Aviso     | Ningún informe usa la columna (se omiten las columnas de ordenación, las claves y los niveles de jerarquía) |
| Medida no usada por ningún informe                                                          | Info      | Ningún informe usa la medida                                                                                |

### Directrices de Power BI

| Regla                                                                        | Severidad | Cuándo se dispara                                                                                            |
| ---------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------ |
| Evite el filtrado bidireccional en las relaciones                            | Aviso     | Relación con filtro cruzado en ambas direcciones                                                             |
| Use claves enteras en las relaciones en lugar de texto                       | Info      | Una relación usa una columna de texto como clave                                                             |
| Prefiera las transformaciones de Power Query a muchas columnas calculadas    | Info      | Tabla visible con más de 3 columnas calculadas                                                               |
| Evite las funciones volátiles en Power Query                                 | Aviso     | Power Query usa `DateTime.LocalNow`, `DateTimeZone.FixedLocalNow`, `DateTimeZone.LocalNow` o `Number.Random` |
| Consolide los pasos repetidos de cambio de nombre de columnas en Power Query | Info      | Más de un paso `Table.RenameColumns` en la consulta de la tabla                                              |
| Consolide los pasos repetidos de conversión de tipo de datos en Power Query  | Info      | Más de un paso `Table.TransformColumnTypes` en la consulta de la tabla                                       |

### Gobernanza y Seguridad

| Regla                                                             | Severidad | Cuándo se dispara                                                                                                                                                   |
| ----------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Credenciales almacenadas en el código de Power Query              | Error     | Contraseña, clave de API, token, SAS o encabezado Authorization escrito en una consulta o expresión compartida (solo se muestra el tipo de secreto, nunca el valor) |
| Rol de seguridad sin filtro de filas                              | Aviso     | Rol de seguridad (que no sea de administrador) sin filtro de filas en ninguna tabla                                                                                 |
| Relación bidireccional en un modelo con seguridad a nivel de fila | Aviso     | Relación bidireccional en la ruta de la seguridad a nivel de fila, o filtro cruzado bidireccional en una tabla con seguridad                                        |
| Modelo semántico sin etiqueta de confidencialidad                 | Aviso     | El modelo no tiene etiqueta de confidencialidad de Microsoft Purview (solo tiene sentido en tenants que usan etiquetas)                                             |
| El modelo semántico que alimenta informes no está avalado         | Info      | Modelo con al menos un informe que no está promovido ni certificado                                                                                                 |
| Modelo semántico sin responsable                                  | Aviso     | Ningún responsable registrado en los metadatos de gobernanza del modelo                                                                                             |
| Modelo semántico sin nivel de criticidad                          | Info      | Ninguna criticidad registrada en los metadatos de gobernanza del modelo                                                                                             |

### Mantenibilidad

| Regla                                                           | Severidad | Cuándo se dispara                                                                                                                |
| --------------------------------------------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------- |
| Objeto con nombre predeterminado                                | Info      | Tabla, columna o medida con nombre predeterminado (Table1, Query1, Column1, Measure 1...)                                        |
| Origen de datos en una unidad local o recurso compartido de red | Aviso     | Una consulta lee una ruta local fija (`C:\...`) o un recurso compartido de red                                                   |
| Expresión compartida o parámetro sin usar                       | Info      | Parámetro, función o consulta compartida que ninguna otra expresión referencia (los parámetros RangeStart y RangeEnd se ignoran) |

## Origen de las reglas

Cada regla del Score de Buenas Prácticas pertenece a una de estas familias. La pantalla no muestra una etiqueta de origen (eso solo existe en el [Score de Buenas Prácticas de Informes](/es/power-monitor/qualidade-de-dados/score-de-boas-praticas-de-relatorios.md)): el origen se indica con el enlace **Fuente** y con el texto de la descripción.

| Origen                                      | Cómo aparece en la pantalla                                                                                                               |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| **Best Practice Analyzer (Tabular Editor)** | El conjunto oficial de reglas de Tabular Editor. La regla trae el enlace **Fuente** al repositorio de las reglas                          |
| **Artículos reconocidos de la comunidad**   | Algunas reglas de DAX y de Power Query siguen un artículo de buenas prácticas publicado por la comunidad, citado en el enlace **Fuente**  |
| **Directrices de Microsoft**                | La regla sigue una página de la documentación oficial de Microsoft (Microsoft Learn), citada en el enlace **Fuente: learn.microsoft.com** |
| **Heurística de Power Monitor**             | Regla propia de Power Monitor, sin fuente externa: no hay enlace **Fuente** y la descripción indica que es una heurística                 |

Las heurísticas son señales útiles, pero no reglas oficiales: evalúe caso por caso si tienen sentido para su modelo.

## Reglas y comportamiento

* **Cálculo del score.** Cada categoría parte de 100 y pierde puntos según la proporción de problemas sobre los objetos evaluados (Error = 2, Aviso = 1, Info = 0,5). La puntuación general es el promedio de las categorías ponderado por los pesos proporcionales descritos anteriormente. Es el mismo valor que se muestra en la columna *Score de Buenas Prácticas* del [Inventario del Ambiente](/es/power-monitor/qualidade-de-dados/inventario-do-ambiente.md), que considera **bajo** un score inferior a 60.
* **Solo metadatos.** Las reglas se evalúan sobre lo que recopila el escaneo (nombres, visibilidad, tipos, format strings, agregación predeterminada, expresiones DAX y Power Query, relaciones). No se ejecuta nada contra el modelo y no se modifica nada.
* **Reglas no evaluadas.** Las reglas que dependen de datos que aún no existen para el modelo (informes con estructura capturada, la definición completa del modelo, la seguridad a nivel de fila, los metadatos de gobernanza) quedan fuera del cálculo y se listan en **Reglas no evaluadas**; nunca cuentan como "aprobadas".
* **Limitaciones conocidas.** Las verificaciones de DAX buscan patrones en el texto de la expresión; el nombre de una función dentro de un comentario puede generar un falso positivo. La regla *Elimine las columnas no utilizadas* solo evalúa columnas ocultas y no ve el uso en variaciones de columna (ni, mientras la definición completa del modelo aún no se haya capturado, la ordenación por columna y las jerarquías), por lo que puede dejar de señalar columnas sin uso (nunca señala de más). Para un análisis de uso completo, que considere los informes, use la [Limpieza de Modelo](/es/power-monitor/performance/limpeza-de-modelo.md).
* **Las tablas de Auto Date/Time** se ignoran en las demás reglas (solo generan el error *Desactive la fecha y hora automática*).
* **Alcance de workspaces.** Las reglas de uso en los informes consideran los informes del modelo que su usuario puede ver (y, un nivel más, los modelos compuestos construidos sobre él). Con la visibilidad restringida a algunos workspaces, un objeto usado solo por un informe fuera de su alcance puede aparecer como no usado; confirme con alguien que tenga visibilidad total antes de eliminar algo.
* **Artefactos estándar de Microsoft.** Los modelos creados por la propia Microsoft (Fabric Capacity Metrics, métricas de uso, etc.) no aparecen en la búsqueda de modelos, porque no se analizan. Vea [Artefactos estándar de Microsoft](/es/power-monitor/qualidade-de-dados/exposicao-de-dados.md#artefactos-estandar-de-microsoft).

## Paso a paso: escenarios comunes

### Cómo revisar un modelo antes de pasar a producción

{% stepper %}
{% step %}

### Evalúe el modelo

Seleccione el modelo y anote la **Puntuación general**.
{% endstep %}

{% step %}

### Trate los errores

Filtre **Severidad** = *Error* y corrija todos los elementos en Power BI Desktop o en Tabular Editor.
{% endstep %}

{% step %}

### Revise los avisos por categoría

Haga clic en las tarjetas de mayor peso y decida, elemento por elemento, qué corregir y qué aceptar como excepción.
{% endstep %}

{% step %}

### Registre y vuelva a evaluar

Exporte el CSV para registrar la revisión; después de publicar, espere el escaneo y haga clic en **Ejecutar de nuevo** para confirmar la nueva nota.
{% endstep %}
{% endstepper %}

## Preguntas frecuentes

<details>

<summary>¿Por qué cambia el peso de una categoría de un modelo a otro?</summary>

En el Score de Buenas Prácticas, el peso de cada categoría es proporcional al número de objetos que evaluó en ese modelo. Un modelo con pocas expresiones DAX tendrá la categoría Expresiones DAX con un peso bajo, por ejemplo.

</details>

<details>

<summary>Corregí los problemas, pero la nota sigue igual.</summary>

El análisis usa los metadatos del último escaneo. Publique los cambios, espere el próximo ciclo de recopilación y haga clic en **Ejecutar de nuevo**.

</details>

<details>

<summary>"Elimine las columnas no utilizadas" señaló una columna que se usa en un informe.</summary>

Esa regla considera solo el modelo (expresiones DAX y relaciones) y solo evalúa columnas **ocultas**. El uso en los informes lo evalúan reglas aparte (por ejemplo, *Columna no usada por ningún informe*), que dependen de que la estructura de los informes se haya capturado. Para un análisis completo de visuales, filtros y formato condicional, consulte la [Limpieza de Modelo](/es/power-monitor/performance/limpeza-de-modelo.md).

</details>

## Páginas relacionadas

* [Score de IA](/es/power-monitor/qualidade-de-dados/score-de-ia.md)
* [Score de Buenas Prácticas de Informes](/es/power-monitor/qualidade-de-dados/score-de-boas-praticas-de-relatorios.md): las reglas equivalentes para informes
* [Limpieza de Modelo](/es/power-monitor/performance/limpeza-de-modelo.md)
* [Inventario del Ambiente](/es/power-monitor/qualidade-de-dados/inventario-do-ambiente.md)
* [Rendimiento › Evaluación de Rendimiento](/es/power-monitor/performance/avaliacao-de-performance.md): la evaluación de rendimiento reutiliza estas reglas


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.powermonitor.com.br/es/power-monitor/qualidade-de-dados/score-de-boas-praticas-bpa.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
