We summarise the state of the art in automatic amortized resource analysis. We then focus on some recent applications to term rewriting with G. Moser and conclude with open problems and questions.Amortized complexity was introduced by Tarjan [15] to facilitate the runtime analysis of data structures that sometimes perform costly operations which pay off later. Typical examples include self-organising binary search trees [14] and also many functional data structures [13]. Initially motivated by ideas from implicit computational complexity (ICC) [6], amortized complexity has been harnessed for the automatic analysis of runtime and other resources [4,5,7]. The crucial idea is that with an appropriate choice of a potential function the amortized complexity of basic operations becomes constant in many cases which avoids the need for tracking sizes and shapes of data structures during the analysis. Furthermore, the compositionality of amortized complexity makes it suitable for integration with type systems. This research has led to several systems for the automatic analysis of functional [4] and objectoriented programs [8,11]. There have also been applications to resource usage certification [1,3], to the analysis of low-level systems code [2,12] and to lazy functional programming [16] and to term rewriting [9]. The talk will summarise the state-of-the-art and then describe in more detail recent work with G. Moser aimed at generalising and unifying the multivariate approach from [4] using tree automata [10]. Finally, the talk will describe some open questions, notably the still unsatisfactory treatment of (possibly negative) integers, the general inference for object-oriented programs, and the incorporation of complexities involving logarithms.