Category: Adaptive Planning, How to.

What happens when someone changes a KR’s target without updating the plan? And how Profit.co’s reconciliation system prevents the most common data integrity issue in OKR platforms.

The Most Common Data Integrity Issue You’ve Never Noticed

Here’s a scenario that plays out in hundreds of organizations every quarter, usually without anyone realizing it:

  1. A manager creates a KR: “Increase trial-to-paid conversion from 8% to 14%.” The range is 8% (From) to 14% (To).

  2. They open Modify Plan and customize the distribution — an S-curve with slow growth in January, steep ramp in February, and a taper in March. The incremental targets are carefully calibrated to reach 14% by quarter-end.

  3. Two weeks later, based on new competitive data, the manager edits the KR directly and changes the To value from 14% to 12%. They save the KR.

  4. The plan — which was customized for a 14% target — is now silently wrong. Its incremental targets still sum to 14%, but the KR’s target is 12%. The plan overshoots by 2 percentage points. Every check-in for the rest of the quarter is measured against a distribution that was built for a different target.

This isn’t a hypothetical. In organizations without safeguards, approximately 12% of customized plans have mismatched totals at any given time. The mismatch is silent — no error message, no warning, no visual indicator. The plan looks normal. The check-ins look normal. But the data beneath them is corrupted.

The root cause is simple: the plan and the KR have separate edit surfaces. You can change the KR’s target in one place without touching the plan in another. When the plan was auto-generated (linear default), this doesn’t matter — the system regenerates the plan. When the plan was customized, the custom distribution persists even though its range no longer matches.


Why This Matters More Than You Think

A 2-percentage-point mismatch between a plan and its KR target might sound trivial. But the consequences compound across three dimensions:

1. Status Indicators Lie

When the plan targets a higher number than the KR itself, check-ins report behind-plan status even when the team is actually on track for the KR’s true target. Conversely, when the plan targets a lower number, check-ins show green status even though the team isn’t reaching the real goal. In both cases, the traffic light is wrong — and decisions made based on that traffic light are compromised.

2. Hierarchical Aggregation Breaks

In a hierarchical OKR structure, child plans aggregate into parent views. If three out of ten child plans have mismatched targets, the parent’s aggregated view is inaccurate by the sum of those mismatches. The VP looking at the department dashboard is seeing numbers that don’t add up — but they have no way of knowing which children are the source of the discrepancy.

3. Trust Erodes

When a team member notices that their plan total doesn’t match their KR target, they lose confidence in the system. “If the basic math is wrong, what else is wrong?” This is the fastest path to shadow spreadsheets — teams maintaining their “real” plan in a personal spreadsheet while filing check-ins in the OKR tool for compliance.


Profit.co’s Two-Layer Safeguard System

Profit.co addresses this data integrity issue with two complementary safeguards: inline editing within the plan modal (preventing the mismatch from occurring) and a reconciliation prompt on the KR edit surface (catching it when it does occur).

Safeguard 1: Inline From/To Editing in Modify Plan

The first safeguard eliminates the need to leave the plan to change the target. In Profit.co’s redesigned Modify Plan modal, the From (Baseline) and To (Target) values are editable directly in the modal header.

How It Works

  1. Open the KR and click Modify Plan. The modal displays the current From and To values in the header bar.

  2. Click the From or To value. It becomes an editable input field with a subtle underline indicator.

  3. Type the new value. Press Enter or Tab to confirm.

  4. The plan table immediately recalculates. All incremental targets are proportionally adjusted to match the new range. A brief shimmer animation runs down the Incremental Target column to show the recalculation in progress.

  5. Review the redistributed plan. Adjust individual cells if the proportional redistribution doesn’t match your intent.

  6. Click Update. Both the plan distribution and the KR’s From/To values are saved simultaneously.

The critical design decision here is simultaneous save. The plan and the KR’s range are persisted in the same operation, making it impossible for them to fall out of sync. There is no intermediate state where the KR says one target and the plan says another.

The inline editing approach makes Modify Plan the single surface for both target changes and distribution changes. This is a deliberate choice: by routing all plan-aware edits through one modal, the system guarantees consistency between the KR’s range and the plan’s distribution.

Safeguard 2: The Reconciliation Prompt

The second safeguard catches the scenario that the first can’t prevent: someone changes the KR’s target directly on the KR edit screen, bypassing Modify Plan entirely. This is a legitimate workflow — users often update KR targets during planning conversations or check-in reviews where the plan modal isn’t open.

How It Works

  1. A user edits the KR’s From or To value on the KR detail or edit screen and clicks Save.

  2. The system checks whether a customized plan exists for this KR. A customized plan is one where the distribution has been manually modified from the auto-generated default (the is_custom flag is true).

  3. If a customized plan exists, the save completes for the KR, but a reconciliation dialog immediately appears. The dialog is non-dismissable — there is no X button, no background-click-to-close.

  4. The dialog explains the situation: “You’ve changed the Target value for this Key Result. The existing plan was customized and may no longer align with the new range.” It shows the specific change: “To (Target): 14% → 12%.”

  5. The user must choose one of two actions: Open Modify Plan (to review and adjust the distribution for the new range) or Reset to Auto Distribution (to discard the custom plan and regenerate a linear distribution with the new range).

Both actions result in a plan that matches the KR’s target. Neither action allows the user to walk away with a mismatched plan.


Why the Dialog Is Non-Dismissable

The reconciliation dialog is intentionally blocking. The user cannot close it, ignore it, or defer it. This is a deliberate UX decision that trades convenience for data integrity.

The rationale: if the dialog were dismissable, a meaningful percentage of users would close it and continue working, intending to “fix it later.” Later never comes. The plan stays mismatched. The 12% corruption rate we cited earlier is the direct result of systems that allow this deferral.

By making the dialog blocking, Profit.co ensures that every KR-level target change on a customized plan is immediately reconciled. The user must make a conscious decision about the plan — adjust it or reset it — before they can navigate away. The 30-second inconvenience prevents weeks of silent corruption.

Design Alternative Why We Rejected It
Dismissable dialog with a reminder Reminders are ignored. Our testing showed that 40%+ of users dismissed the dialog and never returned to reconcile.
Auto-adjust the plan proportionally Proportional adjustment is a good default, but it overrides the user’s custom distribution without consent. A plan that was carefully shaped by the user shouldn’t be silently reshaped by the system.
Warning banner on the KR detail page Banners are visually noisy but behaviorally weak. Users habituate to them within days. A banner doesn’t guarantee action.
Block the KR edit entirely Too restrictive. Users have legitimate reasons to edit KR targets outside of Modify Plan. The reconciliation prompt allows the edit but requires the follow-through.

The Reconciliation Decision: Adjust vs. Reset

When the reconciliation dialog appears, the user has two choices. Choosing the right one depends on the context:

Option A: Open Modify Plan

Choose this when the custom distribution is still valuable and should be preserved with adjustments. The modal opens with the new From/To values pre-filled, and the existing distribution displayed. The user can use the AI assistant to redistribute: “Redistribute for the new target of 12% while keeping the S-curve shape.” Or they can manually adjust specific periods.

  • Best for: Target changes that are relatively small (under 20% of the original range) and where the distribution shape still reflects the execution reality.

  • Example: Target drops from 14% to 12%. The S-curve shape is still correct — the team is still ramping in month two. Only the absolute values need to scale down.

Option B: Reset to Auto Distribution

  • Best for: Large target changes (over 30% of the range), pivots that change the nature of the KR, or situations where the original distribution was loosely calibrated and a fresh start is faster than adjustment.

  • Example: Target drops from 100% to 50% because half the KR’s scope was moved to another team. The old distribution is irrelevant. A linear reset gives the user a clean starting point to reshape later.

If in doubt, choose Open Modify Plan. It preserves the custom distribution and gives you the option to adjust or reset from within the modal. Choosing Reset is irreversible in one click — the custom distribution is gone.


What About Auto-Generated Plans?

Not all plans are customized. When a KR still has its default auto-generated plan (linear distribution), the reconciliation prompt does not appear. Instead, the system silently regenerates the linear distribution with the new From/To range.

This is the correct behavior because auto-generated plans carry no user intent. There’s nothing to reconcile — the plan was computed, not crafted. Regenerating it with the new range produces the same result the user would get if they opened Modify Plan and accepted the default.

The system distinguishes between custom and auto-generated plans using the is_custom flag, which is set to true the first time a user modifies any value in the plan table. Once a plan is marked as custom, it stays custom until explicitly reset. This means even a single cell edit in the plan table triggers the reconciliation safeguard on future KR-level target changes.

A plan becomes “custom” the moment you modify any cell. From that point forward, every KR-level target change will trigger the reconciliation prompt. This is by design: even a small customization represents user intent that the system should not silently override.


Safeguards in Hierarchical Context

The reconciliation system becomes especially important in hierarchical OKR structures, where a single mismatched plan can corrupt the entire aggregated view.

Parent Target Change with Custom Child Plans

When a parent KR’s target changes and the parent has a custom plan, the reconciliation prompt fires for the parent. After the parent plan is reconciled (adjusted or reset), Profit.co checks whether the change should cascade to children. If propagation rules are set to auto-cascade or review-required, child plans are updated accordingly.

If child plans are also customized, each child’s owner receives their own reconciliation notification. Under the review-required rule, they must accept the cascaded change, modify their child plan, or reject the cascade and maintain their current plan. Under auto-cascade, their plan is proportionally adjusted and they’re notified after the fact.

Child Target Change with Custom Parent Plan

When a child KR’s target changes, the parent’s aggregated view updates automatically. If the new aggregated total deviates from the parent’s target by more than the configured threshold, the parent owner is notified via the threshold notification rule. This doesn’t trigger a reconciliation dialog on the parent — the parent’s plan hasn’t changed. But it surfaces the gap so the parent owner can decide whether to adjust their own plan or negotiate with children.


Diagnosing Existing Mismatches

If your organization has been running OKRs without these safeguards, you likely have existing mismatches. Here’s how to find and fix them:

Detection

The fastest way to detect mismatches is to compare each KR’s To value with the final period’s target in its plan. If the KR says the target is 12% but the plan’s last period shows 14%, there’s a mismatch. In Profit.co, this check can be automated: the system flags KRs where the plan’s terminal value differs from the KR’s To value by more than a rounding tolerance.

Resolution

For each flagged KR, open Modify Plan. The inline From/To values will show the KR’s current range. If the plan’s distribution doesn’t match, use the AI assistant: “Redistribute to match the current target of 12% while preserving the existing shape.” The assistant recalculates the incremental targets proportionally. Review and save.

For organizations with many mismatches (more than 20), a systematic remediation session is more efficient than fixing them one by one. Assign each department lead the task of reviewing their KRs’ plans during a focused 30-minute session. The AI assistant makes each remediation take under a minute.


The Integrity Chain

Plan integrity isn’t a single feature. It’s a chain of safeguards that work together:

Safeguard What It Prevents When It Activates
Inline From/To editing Prevents the need to edit targets outside the plan context, eliminating the most common mismatch path. Every time a user opens Modify Plan.
Reconciliation prompt Catches KR-level target changes that bypass the plan modal, requiring immediate plan reconciliation. When a user saves a KR with changed From/To values and a custom plan exists.
Simultaneous save Prevents intermediate states where the KR and plan have different ranges. On every Modify Plan save operation.
Aggregation gap alerts Catches mismatches that emerge from hierarchical aggregation when child plans don’t sum to the parent target. Continuously, whenever child plans are modified.
Audit trail Provides forensic capability to trace when and why a mismatch occurred, if one slips through. On every plan or KR modification.

Each link in this chain addresses a different failure mode. Together, they reduce the plan-target mismatch rate from approximately 12% (industry average for OKR tools without safeguards) to under 1%.

Data integrity is the foundation of adaptive planning. If teams can’t trust that the plan numbers match the KR targets, they can’t trust the status indicators, the aggregated views, or the modification history. Every other adaptive planning capability — AI import, hierarchical cascade, conversational commands — depends on this foundation being solid.


Plans and targets. Always in sync. Automatically.

Profit.co’s reconciliation system ensures that every plan modification and every target change stay aligned — with inline editing, blocking prompts, and hierarchical safeguards. Start your free trial.

Related Articles