        (filter build-graphable)
        reverse
        (map add-queued-time)
-       (map add-minute-measures)
        (take (:max-bars plot-info))))
 
 (defn project-insights-bar [builds owner]

        y-neg-scale (-> (js/d3.scale.linear)
                        (.domain #js[0 y-neg-max])
                        (.range #js[y-zero (:height plot-info)]))
        y-pos-tick-values (map js/Math.round
                               [y-pos-max (* y-pos-max 0.5) 0])
        y-neg-tick-values (map js/Math.round
                               [y-neg-max])
        y-pos-axis (-> (js/d3.svg.axis)
                       (.scale y-pos-scale)
                       (.orient "left")
                       (.tickValues (clj->js y-pos-tick-values)))
        y-neg-axis (-> (js/d3.svg.axis)
                       (.scale y-neg-scale)
                       (.orient "left")
                       (.tickValues (clj->js y-neg-tick-values)))
        scale-filler (map (partial str "xx-") (range (- (:max-bars plot-info) (count builds))))
        x-scale (-> (js/d3.scale.ordinal)
                    (.domain (clj->js

(defn add-queued-time [build]
  (let [queued-time (max (build/queued-time build) 0)]
    (assoc build :queued_time_millis queued-time)))

(defn build-graphable [{:keys [outcome]}]
  (#{"success" "failed" "canceled"} outcome))
