def METHOD_NAME(notification):
    """Return amount due for a notification.
    :param notification: the notification for which to compute the amount. At
                         this time, this is not yet a `Notification`, only a
                         dict of structured data.
    :return the amount due for this notification. 0 if no amount could be
            compute.
    """
    # Find the reminder type to use based on the notification that we would
    # sent. If no reminder type is found, then no amount could be calculated
    # and we can't return '0'
    notif_type = notification.get('notification_type')
    reminder_type_mapping = {
        NotificationType.DUE_SOON: DUE_SOON_REMINDER_TYPE,
        NotificationType.OVERDUE: OVERDUE_REMINDER_TYPE
    }
    reminder_type = reminder_type_mapping.get(notif_type)
    if not notif_type or not reminder_type:
        return 0
    # to find the notification due amount, we firstly need to get the
    # circulation policy linked to the parent loan.
    location_pid = notification.transaction_location_pid
    location = Location.get_record_by_pid(location_pid)
    cipo = CircPolicy.provide_circ_policy(
        location.organisation_pid,
        location.library_pid,
        notification.patron.patron_type_pid,
        notification.item.holding_circulation_category_pid
    )
    # now we get the circulation policy, search the correct reminder depending
    # of the reminder_counter from the notification context.
    reminder = cipo.get_reminder(
        reminder_type=reminder_type,
        idx=notification.get('context', {}).get('reminder_counter', 0)
    )
    return reminder.get('fee_amount', 0) if reminder else 0