Two of the most common data quality problems in Jira: issues are moved to In Progress without an original estimate, and issues are closed to Done without any logged time. Fixing this is straightforward — Jira workflow validators let you block transitions until the required fields are filled. This guide walks you through the exact steps for both.
Why Enforce These Fields at the Transition Level?
Making fields required on the issue screen helps, but it's easily bypassed — an assignee can still drag a card across the board without opening the issue. Workflow validators run at transition time and block the move entirely unless the condition is met. This is the only reliable enforcement point.
- Original Estimate on In Progress — ensures every started task has a baseline for predictability tracking and sprint capacity planning.
- Logged Time on Done — ensures actual effort is always captured, making your velocity, cost-of-feature, and retrospective data trustworthy.
Part 1 — Require Original Estimate on the “In Progress” Transition
Step 1: Open the Workflow Editor
- Go to Jira Settings (gear icon, top-right) → Issues → Workflows.
- Find the workflow used by your project. If it is shared across projects, you will need to create an editable copy — click Edit (or Copy first if it is active and read-only).
- In the workflow diagram, locate the transition that moves an issue from To Do (or your backlog status) to In Progress. Click on that transition arrow to select it.
Step 2: Add a “Field Required” Validator
- With the transition selected, click the Validators tab in the right-hand panel (or click Edit on the transition and navigate to the Validators step).
- Click Add validator.
- Select Field Required Validator from the list, then click Add.
- In the validator configuration:
- Field: select Original Estimate (sometimes labelled Story Points / Time Estimate depending on your Jira configuration — you want the
timeoriginalestimatefield). - Error Message: enter something user-friendly, e.g. “Please set an Original Estimate before starting work on this issue.”
- Field: select Original Estimate (sometimes labelled Story Points / Time Estimate depending on your Jira configuration — you want the
- Click Add to save the validator, then click Publish Draft to make the change live.
Step 3: Handle the Transition Screen (Optional but Recommended)
The validator blocks the move, but it is a better experience to surface the field on the transition screen so the user can fill it in without having to cancel, edit the issue, and retry.
- On the same transition, click the Screen tab (or the Transition Screen step in the wizard).
- Assign a screen that includes the Original Estimate field, or create a dedicated Start Progress Screen with just that field.
- Now, when a user drags the issue to In Progress, a dialog pops up prompting them to enter the estimate before the move is committed.
Part 2 — Require Logged Time on the “Done” Transition
Step 4: Locate the Transition to Done
- In the same workflow editor, find the transition(s) that lead into the Done status (common names: Done, Close Issue, Resolve, Mark Complete).
- Click the transition arrow to select it.
Step 5: Add a “Work Logged” Validator (Jira Software Cloud)
Jira Software Cloud includes a dedicated Work Logged validator built exactly for this purpose.
- Click Validators → Add validator.
- Select Work Logged and click Add.
- The validator has a single option: Log is required on this issue. No further configuration is needed.
- Set a clear error message, e.g.: “Please log your time before closing this issue. No time has been recorded yet.”
- Save and Publish Draft.
Step 5 (Alternative): Use a “Field Required” Validator (Jira Server / Data Center)
On Jira Server and Data Center the dedicated Work Logged validator may not be present. Use the Field Required Validator instead:
- Add validator → Field Required Validator.
- Field: select Time Spent (
timespent). - Error message: “Time Spent must be recorded before this issue can be closed.”
- Save and publish.
Part 3 — Testing the Configuration
Step 6: Test the In Progress Transition
- Create a test issue in your project and leave the Original Estimate blank.
- Try to transition it to In Progress — either via the board drag or the Status dropdown inside the issue.
- Confirm that Jira blocks the transition and shows your custom error message.
- Now set the Original Estimate (e.g.
2h) and repeat — the issue should move successfully.
Step 7: Test the Done Transition
- Move a test issue to In Progress (with an estimate set).
- Try to transition it to Done without logging any time.
- Confirm the validator blocks it with the “no time logged” message.
- Log time on the issue (e.g.
1h 30mvia the Log Work dialog or via TimeEase's inline timer). - Retry the Done transition — it should succeed.
Part 4 — Best Practices & Common Pitfalls
Communicate the Change to Your Team
Validators surface as error messages that can feel like friction if they appear without warning. Before enabling them in production:
- Announce the change in your team channel with a short explanation of why.
- Link to a short guide (like this one) so engineers know the expected behavior.
- Set a grace period — enable in a staging project first, then roll out to all projects after a sprint.
Avoid Over-Blocking Non-Tracked Issue Types
Not every issue type needs time tracking — Epics, Sub-tasks in spike/research, or Incidents may legitimately close without an original estimate. Use Condition rules on the same transition (alongside the validator) to restrict the validator to specific issue types:
Condition: "Only transition if issue type is Story, Bug, or Task"
Use TimeEase to Reduce Friction
Mandatory validators only work if logging time is easy. If logging feels like a chore, developers will find workarounds — or resent the process entirely.
Monitor Adoption With a JQL Audit Query
After rollout, use these JQL queries to confirm the validators are working and data quality has improved:
-- Issues In Progress with no estimate (should return 0 after rollout) project = "MYPROJECT" AND status = "In Progress" AND originalEstimate is EMPTY -- Issues Done with no time logged (should return 0 after rollout) project = "MYPROJECT" AND status = "Done" AND timeSpent is EMPTY AND created >= -30d
Save these as Jira Dashboard Gadgets and pin them to your team dashboard. A count of zero is the target.
Summary
| Goal | Transition | Validator Type | Field |
|---|---|---|---|
| Estimate before starting | → In Progress | Field Required | Original Estimate |
| Time logged before closing | → Done | Work Logged (Cloud) / Field Required (DC) | Time Spent |
With these two validators in place, your Jira data becomes reliably complete — enabling accurate velocity tracking, honest retrospectives, and trustworthy cost-of-feature reports without any manual chasing.