Plan Bookkeeping

Plan Bookkeeping

Purpose

The bookkeeper tallies tactic, group, and subgroup investments in real time so you have full transparency into the constraints you’ve applied, and can verify none of them conflict with a higher-level constraint, or the overall plan budget.

This feature supplements the bulk constraint and uploaded budget workflows by reflecting and summing uploaded/entered values.

Accessing the Feature

The feature is automatically enabled in all single-segment plans (and is slated to expand into portfolio plans in the future). It includes two major pillars:

  • Plan-Level Totals

    • The Applied field sums all investments across the plan

    • For plans with the Optimize Fixed Budget objective, the Target and Left Over fields reflect (a) the top-level budget and (b) the remaining optimizable budget, after accounting for everything that has been Applied.

  • In-Table Sums

    • Every tactic within a group or subgroup is tallied

image-20251007-173336.png

 

Applied Summation Logic

Your plan is a tree:

  • Group

    • Subgroup

      • Tactic

  • Ungrouped tactics roll up directly to the overall plan.

We always calculate from the bottom up (tactics → subgroups → groups). As we move up the tree, each node contributes exactly one number to its parent:

  1. If a node has its own investment set (a group or subgroup budget), we use that number.

  2. If it doesn’t have its own investment, we use the sum of its children.

  3. Ungrouped tactics contribute their tactic amount directly to the nearest parent group.

So a group’s subtotal =
(subgroup investments, if present) + (sum of tactics from subgroups without a set amount) + (ungrouped tactics).

Tip: When a subgroup (or group) has a budget set, that single number “stands in” for all of its children when the parent subtotal is computed.

Constraint Types

Constraints can be any of four types:

  • Fixed (an exact number)

  • Minimum only

  • Maximum only

  • Range (both min and max; if equal, that’s Fixed)

Validation & Requirements

In all cases, conflicting inputs are flagged at the level where the problem occurs. Every group/subgroup is validated against its own children and adjustment is required before proceeding the plan simulation.

  1. No individual investment may exceed the overall plan budget, if one exists.

  2. No individual investments may exceeds its parent’s budget.

  3. No child’s minimum can exceed its parent’s budget.

  4. The sum of all children’s minimums cannot exceed the parent’s fixed budget.

  5. The sum of n‑1 children’s minimums cannot exceed the parent’s fixed budget.
    (So there’s still room for the last child.)

  6. The sum of all children’s maximums must be at least the parent’s fixed budget.
    (Otherwise there isn’t enough capacity to reach the parent’s number.)

  7. If the parent is fixed and all children are fixed, the totals must match exactly.

    1. Overconstraining a plan in this way is permissible but not recommended, i.e. if a group includes 5 tactics, with investment constraints of $10K apiece, it is permissible but unnecessary to constrain the group to $50K.

Note: when tactics use non-fixed constraints, the Applied field uses the lower end of the range (the minimums defined) to compare against higher-level requirements.

Pro Tip

If you wish to leverage this functionality on a fully constrained plan, select the Maximize Profit objective and use the Upload Budgeted Tactics button (instead of the Forecast a Plan objective).