def fertility_range
      if birth
        if death
          if death > birth + min_fpa
            (birth + min_fpa)..([(birth + max_fpa), death].min) # best estimation
          else
            false # died before reaching min fertility age
          end
        else
          (birth + min_fpa)..(birth + max_fpa) # estimation based on birth
        end
      elsif death
        (death - max_le + min_fpa)..death # estimation based on death
      end
    end
def fertility_range
      if birth
        if death
          if death > birth + min_fpa
            (birth + min_fpa)..([(birth + max_fpa), death].min) # best estimation
          else
            false # died before reaching min fertility age
          end
        else
          (birth + min_fpa)..(birth + max_fpa) # estimation based on birth
        end
      elsif death
        (death - max_le + min_fpa)..death # estimation based on death
      end
    end
optimistic (longest) estimation of fertility period. Calculation is based on available dates, max life expectancy and min and max fertility procreation ages
 @return [Range] fertility period, nil if cannot be computable, false if died before reaching min fertility age