Hay tres tipos generales de métricas utilizadas para el modelado de las condiciones financieras de un servicio o contrato. Estas son:
Tenga en cuenta el siguiente ejemplo:
Una empresa nueva está empezando y requiere que se proporcione un servicio de correo electrónico junto con la instalación y mantenimiento de los buzones de correo. A medida que se contrate nuevo personal, el número de buzones de correo aumentará obviamente. La provisión de un servicio de correo electrónico para un contrato incurre en un coste de precio fijo de 1.000 dólares y, además, hay un coste adicional por buzón de correo que se cargará cada mes. Este coste por buzón de correo es un modelo de fijación de planes de precios de la siguiente manera:
|
Número de buzones de correo |
Coste por buzón de correo |
|
1-1.000 |
1,00 $ |
|
1.001 - 5.000 |
0,80 $ |
|
5.001+ |
0,50 $ |
Así, mientras más buzones de correo se agregan, más bajo será el coste adicional. (Por ejemplo: 1500 buzones de correo costarán (1000 x 1 $) + (500 x 0.80 $) = 1400 $.) Mediante este modelo, se pueden producir dos métricas para reflejar esto en el contrato.
Además hay una estimación realizada por el equipo de gestión del número de miembros del personal a lo largo del año (2007), que se describe a continuación. La tendencia viene marcada por el crecimiento inicial de la empresa mediante el empleo y por la consiguiente apertura de oficinas nuevas en otras regiones:
|
Ene |
Feb |
Mar |
Abr |
Mayo |
Jun |
Jul |
Ago |
Sep |
Oct |
Nov |
Dic |
|
50 |
100 |
500 |
900 |
1600 |
1700 |
1800 |
2500 |
2600 |
3500 |
3600 |
5800 |
Para modelar estas métricas, haga lo siguiente:
Cree la métrica de coste fijo (utilice el tipo Elemento del precio) en el contrato, mediante la información siguiente:

Para especificar el coste fijo del contrato de este servicio, implemente esto como un parámetro en la lógica de negocios (donde se deberá devolver el coste fijo de la función Resultado). Este parámetro se puede exponer mediante la declaración del objetivo de la métrica, como se muestra a continuación:

La devolución del valor de parámetro para esta métrica es tan solo un caso de devolver el valor del coste del servicio mediante la función Resultado.

A continuación, cree la métrica de fijación de precios variables (de nuevo, utilice el tipo Elemento del precio) para determinar los costes de consumo del número de buzones de correo utilizados. Nombre a esta métrica "Coste del consumo del buzón de correo" y créela con la información siguiente:

En este caso, necesita introducir los parámetros de consumo en los detalles de la métrica. Estos se introducirán en la tabla de precio por unidad. Para modelar la tabla anterior para el número de buzones de correo frente al coste, cree una columna para el límite superior de buzones de correo y otra para el precio por unidad:

A continuación introduzca los valores para cada plan. En este caso, el límite superior de buzones de correo determina el coste asociado. Como hay 3 planes, se agregan a la tabla de esta manera:

Además de esto, implemente la función de previsión sobre el consumo de buzones de correo. Para ello, cree la tabla de previsión con el diseño mensual preestablecido.

Esta se rellena a continuación con los valores de las tablas proporcionadas en la descripción del escenario.

Ahora puede agregar la declaración del objetivo para la métrica. En este caso, no se necesitan valores de parámetros, ya que se obtienen de las tablas de precio por unidad y previsión.

Finalmente, complete la lógica de negocios de la siguiente manera:
Opción explícita
Dim PPUmap1, PPUmap2, PPUmap3, PPUkey, FCmap, periodFC, TierPPU
Dim currentMonth, TotalMailboxes, MailboxesThisPeriod, TotalPrice
Sub OnRegistration(dispatcher)
'sólo registro de muestra
dispatcher.RegisterByMetric "OnMailboxAddedEvent", "NewMailboxEventType", _
"MailboxResource", "MONTH", "MetricName", "MetricContract", _
"MetricContractParty"
End Sub
Sub OnLoad(TIME)
'Inicializar las asignaciones de planes de precios y de previsión
Set PPUmap1 = Context.Field ("Price Per Unit")(1)
Set PPUmap2 = Context.Field ("Price Per Unit")(2)
Set PPUmap3 = Context.Field ("Price Per Unit")(3)
Set FCmap = Context.Field ("Forecast")(1)
End Sub
Sub OnPeriodStart(TIME)
'TODO: AÑADIR código aquí PARA tratar el evento de INICIO de período
currentMonth = GetMonth (time)
If Context.IsInForecast Then
periodFC = getForecastValue (currentMonth)
End If
MailboxesThisPeriod = 0
TotalPrice = 0
End Sub
Sub OnPeriodEnd(TIME, isComplete)
' Calcular el precio actual de todos los buzones de correo utilizando
' el modelo de planes de precios
' Utiliza un enfoque acumulativo a medida que pasa por cada plan para
' determinar el coste total.
TotalPrice = getMailboxCost (TotalMailboxes)
End Sub
Sub OnTimeslotEnter(TIME)
End Sub
Sub OnTimeslotExit(TIME)
End Sub
Sub OnMailboxAddedEvent(eventDetails)
MailboxesThisPeriod = MailboxesThisPeriod + 1
TotalMailboxes = TotalMailBoxes + 1
End Sub
Function Forecast
Forecast = getMailboxCost (periodFC)
End Function
Function Target
Target = Null
End Function
Resultado de la función
result = TotalPrice
End Function
Function getforecastvalue(q)
getforecastvalue = FCmap (q)
End Function
Function getmonth(time)
'esta función recupera el mes
Dim lTime
lTime = Tools.GetLocaleTime(time)
getmonth = monthname (datepart ("m", lTime), True) & _
"-0" & datepart ("d", lTime) & "-" & datepart ("yyyy", lTime)
End Function
Function getMailboxCost(num_boxes)
'Function calcula el coste de los buzones de correo utilizando el modelo de planes de precio
Dim returnValue
If num_boxes <= PPUmap1 ("Mailboxes") Then
'Primer plan
returnValue = num_boxes * PPUmap1 ("UnitCost")
'Out.Log "Tier1: " & num_boxes
Else If num_boxes > PPUmap1 ("Mailboxes") And num_boxes <= PPUmap2 ("Mailboxes") Then
'segundo plan solamente
returnValue = (PPUmap1 ("Mailboxes") * PPUmap1 ("UnitCost")) + _
((num_boxes - PPUmap1 ("Mailboxes")) * PPUmap2 ("UnitCost"))
'Out.Log "Tier2: " & num_boxes
Else If num_boxes > PPUmap2 ("Mailboxes") Then
'tercer plan
returnValue = (PPUmap1 ("Mailboxes") * PPUmap1 ("UnitCost")) + _
((PPUmap2 ("Mailboxes") - PPUmap1 ("Mailboxes")) * PPUmap2 ("UnitCost")) + _
((num_boxes - PPUmap2 ("Mailboxes")) * PPUmap3 ("UnitCost"))
'Out.Log "Tier3: " & num_boxes
End If
getMailboxCost = returnValue
'Out.Log "Cost is: " & returnValue
End Function
Nota: Este script de lógica de negocios domina tanto el cálculo de previsión (mediante la tabla de previsión) como los resultados del coste de consumo financiero. Ambos usan la misma fórmula getMailboxCost() que calcula el plan de precio fijo basado en la tabla de precio por unidad definida para esta métrica.
|
Copyright © 2013 CA.
Todos los derechos reservados.
|
|