domingo, 12 de febrero de 2023

Dashboard II

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


  1. 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
  2. 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(),
    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])
    )

    FUNCIÓN PARA LIMPIAR CIUDADES:
    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])
    )

  3. Función para la nueva variable industria:
    Industria = if(RELATED(INDUSTRIA[Industria]) = BLANK(),"Otra", RELATED(INDUSTRIA[Industria]))
  4. Función para la nueva variable Salario Anual COP:
    Salario Anual COP = if([Otro Tipo Mooneda] = "COP", [Salario Anual],RELATED(TASAS[TRM]) * [Salario Anual])
  5. Función para la nueva variable Compensaciones COP:
    Compensaciones COP = IF(EMPLEADO[Otro Tipo Mooneda] = "COP", EMPLEADO[Bonos], RELATED(TASAS[TRM]) * EMPLEADO[Bonos])
  6. Función para la nueva variable Salario Anual Total COP:
    Salario Anual Total COP = [Salario Anual COP] + [Compensaciones COP]

Modelo Dimensional

Dashboard II