def METHOD_NAME(
    postage_node: lib.Element, settings: provider_utils.Settings
) -> models.RateDetails:
    postage: PostageType = lib.to_object(PostageType, postage_node)
    service = provider_units.ServiceClassID.map(str(postage.CLASSID))
    charges: typing.List[SpecialServiceType] = getattr(
        postage.SpecialServices, "SpecialService", []
    )
    rate = lib.to_decimal(
        (
            lib.find_element("CommercialPlusRate", postage_node, first=True)
            or lib.find_element("CommercialRate", postage_node, first=True)
            or lib.find_element("Rate", postage_node, first=True)
        ).text
    )
    commitment_date_node = lib.find_element("CommitmentDate", postage_node, first=True)
    estimated_date = lib.to_date(getattr(commitment_date_node, "text", None))
    transit = (
        (estimated_date.date() - datetime.now().date()).days
        if estimated_date is not None
        else None
    )
    return models.RateDetails(
        carrier_name=settings.carrier_name,
        carrier_id=settings.carrier_id,
        service=service.name_or_key,
        total_charge=rate,
        currency=units.Currency.USD.name,
        transit_days=transit,
        extra_charges=[
            models.ChargeDetails(
                name=charge.ServiceName,
                amount=lib.to_decimal(charge.Price),
                currency=units.Currency.USD.name,
            )
            for charge in charges
        ],
        meta=dict(service_name=(service.name or postage.MailService)),
    )