code: def _getPercentile(points, n, interpolate=False):
      
      sortedPoints = sorted(not_none(points))
      if len(sortedPoints) == 0:
          return None
      fractionalRank = (n/100.0) * (len(sortedPoints) + 1)
      rank = int(fractionalRank)
      rankFraction = fractionalRank - rank
  
      if not interpolate:
          rank += int(math.ceil(rankFraction))
  
      if rank == 0:
          percentile = sortedPoints[0]
      elif rank - 1 == len(sortedPoints):
          percentile = sortedPoints[-1]
      else:
          percentile = sortedPoints[rank - 1]  # Adjust for 0-index
  
      if interpolate:
          if rank != len(sortedPoints):  # if a next value exists
              nextValue = sortedPoints[rank]
              percentile = percentile + rankFraction * (nextValue - percentile)
  
      return percentile
docs: Percentile is calculated using the method outlined in the NIST Engineering
      Statistics Handbook:
      http://www.itl.nist.gov/div898/handbook/prc/section2/prc252.htm