def update_serviceable_demand(coverage, sd):
    """
    Updates a coverage with new values from a serviceable demand dict

    :param coverage: (dict) The coverage to update
    :param sd: (dict) The corresponding serviceable demand to use as update
    :return: (dict) The coverage with the updated serviceable demands
    """
    total_serviceable_demand = 0.0
    for demand in coverage["demand"].keys():
        coverage["demand"][demand]["serviceableDemand"] = sd["demand"][demand]["serviceableDemand"]
        total_serviceable_demand += sd["demand"][demand]["serviceableDemand"]
    coverage["totalServiceableDemand"] = total_serviceable_demand
    return coverage