The dynamic and multi-organizational nature of Grid systems requires effective and efficient accountability systems to scale for accommodating large number of users and resources. The availability of detailed and complete accountability data is crucial for both the Grid administrators and the overall Grid community. In this paper we present a layered architecture for addressing the end-to-end accountability problem. We introduce the concept of accountability agents, entities in charge of collecting accountability data, keeping track of submitted jobs and their users. We present a simple yet effective language to specify the relevant accountability data to be collected and selectively distributed by the accountability agents. Additionally, we design a decentralized and scalable approach to accountability, so to be able to monitor jobs workflow with relatively little intrusion.