We present a novel approach to plan recognition based on a two-stage paradigm of graph construction and analysis. First, a graph structure called a Goal Graph is constructed to represent the observed actions, the state of the world, and the achieved goals as well various connections between these nodes at consecutive time steps. Then, the Goal Graph is analysed at each time step to recognise those achieved goals consistent with the actions observed so far and the valid plans for the recognised goals or part of the recognised goals. We describe two algorithms for Goal Graph construction and analysis in this paradigm, that are both provably sound, polynomialtime and polynomial-space. We have tested these algorithms in two domains with up to 245 goal schemata and 100000 possible goals, in which excellent performance has been achieved in terms of efficiency, accuracy and scalability.