code: def calculate_bmi(closed, submitted):
      
  
      if sorted(closed.keys()) != sorted(submitted.keys()):
          raise AttributeError("The buckets supplied are not congruent!")
  
      dates = closed.index.values
      closed_values = closed['value']
      submitted_values = submitted['value']
      ratios = []
      for x, y in zip(closed_values, submitted_values):
          if y == 0:
              ratios.append(0.0)
          else:
              ratios.append(float("%.2f" % (x / y)))
  
      df = pd.DataFrame.from_records({"date": dates, "bmi": ratios}, index="date")
      return df.fillna(0)
docs: BMI is the ratio of the number of closed items to the number of total items
      submitted in a particular period of analysis. The items can be issues, pull
      requests and such
  
      :param closed: dataframe returned from get_timeseries() containing closed items
      :param submitted: dataframe returned from get_timeseries() containing total items
      :returns: a dataframe with "date" and "bmi" columns where the date column is also
                the index.
                bmi is the ratio of the number of items closed by the total
                number of items submitted in a "period" of analysis