def METHOD_NAME(
    postage_node: lib.Element, settings: provider_utils.Settings
) -> models.RateDetails:
    postage: ServiceType = lib.to_object(ServiceType, postage_node)
    service = provider_units.ServiceClassID.map(str(postage.ID))
    delivery_date = lib.to_date(postage.GuaranteeAvailability, "%m/%d/%Y")
    transit = (
        (delivery_date.date() - datetime.now().date()).days
        if delivery_date is not None
        else None
    )
    charges = [
        ("Base charge", postage.Postage),
        *((s.ServiceName, s.Price) for s in postage.ExtraServices.ExtraService),
    ]
    return models.RateDetails(
        carrier_name=settings.carrier_name,
        carrier_id=settings.carrier_id,
        service=service.name_or_key,
        total_charge=lib.to_decimal(postage.Postage),
        currency=units.Currency.USD.name,
        transit_days=transit,
        extra_charges=[
            models.ChargeDetails(
                name=name,
                amount=lib.to_decimal(amount),
                currency=units.Currency.USD.name,
            )
            for name, amount in charges
            if amount
        ],
        meta=dict(service_name=service.name or postage.SvcDescription),
    )