We consider document listing on string collections, that is, finding in which strings a given pattern appears. In particular, we focus on repetitive collections: a collection of size N over alphabet [1, σ] is composed of D copies of a string of size n, and s edits are applied on ranges of copies. We introduce the first document listing index with sizeÕ(n + s), precisely O((n lg σ + s lg 2 N ) lg D) bits, and with useful worst-case time guarantees: Given a pattern of length m, the index reports the ndoc > 0 strings where it appears in time O(m lg 1+ N · ndoc), for any constant > 0 (and tells in time O(m lg N ) if ndoc = 0). Our technique is to augment a range data structure that is commonly used on grammar-based indexes, so that instead of retrieving all the pattern occurrences, it computes useful summaries on them. We show that the idea has independent interest: we introduce the first grammar-based index that, on a text T [1, N ] with a grammar of size r, uses O(r lg N ) bits and counts the number of occurrences of a pattern P [1, m] in time O(m 2 + m lg 2+ r), for any constant > 0. We also give the first index using O(z lg(N/z) lg N ) bits, where T is parsed by Lempel-Ziv into z phrases, counting occurrences in time O(m lg 2+ N ).