def calc_provided_uncertainty(
    depth_proportional_resolution: int,
    num_stratum_depositions_completed: int,
) -> int:
    """After n strata have been deposited, how many ranks are spaced between
    retained strata?

    Note that the returned value actually corresponds to one more than the
    uncertainty with respect to calculating MRCA supposing two identically
    distributed columns. For example a return value of 1 corresponds to strata
    retained at every rank, so the rank of the MRCA can be determined with 0
    uncertainty.
    """
    guaranteed_resolution = depth_proportional_resolution
    max_uncertainty = (
        num_stratum_depositions_completed // guaranteed_resolution
    )

    # round down to lower or equal power of 2
    # cast to int to make robust to numpy.int32, numpy.int64, etc.
    provided_uncertainty_exp = int(max_uncertainty // 2).bit_length()
    provided_uncertainty = 2**provided_uncertainty_exp
    return provided_uncertainty
