           (select-transaction-items s
                                     (prepare-criteria criteria)
                                     options)))))
+
+(defn find-item
+  "Returns the first item matching the specified criteria"
+  ([storage-spec criteria]
+   (find-item storage-spec criteria {}))
+  ([storage-spec criteria options]
+   (first (search-items storage-spec criteria options))))
 
 (defn- recalculate-account-item
   "Accepts a processing context and an item, updates

                                    :transaction-date transaction-date}
                                   {:limit 1})))

(defn- upsert-item
  "Updates the specified transaction item"
  [storage {:keys [id transaction-date] :as item}]

      current-item)
    current-item))

(defn- find-existing-transaction
  "Given a transaction that has been updated, find the existing
  transaction in storage. If none can be found, throw an exception."
