When an estimator edits the rate on a Worksheet Resource, three distinct actions are available. Each has different scope and different downstream effects. Clear exposure of which action is being taken — and what it will do — is critical to prevent silent estimate-wide changes.
Primary view: Worksheet Editor (view 6) Related entities: Worksheet · Resource · Price Book · Item
1. Why three actions
A Worksheet Resource stores a snapshot of the underlying Resource’s rate at drag-in time. The snapshot doesn’t auto-sync. So when the estimator wants to change a rate, the question is always: how wide should the change go?
| Intent | Action | Scope |
|---|---|---|
| ”Tweak this one line only” | Per-instance override | This Worksheet Resource only |
| ”Update every use of this Resource in this Estimate” | Apply to this Estimate | All Worksheet Resources in the current Estimate referencing the same underlying Resource |
| ”Create a new Resource that only this Estimate uses” | Fork to new Resource | Creates a new Resource in the Estimate’s Project-Specific Price Book; current Worksheet Resource points to the new Resource |
All three trigger cascade: affected Items drop from Reviewed back to Priced; the Estimate may revert Reviewed → In Progress.
2. Action 1 — Per-instance override · default
What it does: edits the snapshot_rate on this one Worksheet Resource. Nothing else in the system changes.
When to use: one-off adjustment for a specific line (e.g., this Item’s install location has an unusual access premium, local only).
UI behaviour:
- Inline edit on the rate field in the Worksheet Resource row — lightest-weight interaction.
- No confirmation modal by default; the change is local.
- Divergence is now “expected” on this line — Anomaly Review still flags snapshot vs. live Resource, but the estimator has chosen to hold the override.
Side effects:
snapshot_rateupdates on this Worksheet Resource.- Other Worksheet Resources referencing the same Resource are untouched — they keep their own snapshots.
- The underlying Resource in the Price Book is not modified.
- cascade: this Item drops from
Reviewed→Pricedif it was Reviewed.
3. Action 2 — Apply to this Estimate
What it does: overrides the snapshot_rate on every Worksheet Resource in the current Estimate that references the same underlying Resource.
When to use: the estimator has decided the whole Estimate should use a different rate than the Price Book says — e.g., a mid-Estimate market check produced a firmer number. The change is Estimate-wide but not Resource-wide.
UI behaviour:
- Explicit menu option: “Apply to this Estimate”. Not a default click.
- Confirmation modal listing:
- The current snapshot rate
- The new rate being applied
- The count of Worksheet Resources that will be updated
- The Items affected (for cascade preview)
- Explicit confirm button.
Side effects:
- All matching Worksheet Resources in the current Estimate get the new
snapshot_rate. Their other attributes (quantity, wastage, modifier overrides) are preserved. - The underlying Resource in the Price Book is not modified.
- cascade: all affected Items drop
Reviewed → Priced.
Anomaly Review bulk-override inconsistency (Worksheet spec §8a): after a bulk override, if the same Resource is dragged into a new Worksheet in this Estimate, its snapshot comes from the original Price Book rate — not the overridden rate (because the Resource itself wasn’t changed). Anomaly Review surfaces this inconsistency; estimator can re-apply the bulk override to cover the new drag-ins, or fork the Resource.
4. Action 3 — Fork to new Resource
What it does: creates a new Resource in an auto-generated Project-Specific Price Book scoped to the current Estimate. The current Worksheet Resource is re-pointed to the new Resource. Other uses of the original Resource are unchanged.
When to use: the rate change represents a genuinely different Resource (e.g., different specification, different supplier terms). The estimator wants to preserve the original Resource for other Estimates and for this Estimate’s other uses.
UI behaviour:
- Explicit menu option: “Fork to new Resource”. Never a default.
- Modal:
- Pre-filled new Resource attributes (description, rate, unit, flags, modifiers) — editable
- Confirmation that a Project-Specific Price Book will be auto-created if the Estimate doesn’t already have one (named e.g., “Estimate {estimate_number} — Project Overrides”)
- Explicit confirm button
Side effects:
- A new Resource is created in the Estimate’s Project-Specific Price Book (auto-created on first fork).
- The current Worksheet Resource’s
resource_idre-points to the new Resource;snapshot_ratematches the new Resource’s rate. - Other Worksheet Resources referencing the original Resource are untouched.
- The original Resource in the source Price Book is not modified.
- cascade: this Item drops
Reviewed → Priced.
Lineage: the Worksheet Resource history records the fork event. The new Resource lives in the Project-Specific Price Book permanently (until the Estimate is archived).
5. Comparison matrix
| Aspect | Per-instance | Apply to Estimate | Fork |
|---|---|---|---|
| Affects this Worksheet Resource | ✅ | ✅ | ✅ |
| Affects other Worksheet Resources in same Estimate | ❌ | ✅ | ❌ |
| Affects Worksheet Resources in other Estimates | ❌ | ❌ | ❌ |
| Creates a new Resource | ❌ | ❌ | ✅ (in Project-Specific Price Book) |
| Modifies the source Resource in its Price Book | ❌ | ❌ | ❌ |
| Default / explicit | Default (inline) | Explicit (menu + confirm) | Explicit (menu + confirm) |
| Cascade triggers Items → Priced | ✅ | ✅ | ✅ |
| Survives Price Book rate changes | ✅ (local snapshot) | ✅ until Anomaly Review surfaces inconsistency on new drag-ins | ✅ (new Resource owns its rate) |
6. The cascade
Any of the three actions triggers the same cascade on affected Items:
- Item’s status transitions from
Reviewedback toPriced(Locked Items are not affected — they’re in Submitted Estimates). - Because the Estimate’s Reviewed status is derived from every Item being Reviewed, the Estimate may revert
Reviewed → In Progress. - Anomaly Review re-evaluates the affected Items on next run.
Rationale: a rate change invalidates prior senior review — the estimate has moved and needs re-checking.
7. Surfacing in the Anomaly Dashboard
Two classes of anomaly relate directly to rate-edit mechanics:
- Snapshot divergence — any Worksheet Resource whose snapshot differs from its Resource’s current state. Covers all three actions implicitly: after a PBA award, per-instance overrides, or a bulk override, divergence will be visible until explicitly acknowledged or pushed through.
- Bulk-override inconsistency — new drag-ins of a Resource that was subject to “Apply to this Estimate” snapshot from the original Price Book rate. Anomaly Review flags so the estimator can choose to re-apply the bulk override or fork.
Per-instance overrides have no dedicated anomaly — they’re an acknowledged local decision.
8. Flow diagram
User edits rate on Worksheet Resource
│
▼
┌────────────────────┐
│ Which action? │
└────────────────────┘
/ │ \
/ │ \
(Per-instance) (Apply (Fork to
[default] to Est.) new Resource)
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────────┐
│ Local │ │ Cascade │ │ Create new │
│ snapshot │ │ across │ │ Resource in │
│ update │ │ all │ │ Project- │
│ only │ │ matching │ │ Specific PB │
│ │ │ WRs in │ │ (auto-create │
│ │ │ Estimate │ │ if needed) │
└─────┬────┘ └─────┬────┘ └──────┬───────┘
│ │ │
└────────────┼─────────────┘
│
▼
┌──────────────────────────┐
│ Cascade: affected │
│ Items drop Reviewed → │
│ Priced │
└──────────────┬───────────┘
│
▼
┌──────────────────────────┐
│ Estimate may revert │
│ Reviewed → In Progress │
│ (derived from Items) │
└──────────────────────────┘
9. Worked example
Setup: an Estimate uses a Resource “Carpenter day rate” at $78/day across 14 Items. Two weeks in, the estimator notes all new Supplier quotes are coming in at $68/day.
Option A — Per-instance override
Estimator edits one Worksheet Resource line from $78 to $68. Only that one Item is affected; the other 13 stay at $78. Anomaly Review flags divergence on the edited line (intended); nothing else.
Option B — Apply to this Estimate
Estimator opens the “Apply to this Estimate” action from one of the 14 Worksheet Resources. Modal confirms: “Will update 14 Worksheet Resources across 11 Items.” Confirm. All 14 lines now carry $68; all 11 Items drop from Reviewed to Priced. Estimate reverts In Progress.
Option C — Fork
Estimator realises this is actually a different class of carpenter (higher-skilled crew for this specific project) and wants to keep the original Resource clean. Forks. A new Resource “Carpenter day rate — Acme project” is created in a new Project-Specific Price Book (“Estimate rev a — Project Overrides”). The one Worksheet Resource re-points to the new Resource at $68. Other 13 lines unchanged at $78 (pointing to original Resource). This Item drops Reviewed → Priced.
Follow-up: post-adjudication
Two weeks later, a PBA awards “Carpenter day rate” at $65 from Supplier C. PBA replaces the original Resource’s rate from $78 to $65.
- Option A estimate: 13 lines at $78 now show divergence (Resource is $65); 1 line at $68 shows divergence. Estimator pushes through or intentionally keeps.
- Option B estimate: 14 lines at $68 all show divergence (Resource is $65). Estimator can push through to $65 (removes override), re-apply bulk override to $68, or keep.
- Option C estimate: 1 line on the new forked Resource (unaffected); 13 lines on the original Resource show divergence to $65.