Dashboard 2: Visualización y Documentación para Narrar a un Equipo de Trabajo
domingo, 12 de febrero de 2023
Documentación del Modelado
VARIABLES EN BASE DE DATOS ORIGINAL
| VARIABLE ORIGINAL | TIPO VARIABLE | DESCRIPCIÓN |
|---|---|---|
| How old are you? | Texto | Edad del empleado. Botones de opción que describen rangos de edad. |
| What industry do you work in? | Texto | Tipo de industria en la que trabaja (educación, salud, ventas, etc.). Cuadros de chequeo con única respuesta y opción para escribir texto cuando aplique. |
| Job title | Texto | Cargo que ocupa el empleado. Campo de texto libre |
| If your job title needs additional context, please clarify here: | Texto | Apuntes adicionales relacionados con el cargo. Campo de texto libre |
| What is your annual salary? (You'll indicate the currency in a later question. If you are part-time or hourly, please enter an annualized equivalent -- what you would earn if you worked the job 40 hours a week, 52 weeks a year.) | Número | Salario anual del empleado, en caso de trabajar medio tiempo se debe estimar su salario como si fuera de tiempo completo. Campo de texto con validación numérica |
| How much additional monetary compensation do you get, if any (for example, bonuses or overtime in an average year)? Please only include monetary compensation here, not the value of benefits. | Número | Ingresos adicionales al sueldo como bonos, horas extras, comisiones, etc. Campo de texto con validación numérica |
| Please indicate the currency | Texto | Moneda en la que devenga su salario. Lista de opciones |
| If "Other," please indicate the currency here: | Texto | Otra moneda si aplica. Campo de texto libre |
| If your income needs additional context, please provide it here: | Texto | Apuntes adicionales relacionados con sus ingresos. Campo de texto libre |
| What country do you work in? | Texto | Pais en el que trabaja. Campo de texto libre |
| If you're in the U.S., what state do you work in? | Texto | Estado de USA si aplica. Cuadros de chequeo con varias respuestas posibles, cuando hay mas de un cuadro chequeado los datos se guardan separados por comas |
| What city do you work in? | Texto | Ciudad en la que trabaja. Campo de texto libre |
| How many years of professional work experience do you have overall? | Texto | Cuantos años de experiencia laboral tiene en total. Botones de opción que describen rangos de años |
| How many years of professional work experience do you have in your field? | Texto | Cuantos años de experiencia laboral tiene en el cargo actual. Botones de opción que describen rangos de años |
| What is your highest level of education completed? | Texto | Cual es su nivel de escolaridad. Lista de opciones |
| What is your gender? | Texto | Cual es su género. Botones de opción para seleccionar el género |
| What is your race? (Choose all that apply.) | Texto | Cuál es su raza. Cuadros de chequeo con varias respuestas posibles, cuando hay más de un cuadro chequeado, los datos se guardan separados por comas |
VARIABLES DESPUÉS DEL MODELADO
| VARIABLE MODELADA | TIPO VARIABLE | DESCRIPCIÓN | PROCEDIMIENTO |
|---|---|---|---|
| Edad | Texto | Rango de Edad al que pertenece el empleado | Cambio de Nombre |
| Industria - Sucia | Texto | Tipo de industria en la que trabaja | Cambio de Nombre |
| Cargo | Texto | Cargo que ocupa el empleado | Cambio de Nombre |
| Descripcion Cargo | Texto | Apuntes adicionales relacionados con el cargo | Cambio de Nombre |
| Salario Anual | Número | Salario anual del empleado, en caso de trabajar medio tiempo se debe estimar su salario como si fuera de tiempo completo | Cambio de Nombre |
| Bonos | Número | Ingresos adicionales al sueldo como bonos, horas extras, comisiones, etc. | Cambio de Nombre |
| Tipo Moneda | Texto | Moneda en la que devenga su salario | Cambio de Nombre |
| Otro Tipo Moneda | Texto | Otra moneda si aplica | Cambio de Nombre |
| Descripcion Ingreso | Texto | Apuntes adicionales relacionados con sus ingresos | Cambio de Nombre |
| Pais - Sucio | Texto | Pais en el que trabaja | Cambio de Nombre |
| Estado de USA | Texto | Estado de USA si aplica | Cambio de Nombre |
| Ciudad - Sucia | Texto | Ciudad en la que trabaja | Cambio de Nombre |
| Anios Experiencia Total | Texto | Cuantos años de experiencia laboral tiene en total | Cambio de Nombre |
| Anios Experiencia Campo Actual | Texto | Cuantos años de experiencia laboral tiene en el cargo actual | Cambio de Nombre |
| Nivel Escolaridad | Texto | Cual es su nivel de escolaridad | Cambio de Nombre |
| Genero | Texto | Cual es su género | Cambio de Nombre |
| Raza | Texto | Cuál es su raza | Cambio de Nombre |
| Industria | Texto | Datos de industrias limpiados | Las opciones de texto libre se cambian por la palabra "otra" para compactar el informe |
| Pais | Texto | datos de países limpiados | Se corrigieron los países mal escritos y se dejó el nombre estandarizado por la ISO 3166-1 |
| Ciudad | Texto | datos de ciudades limpiados | Se homogenizaron las ciudades, dejando el nombre más corto en la base de datos |
| Salario Anual COP | Número | Salario anual de los empleados en pesos colombianos | El cálculo se hizo con base en la TRM del 12/02/2023 asociada a cada empleado |
| Compensaciones COP | Número | Bonos anuales de los empleados en pesos colombianos | El cálculo se hizo con base en la TRM del 12/02/2023 asociada a cada empleado |
| Salario Anual Total COP | Número | Salario anual más los bonos de los empleados en pesos colombianos | El cálculo se hizo sumando los campos "Salario Anual COP" y "Compensaciones COP" |
DESCRIPCIÓN DEL MODELADO PASO A PASO
- Se deben agregar al modelo 3 tablas dimensionales, las cuales tendrán una relación de uno a muchos con la tabla de hechos empleados. Las tablas son: INDUSTRIA, PAISES y TASAS.
INDUSTRIA: tiene los nombres únicos de las industrias.
PAISES: debe tener las columnas alpha2, alpha3, código, latitud, longitud y pais
TASA: debe tener los campos descripcion, fecha, tipo moneda y TRM - Se limpian los datos de países y ciudades creando nuevas columnas con las siguientes funciones de power query respectivamente:
FUNCIÓN PARA LIMPIAR PAÍSES:
Pais = SWITCH( TRUE(),
FUNCIÓN PARA LIMPIAR CIUDADES:
LOWER(TRIM([Pais - Sucio])) IN {"america","us","usa","u.s.","united states of america","u.s.a.","u.s","united state","unites states","united stated","u.s.a","the united states","united sates", "unitedstates","united state of america","u. s.","united statea","isa","united status","unite states","the us","united sates of america", "usa tomorrow", "united statues","uss","united stateds","untied states","united states of american", "uniter statez", "hartford","united statesp","united y","unitied states", "usaa", "uniited states","united statss","united statws","uniteed states","san francisco","uniyes states","usa-- virgin islands","usat","california","united stares", "united states of americas", "united statees","united states is america","united states- puerto rico","united statew","united stattes", "united sttes","unitef stated","uniyed states","unted states","us of a","usab","usd","u.s>","u.sa","united states","u. s"},"United States",
LOWER(TRIM([Pais - Sucio])) IN {"uk","england","scotland","u.k.","england, uk","wales","scotland, uk","great britain","united kingdom (england)","northern ireland","uk (england)","england, united kingdom", "northern ireland, united kingdom","uk, remote","britain","united kindom","england, gb", "united kingdom.","england, uk.","u.k","u.k. (northern england)", "wales (united kingdom)","uk (northern ireland)","united kingdomk","england/uk","englang","unites kingdom","wales (uk)","wales, uk"},"United Kingdom",
LOWER(TRIM([Pais - Sucio])) IN {"the netherlands","nederland","nl"},"Netherlands",
LOWER(TRIM([Pais - Sucio])) IN {"nz","new zealand aotearoa","aotearoa new zealand"},"New Zealand",
LOWER(TRIM([Pais - Sucio])) IN {"canda","can","canad","canadá","csnada","canada and usa","canada, ottawa, ontario","canadw"},"Canada",
LOWER(TRIM([Pais - Sucio])) IN {"i.s.","is"},"Iceland",
LOWER(TRIM([Pais - Sucio])) IN {"brasil"},"Brazil",
LOWER(TRIM([Pais - Sucio])) IN {"africa"},"Central African Republic",
LOWER(TRIM([Pais - Sucio])) IN {"panamá"},"Panama",
LOWER(TRIM([Pais - Sucio])) IN {"australian","australi"},"Australia",
LOWER(TRIM([Pais - Sucio])) IN {"remote (philippines)"},"Philippines",
LOWER(TRIM([Pais - Sucio])) IN {"czechia"},"Czech Republic",
LOWER(TRIM([Pais - Sucio])) IN {"hong konh"},"Hong Kong",
LOWER(TRIM([Pais - Sucio])) IN {"luxemburg"},"Luxembourg",
LOWER(TRIM([Pais - Sucio])) IN {"italy (south)"},"Italy",
LOWER(TRIM([Pais - Sucio])) IN {"mainland china"},"China",
LOWER(TRIM([Pais - Sucio])) IN {"danmark"},"Denmark",
LOWER(TRIM([Pais - Sucio])) IN {"cote d'ivoire"},"Côte d'Ivoire",
LOWER(TRIM([Pais - Sucio])) IN {"the bahamas"},"Bahamas",
LOWER(TRIM([Pais - Sucio])) IN {"jersey, channel islands"},"Jersey",
LOWER(TRIM([Pais - Sucio])) IN {"u.a.","ua"},"Ukraine",
LOWER(TRIM([Pais - Sucio])) IN {"méxico"},"Mexico",
TRIM([Pais - Sucio])
)
NOTA: Se anexa modelo de función, la cual no se hizo completa porque son mas de 4.000 ciudades y para efectos del dashboard no se utilizaría esta variable.Ciudad = SWITCH( TRUE(),
LOWER(TRIM([Ciudad - Sucia])) IN {"aberdeen proving ground","aberdeenshire",""},"aberdeen",
LOWER(TRIM([Ciudad - Sucia])) IN {"abington, pa","",""},"abington",
LOWER(TRIM([Ciudad - Sucia])) IN {"adelaide, south australia","",""},"adelaide",
LOWER(TRIM([Ciudad - Sucia])) IN {"akron, ohio","",""},"akron",
LOWER(TRIM([Ciudad - Sucia])) IN {"albany-schenectady-troy metro area","albany, ny","albany region"},"albany",
LOWER(TRIM([Ciudad - Sucia])) IN {"albuquerqur","",""},"albuquerque",
LOWER(TRIM([Ciudad - Sucia])) IN {"aldie, va","",""},"aldie",
LOWER(TRIM([Ciudad - Sucia])) IN {"alexandrira","alexandria, va","alexandria, la","alexandria va"},"alexandria",
TRIM([Ciudad - Sucia])
) -
Función para la nueva variable industria:
Industria = if(RELATED(INDUSTRIA[Industria]) = BLANK(),"Otra", RELATED(INDUSTRIA[Industria])) -
Función para la nueva variable Salario Anual COP:
Salario Anual COP = if([Otro Tipo Mooneda] = "COP", [Salario Anual],RELATED(TASAS[TRM]) * [Salario Anual]) -
Función para la nueva variable Compensaciones COP:
Compensaciones COP = IF(EMPLEADO[Otro Tipo Mooneda] = "COP", EMPLEADO[Bonos], RELATED(TASAS[TRM]) * EMPLEADO[Bonos]) -
Función para la nueva variable Salario Anual Total COP:
Salario Anual Total COP = [Salario Anual COP] + [Compensaciones COP]
