In-store promotions are a highly effective marketing tool that can have a significant impact on revenue. In this research, we study the question of dynamic promotion planning in the face of Bounded-Memory Peak-End demand models. In order to determine promotion strategies, we establish that a High-Low pricing policy is optimal under diagonal dominance conditions (so that the current period price dominates both past period price effects and competitive product price effects on the demand), as well as conditions on the price dispersion. We show that finding the optimal High-Low dynamic promotion policy is NP-hard in the strong sense. Nevertheless, for the special case of promotion planning for a single item, we propose a compact Dynamic Programming (DP) approach that can find the optimal promotion plan that follows a High-Low policy in polynomial time. When the diagonal dominance conditions do not hold, and, hence, a High-Low policy is not necessarily optimal, we show that the optimal High-Low policy that is found by our proposed DP can find a provably near-optimal solution. Using the proposed DP as a subroutine, for the case of multiple items, we propose a Polynomial-Time-Approximation Scheme (PTAS) that can find a solution that can capture at least [Formula: see text] of the optimal revenue and runs in time that is exponential only in [Formula: see text]. Finally, we test our approach on data from large retailers and demonstrate an average of [Formula: see text] increase in revenue relative to the retailer’s current practices. This paper was accepted by Chung Piaw Teo, optimization. Funding: Financial support from the Oracle Corporation [External Research Office grant] and the National Science Foundation [Grant CMMI-1162034] is gratefully acknowledged.