Personnalisation des calculs d'avantages sociaux et d'impôts

Consultez ces exemples pour vous aider à personnaliser vos calculs d'avantages sociaux et d'impôts.

Cas d'emploi 1

Vous souhaitez calculer une commission en tant que pourcentage du compte Commission Basis, compte personnalisé qui n'est pas fourni avec Workforce. La commission est calculée en multipliant le taux entré dans l'assistant Avantages sociaux et impôts par le compte Commission Basis personnalisé.

Exemple de formule

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

Cas d'emploi 2

En vous appuyant sur l'exemple précédent, vous souhaitez ajouter un avantage social nommé Insurance, calculé en tant que pourcentage du compte Merit, avec les valeurs suivantes sélectionnées dans l'assistant Avantages sociaux et impôts :

  • Type de composant : Personnalisé
  • Conditions de paiement : Trimestriel (année calendaire)
  • Fréquence de paiement : Paiement pendant la première période
  • Type de valeur maximale : Montant forfaitaire
  • Portée de seuil : Cumul annuel
  • Composant imposable : Oui
  • Taux pour tous les mois : 10
  • Seuil : 400
  • Type de valeur : vous pouvez sélectionner n'importe quelle valeur étant donné que nous calculons l'avantage social en tant que pourcentage du compte Merit dans la logique personnalisée.

Exemple de formule

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;
    "Custom Expense"="OWP_Expense amount";
ENDIF;

Cas d'emploi 3

En vous appuyant sur les exemples précédents, vous souhaitez ajouter un impôt à plusieurs niveaux nommé SUTA, calculé en tant que pourcentage de Benefit1, Benefit2, Benefit3, Benefit4, avec les valeurs suivantes sélectionnées dans l'assistant Avantages sociaux et impôts :

  • Type de composant : Personnalisé
  • Conditions de paiement : Mensuel
  • Type de valeur maximale : Seuil
  • Portée de seuil : Mensuel
  • Aucun taux n'est fourni sur la page Taux.
  • Pour l'impôt à plusieurs niveaux personnalisé, les taux doivent être fournis dans le cadre de la formule personnalisée.

Exemple de formule

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
    "Custom Expense"="OWP_Expense amount";
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_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_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_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
        (1300-1200)*(30/100) + (1200-1000)*(20/100) + 1000*(10/100);
    ENDIF
ENDIF

Remarque :

N'affectez pas de valeur au membre OWP_Expense Amount. S'il existe un cas d'emploi pour appliquer une logique supplémentaire sur une valeur calculée, affectez OWP_Expense Amount à OWP_Custom Expense. Reportez-vous au cas d'emploi 2 similaire ci-dessus.