Cálculo de ingresos.
Recientemente tuve que explicar este tema en un proyecto en el cual participo y aunque es salirse de mi área favorita que es SCM creo que puede ser un artículo muy interesante para los que están empezando con el módulo de proyectos de Dynamics 365 FO.
Cuando trabajamos con proyectos de precio fijo que facturamos con hitos, una de las actividades mas críticas es la forma en la que se calcula el ingreso real del proyecto (léase por “real” aquel que la empresa decide reconocerse), el cual se suele basar en el avance y no en la facturación, la dificultad aquí es identificar que se considera avance, si es por las horas que llevamos o por las que nos quedan, o por los productos que hemos entregado, o por el coste que llevamos incurrido… las opciones son múltiples y depende de cada sector y cliente.
D365FO nos permite reflejar prácticamente cualquier método y aplicarlo a cada tipo de transacción: ¿Qué pasa si quiero calcular el avance de las horas por lo que me queda por hacer pero el de los productos por la cantidad de producto entregado? ¿o si las horas de un tipo se deben calcular por el coste que me queda por consumir pero las de otro tipo en base a lo planificado originalmente? Todos estos escenarios son posibles pero hay que entender las opciones que el sistema nos permite.
Cuando creamos un proyecto en el sistema lo primero que solemos hacer es crear una estructura de descomposición del trabajo (WBS por sus siglas en inglés) No es algo obligatorio pero suele ser habitual si necesitamos un desglose de tareas o si queremos llevar una planificación de actividades detalladas.

Esta estructura es similar a la que crearíamos en un Project; usamos agrupaciones de tareas, predecesoras, etc. y cada tarea tiene una duración y un numero de recursos específicos lo que se traduce en un esfuerzo determinado (2 días de duración por dos recursos son 32 horas de esfuerzo) Al final el esfuerzo en horas es nuestra planificación total del proyecto. Una vez que terminamos la planificación en el WBS, esta se transfiere a las previsiones del proyecto. Aquí al menos deberíamos llevarlo a un plan presupuestario, llamémoslo original, y a un restante, aunque no hay limite de versiones a utilizar:

Además, si no trabajo solo con horas, estas estimaciones también tendrán un coste asociado tanto en el WBS como en las previsiones, pudiendo añadir de forma adicional a cada actividad Artículos o Gastos que se sumarán al coste horario:

Esto significa que aunque la cantidad de horas no se modifica el coste de esa tarea si se incrementa:

Por lo tanto, antes de iniciar el proyecto tendremos un WBS con 368 horas estimadas y un coste de 21.040€ (368 horas por 30€/hora mas el gasto del hotel de 10.000€) y una previsión, tanto original como restante, de los mismos importes y cantidades.
Así que resumiendo, al inicio de un proyecto tenemos una planificación de tareas con sus esfuerzos en horas y sus costes asociados a esas horas mas cualquier coste adicional de productos o gastos, y estos costes y cantidades se han copiado a las previsiones de proyectos.
A partir de aquí es cuando viene la parte divertida ya que debemos decidir como vamos a calcular el avance y para definir su comportamiento usaremos las plantillas de costes:

En estas plantillas debemos indicar la forma de calculo “Finalización basada en” en donde indicaremos como queremos que el sistema se comporte y esto dependerá de como gestionamos internamente nuestros proyectos, vamos a revisar cada una de las opciones:
Porcentaje del progreso del trabajo.
Imaginemos un proyecto de implantación de un ERP en donde el PM calcula el grado de avance del proyecto usando Microsoft Project, para calcularlo tiene que decir cuantas horas le quedan para completar cada tarea. Las horas que llevamos no son relevantes porque es un proyecto de precio fijo y no por hacer el doble de horas significa que llevemos el doble de avance, lo importante es lo que nos queda por ejecutar. Si una tarea estaba planificada en 80 horas y llevamos ejecutadas 40 horas el sistema mostrará lo siguiente:

Pero si realmente nos quedan 60 horas todavía por ejecutar, modificaremos el esfuerzo restante y el grado de avance de esa tarea pasará del 50% al 40%:

Ahora bien, si analizamos esta misma pantalla desde la vista de seguimiento de costes veremos que en vez de 10,31% el avance es de 9,24%:

Esto es debido a que el grado de avance se basa en la formula de coste real / (coste real + coste pendiente) y no en el numero de horas. En nuestro ejemplo, además de que el coste hora imputado es de 50€ vs los 30€ planificados tenemos además un gasto de 10.000 euros de hotel en esa tarea que no hemos consumido y por lo tanto el grado de avance es menor al que nos dará calculando solo las horas.
Si lanzamos por tanto el reconocimiento de ingresos obtendremos lo siguiente:

Como se puede apreciar, el grado de avance que se muestra es el que se calcula en el seguimiento de esfuerzos, no en el seguimiento de costes. Como nota curiosa, si lanzamos esto mismo sin ningún hito de facturación, aunque el ingreso será cero, el grado de avance será el del seguimiento de costes (no me preguntes porqué, no tengo ni la menor idea de por qué hace eso)
Cantidad e importe del coste.
El método que hemos visto anteriormente tiene sentido en los proyectos que ya hemos explicado, en donde lo importante son las horas restantes que se sumarán a las realizadas para obtener el avance. Pero para otro tipo de proyectos este modelo no encajará y es ahí donde entran las opciones de Cantidad y de Importe del coste.
Cuando seleccionamos estos modelos, es necesario especificar información adicional en la Plantilla de Coste (en sus líneas) ya que dependiendo de estas opciones el sistema se va a comportar de forma diferente:

Esta definición que vamos a detallar se hace por tipo de transacción (Hora, Artículo y Gasto) por lo que se podrá predefinir un comportamiento distinto por cada tipo de transacción e incluso por categoría (un ejemplo sería excluir las horas de un jefe de proyecto del grado de avance)
Vamos a analizar cada una de las opciones:
Presupuesto restante.
Cuando se imputan costes a un proyecto, el sistema disminuye el presupuesto restante de forma automática, esto se configura en los parámetros de proyecto en la pestaña de reducción. En nuestro ejemplo hemos imputado 40 horas a la actividad 1 y por lo tanto el presupuesto restante se ha reducido en ese valor:

Al igual que pasaba con el WBS, será el PM quien tenga que modificar ese valor en la previsión de forma manual y una vez realizado lanzar el reconocimiento de ingresos lo cual nos dará un 10,05%:

¿Pero porqué si tenemos las mismas horas reales y las mismas restantes el grado de avance es menor? La respuesta está en el detalle del calculo:

Como vemos en la imagen, las líneas de gastos y de horas se están calculando ambas por presupuesto restante y por cantidad, por lo tanto si sumamos ambas líneas tenemos 40 unidades reales, 358 pendientes y un total de 398, lo que supone ese 10,05% de avance.
Pero si cambiamos la plantilla a Importe del coste en vez de a Cantidad el resultado será de 8,91%:

Y esto es debido a que cambiamos cantidades por costes y como no es lo mismo el coste unitario del hotel que el coste unitario de la hora, el resultado es muy diferente:

En este caso, 2.000 euros reales y 20.440 planificados, lo que supone ese 8,91% de avance.
Previsión total – real
El siguiente modelo se basa en la previsión total, si lo que hemos hecho hasta ahora es calcular la suma del real + el restante para obtener el total, ahora vamos a utilizar la previsión original a la que restaremos el real.
Siguiendo nuestro ejemplo el calculo será de 10,58%:

En donde el detalle que nos muestra es el siguiente:

Como se puede apreciar en la imagen, el sistema ha usado la previsión original como total restándole el real para obtener el restante (a la inversa que el ejemplo anterior). Este modelo es muy útil cuando queremos reconocer el avance por la cantidad o importe real sin asumir desviaciones en el restante, por ejemplo cuando en un proyecto el grado de avance se basa en entregas de productos. La decisión de usar el coste o la cantidad ya dependerá de cada escenario concreto. Imaginemos un proyecto donde instalamos routers en un cliente, queremos el grado de avance por cada router instalado, las horas que lleven no son relevantes para mi alcance. Además cada semana que adquirimos routers el precio de coste varía. En ese escenario, lo ideal sería hacerlo por cantidad y no por importe.
Coste total – real
En el modelo de coste total, el sistema se comporta igual que en el de previsión total, con la diferencia importante de que el valor del total no lo obtiene de la previsión, si no que lo introducimos nosotros a mano (ya sea cantidad o importe, no olvidemos que para cada método tenemos ambas opciones). De esta forma podemos mantener nuestra versión de previsión original e ir estimando diferentes escenarios de finalización en donde le indico al sistema el coste total con el que preveo terminar el proyecto. Claro que podría hacer lo mismo con un modelo nuevo de previsión, pero tendría que detallarlo actividad a actividad y de esta forma le pongo un total por tipo de línea y marchando!
En este ejemplo he modificado manualmente la cantidad total:

Y por lo tanto el grado de avance será de 8,20%:

Establecer coste para completar en cero
Este último modelo se utiliza al finalizar el proyecto, el sistema te reduce la cantidad restante y el importe restante a cero para que el avance sea del 100%.

Grado de avance:

Depreciación lineal.
Una vez vistas las diferentes opciones dentro de Cantidad o Importe nos queda por revisar un ultimo tipo de Finalización. Este tipo reconoce el ingreso basándose en las fechas de inicio y fin del proyecto y dando un % proporcional a la fecha de estimación.
En nuestro proyecto hemos indicado la fecha inicio 01/04 y la fecha fin 31/05. Si creamos una estimación a 30/04 el avance será de 49,18%:

Este tipo de grados de avance tiene mucho sentido en proyectos por ejemplo de soporte anual en donde quiero reconocer el ingreso mes a mes aunque la facturación se realice al inicio.
Ah! y si te estabas preguntando ¿y si no me vale ninguno de estos métodos, por que yo calculo el grado de avance preguntándole a ChatGPT, puedo calcularlo por fuera y decirle yo el avance? Pues la respuesta es que sí, solamente pon la plantilla de coste en manual y listo!
Y con esto concluyo el artículo, si has llegado hasta aquí no me queda mas que decirte:
¡GRACIAS POR LEERME!


Deja un comentario