    "Trip_type"               [:keyword         :trip-type]
    "Extra"                   nil
    
-   ; These are formed by mergin latitude an longitude columns, not part of CSV
+   ; These are generated, not part of CSV
+   :company      [:keyword  :company]
    :pickup-pos   [:geopoint :pickup-pos]
    :dropoff-pos  [:geopoint :dropoff-pos]
    :dlat-km      [:float    :dlat-km]

                         (into           (weather (-> doc :pickup-dt (subs 0 8)))))))]
        (for [doc docs :when (pos? (:travel-km doc))]
          (-> doc
              (update :travel-km   mile2km)
              (assoc :pickup-pos   (if (:pickup-lon  doc) (mapv doc [:pickup-lon  :pickup-lat])))
              (assoc :dropoff-pos  (if (:dropoff-lon doc) (mapv doc [:dropoff-lon :dropoff-lat])))
              (assoc :dlat-km      (delta-km (:pickup-lat doc) (:dropoff-lat doc)))
              (assoc :dlon-km      (delta-km (:pickup-lon doc) (:dropoff-lon doc)))
              (assoc :pickup-time  (to-time (:pickup-dt  doc)))
              (assoc :dropoff-time (to-time (:dropoff-dt doc)))
              (#(assoc % :travel-h   (let [pickup-time  (:pickup-time  %)
                                           dropoff-time (:dropoff-time %)]
                                       (if (and dropoff-time pickup-time (not= dropoff-time pickup-time))

          dist     (fn [a b] (if (and a b) (Math/sqrt (+ (* a a) (* b b))) 0.0))
          to-time  (fn [datetime]
                     (let [time (apply + (map / (map #(->> % (apply str) ((:int parsers))) (->> datetime (drop 9) (partition 2))) [1.0 60.0 3600.0]))]
                       (if (not= time 0.0) (min (round time) 23.999))))
          docs     (for [row rows :when (>= (count row) n-cols)]
                     (let [doc (into (sorted-map) (map (fn [h v] (if h [(second h) ((-> h first parsers) v)])) header row))]
                       (-> doc
