protected virtual decimal SubtractRound(decimal gross, decimal limit, decimal subtract)
        {
            var subtractFrom = TaxMath.Smallest(gross, limit);
            var subtracted   = subtractFrom - subtract;

            subtracted = Math.Round(subtracted, 2, MidpointRounding.AwayFromZero);
            return(TaxMath.PositiveOnly(subtracted));
        }