Calendarios Personalizados (I). El Año Fiscal

Calendarios Personalizados (I). El Año Fiscal

En muchísimos contextos sobre todo financieros, el Año Fiscal no tiene por qué coincidir con el año natural. Ello conlleva que haya que realizar algunos cambios en nuestra Dimensión Fecha y que las funciones de inteligencia temporal no puedan usarse de igual modo que con el calendario normalizado. No vamos a entrar en este momento a tratar el tema de los cálculos de inteligencia temporal, que abordaremos después de que veamos todas las funciones de inteligencia temporal con los calendarios normalizados. En este post lo que voy a enseñar es como introducir las columnas propias del calendario fiscal en nuestra Dimensión Fecha.

En primer lugar estableceremos una nueva variable en nuestro calendario que denominaremos __PrimerMesFiscal, para poder dinamizar los cálculos en función de esta variable.

P.ej. var __PrimerMesFiscal=7 para un calendario fiscal que comienza el 1 de julio, en las Sociedades Anónimas Deportivas en España tienen este calendario fiscal.

Y una vez que tenemos esa variable, las columnas que crearemos en nuestra tabla de fechas serán las siguientes:

"NumAñoFiscal", IF(MONTH([Date])<___PrimerMesFiscal,YEAR([Date])-1,YEAR([Date])),
"NumMesFiscal", IF(MONTH([Date])<___PrimerMesFiscal,13-___PrimerMesFiscal+MONTH([Date]),MONTH([Date])-___PrimerMesFiscal+1),
"NumTrimestreFiscal", ROUNDUP(IF(MONTH([Date])<___PrimerMesFiscal,13-___PrimerMesFiscal+MONTH([Date]),MONTH([Date])-___PrimerMesFiscal+1)/3,0),
"AñoFiscal", "FY-"&IF(MONTH([Date])<___PrimerMesFiscal,YEAR([Date])-1,YEAR([Date])),
"MesFiscal", "FM-"&FORMAT(IF(MONTH([Date])<___PrimerMesFiscal,13-___PrimerMesFiscal+MONTH([Date]),MONTH([Date])-___PrimerMesFiscal+1),"0#"),
"TrimestreFiscal", "FQ-"&ROUNDUP(IF(MONTH([Date])<___PrimerMesFiscal,13-___PrimerMesFiscal+MONTH([Date]),MONTH([Date])-___PrimerMesFiscal+1)/3,0),
"EjercicioMesFiscal", "FYM-"&IF(MONTH([Date])<___PrimerMesFiscal,YEAR([Date])-1,YEAR([Date]))&"-"&FORMAT(IF(MONTH([Date])<___PrimerMesFiscal,13-___PrimerMesFiscal+MONTH([Date]),MONTH([Date])-___PrimerMesFiscal+1),"0#"),
"EjercicioTrimestreFiscal", "FYQ-"&IF(MONTH([Date])<___PrimerMesFiscal,YEAR([Date])-1,YEAR([Date]))&"-"&ROUNDUP(IF(MONTH([Date])<___PrimerMesFiscal,13-___PrimerMesFiscal+MONTH([Date]),MONTH([Date])-___PrimerMesFiscal+1)/3,0)

Como podemos observar, el cálculo es diferente si el mes de la fecha es menor que el primer mes fiscal o mayor y por eso lo construimos siempre con IF

Como he dicho, en este post no vamos a ver cómo utilizar la inteligencia temporal con un calendario fiscal, algo que veremos con más detenimiento más adelante, pero si voy a hablar de la excepción a la regla. En principio, cuando utilizamos un calendario fiscal no nos van a servir las funciones de inteligencia temporal, sino que tendremos que estudiar unos patrones de cálculos, sin embargo, hay una función de inteligencia temporal que si nos va a admitir la configuración del calendario fiscal. Se trata de la acumulación con TOTALYTD.

La función TOTALYTD o la anterior CALCULATE(Expresion,DATESYTD…) que devuelve la expresión de manera acumulada en el ejercicio, puede contener un parámetro denominado fin de año, para ajustar el calendario fiscal. Por ejemplo para las ventas acumuladas en un calendario fiscal cuyo mes de inicio es el mes de julio, la métrica sería:

Ventas YTD = TOTALYTD([Ventas],dimFechas[Fecha],"30-6") 

que sitúa el 30 de junio como fin del calendario fiscal.

En el próximo post sobre inteligencia temporal hablaremos del cálculo de los desvíos en nuestro calendario fiscal y agregaremos diferentes períodos relacionados con el calendario fiscal en nuestra dimensión período.

Adjuntamos dimFechas con los nuevos cálculos de calendario fiscal.

Y si quereis estar al tanto de las novedades del blog no olvidéis suscribiros

FranM

2 comentarios

Wilmer Lugo Publicado el11:08 pm - 26/05/2020

Excelente información, muchas gracias

Santiago Publicado el11:58 am - 16/09/2021

Excelente

Deja una respuesta