         case .Changed:
             // TODO: What happens when the current lot is closed, and a new one is opened?
 
-            var candidateConstant = initialGestureMetadataPosition + translation.y
-            candidateConstant.capAtMax(atRestMetadataPosition, min: openedMetadataPosition)
-            alignMetadataToTopConstraint?.constant = candidateConstant
-
-            var delta: CGFloat
+            var candidateConstant: CGFloat // Distance from the top of the view
+            var delta: CGFloat // How far the view has moved from its initial, at rest position
+
             switch _initialBidHistoryState {
             case .Closed: // Opening
                 delta = translation.y
+                candidateConstant = atRestMetadataPosition + translation.y
             case .Open:   // Closing
-                delta = initialGestureMetadataPosition - atRestMetadataPosition + translation.y
-            }
+                delta = openedMetadataPosition - atRestMetadataPosition + translation.y
+                candidateConstant = openedMetadataPosition + translation.y
+            }
+
+            candidateConstant.capAtMax(atRestMetadataPosition, min: openedMetadataPosition)
+            alignMetadataToTopConstraint?.constant = candidateConstant
+
             delta.capAtMax(0, min: openedMetadataPosition - atRestMetadataPosition)
             bidHistoryDelta.update((delta: delta, animating: false))
 

        view.addSubview(lotMetadataStack)
        lotMetadataStack.constrainWidthToView(view, predicate: "0")
        lotMetadataStack.alignCenterXWithView(view, predicate: "0")
        alignMetadataToTopConstraint = lotMetadataStack.alignTopEdgeWithView(view, predicate: "0")
        alignMetadataToTopConstraint?.active = false

        /// This is a constraint that says "stick to the top of the lot view"
        /// it's initially turned off, otherwise it uses it's own height constraint
        /// that is only as big as it's `aboveFoldStackWrapper`

        let topMetadataStackConstraint = lotMetadataStack.alignTopEdgeWithView(view, predicate: "0")
        topMetadataStackConstraint.active = false


        // Metadata stack setup


    private var lotHistoryHeightConstraint: NSLayoutConstraint?
    private var alignMetadataToTopConstraint: NSLayoutConstraint?

    private var atRestMetadataPosition: CGFloat?
    private var openedMetadataPosition: CGFloat? {
        switch atRestMetadataPosition {
