Personalización de cálculos de beneficios e impuestos

Revise estos ejemplos para ayudarle a personalizar los cálculos de beneficios e impuestos.

Caso de uso

Desea calcular la comisión como un porcentaje de la cuenta Base de comisión, que es una cuenta personalizada que no se proporciona con Workforce. La comisión se calcula multiplicando la tasa introducida en el Asistente de beneficios e impuestos por la cuenta Base de comisión personalizada.

Fórmula de ejemplo

IF("No Property"->"BegBalance"==[OWP_EarningList.Commission])  
    IF(@ISMBR(@RELATIVE("OWP_Existing Employees",0)))  
        "Commission Basis"->"No Property" * ("OWP_Value"/100);  
    ELSE  
        #Missing;  
    ENDIF  
ENDIF

Caso de uso

Continuando con el ejemplo anterior, desea agregar un beneficio llamado Insurance, que se calcula como un porcentaje de la cuenta Merit, con los siguientes valores seleccionados en el Asistente de beneficios e impuestos:

  • Tipo de componente: Personalizado
  • Condiciones de pago: Trimestral (año natural)
  • Frecuencia de pago: Paga durante primer periodo
  • Tipo de valor máximo: Importe fijo
  • Ámbito de umbral: Acumulado anual
  • Componente gravable: Sí
  • Tasa para todos los meses: 10
  • Umbral: 400
  • Tipo de valor: Puede seleccionar cualquier valor de Tipo de valor dado que estamos calculando el beneficio como un porcentaje del mérito en la lógica personalizada.

Fórmula de ejemplo

IF("No Property"->"BegBalance"==[OWP_EarningList.Commission])  
    IF(@ISMBR(@RELATIVE("OWP_Existing Employees",0)))  
        "Commission Basis"->"No Property" * ("OWP_Value"/100);  
    ELSE  
        #Missing;  
    ENDIF  
ELSEIF("No Property"->"BegBalance"==[OWP_BenefitList.Insurance])
    IF("Cal TP-Index"==1 OR "Cal TP-Index"==4 OR "Cal TP-Index"==7 OR "Cal TP-Index"==10)
        "OWP_Expense amount"="OWP_Merit"->"OWP_Expense amount"*("OWP_Value"/100);
    ENDIF;
    IF("OWP_Expense amount"!=#MISSING)
        IF("OWP_Calculated Max Value"!=#MISSING)
            IF("OWP_CYTD(Prior)"+"OWP_Expense amount">"OWP_Calculated Max Value")
                IF("OWP_CYTD(Prior)"<="OWP_Calculated Max Value")
                    "OWP_Expense amount"="OWP_Calculated Max Value"-"OWP_CYTD(Prior)";
                ELSE
                    "OWP_Expense amount"=#MISSING;
                ENDIF;
            ENDIF;
        ENDIF;
    ENDIF;
ENDIF;

Caso de uso

Continuando con los ejemplos anteriores, desea agregar un impuesto (Impuesto con niveles) llamado SUTA, que se calcula como un porcentaje de Benefit1, Benefit2, Benefit3 y Benefit4, con los siguientes valores seleccionados en el Asistente de beneficios e impuestos:

  • Tipo de componente: Personalizado
  • Condiciones de pago: Mensual
  • Tipo de valor máximo: Umbral
  • Alcance del umbral: Mensual
  • No se proporcionan tasas en la página Tasas.
  • Para los impuestos con niveles personalizados, las tasas se deben proporcionar como parte de la fórmula personalizada.

Fórmula de ejemplo

IF("No Property"->"BegBalance"==[OWP_EarningList.Commission])  
    IF(@ISMBR(@RELATIVE("OWP_Existing Employees",0)))  
        "Commission Basis"->"No Property" * ("OWP_Value"/100);  
    ELSE  
        #Missing;  
    ENDIF  
ELSEIF("No Property"->"BegBalance"==[OWP_BenefitList.Insurance])
    IF("Cal TP-Index"==1 OR "Cal TP-Index"==4 OR "Cal TP-Index"==7 OR "Cal TP-Index"==10)
        "OWP_Expense amount"="OWP_Merit"->"OWP_Expense amount"*("OWP_Value"/100);
    ENDIF;
    IF("OWP_Expense amount"!=#MISSING)
        IF("OWP_Calculated Max Value"!=#MISSING)
            IF("OWP_CYTD(Prior)"+"OWP_Expense amount">"OWP_Calculated Max Value")
                IF("OWP_CYTD(Prior)"<="OWP_Calculated Max Value")
                    "OWP_Expense amount"="OWP_Calculated Max Value"-"OWP_CYTD(Prior)";
                ELSE
                    "OWP_Expense amount"=#MISSING;
                ENDIF;
            ENDIF;
        ENDIF
    ENDIF
ELSEIF("No Property"->"BegBalance"==[OWP_TaxList.SUTA])
    IF("OWP_Benefit1"->"OWP_Expense amount"+"OWP_Benefit2"->"OWP_Expense amount"+"OWP_Benefit3"->"OWP_Expense amount"+"OWP_Benefit4"->"OWP_Expense amount"<=1000)
        "OWP_Expense amount"=("OWP_Benefit1"->"OWP_Expense amount"+"OWP_Benefit2"->"OWP_Expense amount"+"OWP_Benefit3"->"OWP_Expense amount"+"OWP_Benefit4"->"OWP_Expense amount")*(10/100);
    ELSEIF("OWP_Benefit1"->"OWP_Expense amount"+"OWP_Benefit2"->"OWP_Expense amount"+"OWP_Benefit3"->"OWP_Expense amount"+"OWP_Benefit4"->"OWP_Expense amount"<=1200)
        "OWP_Expense amount"=(("OWP_Benefit1"->"OWP_Expense amount"+"OWP_Benefit2"->"OWP_Expense amount"+"OWP_Benefit3"->"OWP_Expense amount"+"OWP_Benefit4"->"OWP_Expense amount")-1000)*(20/100) + 1000*(10/100);
    ELSEIF("OWP_Benefit1"->"OWP_Expense amount"+"OWP_Benefit2"->"OWP_Expense amount"+"OWP_Benefit3"->"OWP_Expense amount"+"OWP_Benefit4"->"OWP_Expense amount"<=1300)
        "OWP_Expense amount"=(("OWP_Benefit1"->"OWP_Expense amount"+"OWP_Benefit2"->"OWP_Expense amount"+"OWP_Benefit3"->"OWP_Expense amount"+"OWP_Benefit4"->"OWP_Expense amount")-1200)*(30/100) + (1200-1000)*(20/100) + 1000*(10/100);
    ELSE
        "OWP_Expense amount"=(1300-1200)*(30/100) + (1200-1000)*(20/100) + 1000*(10/100);
    ENDIF
ENDIF