def METHOD_NAME(self, mag, rate):
    """
    This function scales the TruncatedGRMFD rate for that bin using
    a tapering scheme developed in the NSHM-HAZ function; see
    Mfds.java in the nshmp-haz codebase.
    """
    mag_mo_lo = mag_to_mo(mag - self.bin_width / 2.)
    mag_mo_hi = mag_to_mo(mag + self.bin_width / 2.)
    scale_num = (self._pareto(mag_mo_lo, self.corner_mo) -
                 self._pareto(mag_mo_hi, self.corner_mo))
    scale_denom = (self._pareto(mag_mo_lo, self.large_mo) -
                   self._pareto(mag_mo_hi, self.large_mo))
    scale = scale_num / scale_denom
    return rate * scale