A quantitative description of a complex system is inherently limited by our ability to estimate the system's internal state from experimentally accessible outputs. Although the simultaneous measurement of all internal variables, like all metabolite concentrations in a cell, offers a complete description of a system's state, in practice experimental access is limited to only a subset of variables, or sensors. A system is called observable if we can reconstruct the system's complete internal state from its outputs. Here, we adopt a graphical approach derived from the dynamical laws that govern a system to determine the sensors that are necessary to reconstruct the full internal state of a complex system. We apply this approach to biochemical reaction systems, finding that the identified sensors are not only necessary but also sufficient for observability. The developed approach can also identify the optimal sensors for target or partial observability, helping us reconstruct selected state variables from appropriately chosen outputs, a prerequisite for optimal biomarker design. Given the fundamental role observability plays in complex systems, these results offer avenues to systematically explore the dynamics of a wide range of natural, technological and socioeconomic systems.algebraic observability | biochemical reactions | control theory T he internal variables of a complex system are rarely independent of each other, as the interactions between the system's components induce systematic interdependencies between them. Hence, a well-selected subset of variables can contain sufficient information about the rest of the variables, allowing us to reconstruct the system's complete internal state, making the system observable. To address observability in quantitative terms, we focus on systems whose dynamics can be described by the generic state-space form _ xðtÞ = fðt; xðtÞ; uðtÞÞ;[1]where xðtÞ ∈ R N represents the complete internal state of the system (e.g., the concentrations of all metabolites in a cell), and the input vector uðtÞ ∈ R K captures the influence of the environment. Observing the system means that we monitor a set of variables yðtÞ ∈ R M that depend on the time t, the system's internal state xðtÞ, and the external input uðtÞ, yðtÞ = hðt; xðtÞ; uðtÞÞ:[2]Observability requires us to establish a relationship between the outputs yðtÞ, the state vector xðtÞ, and the inputs uðtÞ in a manner that we can uniquely infer the system's complete initial state xð0Þ. The observability criteria can be formulated algebraically for dynamical systems consisting of polynomial or rational expressions (1, 2) stating that [1] is observable if the Jacobian matrix J = ½J ij NM × N has full rank, rank J = N;[3]where