1. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, including instructions configured to cause a data processing apparatus to perform operations including: receiving data associated with nodes of a first hierarchy and a second hierarchy separate from the first hierarchy, wherein the first and second hierarchies each include data associated with forecasting needs of an organization, and wherein the first hierarchy and second hierarchy each include a plurality of levels and one or more nodes on each level of the plurality of levels; identifying a common level and a target level for the first hierarchy and identify a common level and a target level for the second hierarchy; identifying a linking constraint, wherein the linking constraint includes a rule to adjust values at a node from a level in the first hierarchy to make it consistent with values at a node from a corresponding level in the second hierarchy, wherein the rule limits how values at nodes in the first and second hierarchies may be changed; generating an optimized first hierarchy and an optimized second hierarchy using the first hierarchy, the second hierarchy, and the linking constraint, wherein generating the optimized first hierarchy and the optimized second hierarchy includes: generating first updated common node values associated with nodes in the common level of the first hierarchy using the linking constraint and generating second updated common node values associated with nodes in the common level of the second hierarchy using the linking constraint, wherein the first updated common node values and the second updated common node values are a same set of values, and wherein the first updated common node values and second updated common node values are generated to minimize changes in first updated target node values associated with nodes in the target level of the first hierarchy and second updated target node values associated with nodes in the target level of the second hierarchy; updating, using the first updated common node values, values associated with nodes in the target level of the first hierarchy to generate the first updated target node values and updating, using the second updated common node values, values associated with nodes in the target level of the second hierarchy to generate the second updated target node values; and generating a resolved hierarchy using the optimized first hierarchy and the optimized second hierarchy, wherein the resolved hierarchy includes more accurate data for forecasting the needs of the organization as compared to the first hierarchy and the second hierarchy.