@staticmethod
def _estimate_calibrated_volume(volume, liquid, tip_type):
    """Gives an estimation of calibrated volume

        If tip_type is specified then gets the actual calibrated volume,
        but if it is None then gets a rough estimate of the maximum volume
        calibration that might be experienced.

        This is used for estimates of calibrated volume used for calculating
        overage volume within the tip.

        Parameters
        ----------
        volume : Unit
            the uncalibrated volume
        liquid : LiquidClass
            the liquid class to be calibrated against
        tip_type : str or None
            the name of the TipType to be used

        Returns
        -------
        Unit
            an estimate of the calibrated volume

        See Also
        --------
        _calculate_overage_volume : uses this method
        LiquidClass._safe_volume_multiplier : used if no tip_type is specified
        """
    estimated = liquid._safe_volume_multiplier * volume
    if tip_type:
        calculated = liquid._get_calibrated_volume(volume, tip_type)
        cal_vol = calculated if calculated is not None else estimated
    else:
        cal_vol = estimated
    return cal_vol
