def _feature_engineer(dataframe):
    """
    Steps
    -----
    - rating_cols = ['rating_five_count', 'rating_three_count']
        - fill missing with zero.
    - Discount = retail_price - price
        - Negative values are markup.
    - Discount Percent = Discount/retail x 100
        - fill discount_percent < 0 = 0
    - product_variation_size_id
        - fill missing with NONE.

    Returns
    -------
        fe_data.
    """
    # Rating Columns.
    rating_cols = ['rating_five_count', 'rating_four_count',
                   'rating_three_count', 'rating_two_count',
                   'rating_one_count']

    dataframe[rating_cols] = dataframe[rating_cols].fillna(0, axis=0)

    # Discount and Discount Percent.
    dataframe['discount'] = dataframe['price'] - dataframe['retail_price']
    dataframe['discount_percent'] = (dataframe['discount'] / dataframe['price']) * 100
    dataframe['discount_percent'] = dataframe['discount_percent'].clip(lower=0)

    # Product Variation size id.
    dataframe['product_variation_size_id'] = dataframe['product_variation_size_id'].fillna("NONE", axis=0)
    return dataframe