# Use Duration fields

## What the Duration field is

The **Duration** field is a custom field type that stores **a single time value** — for example `2d 4h` or `30m`. Unlike the [Time Tracking field](https://teranoapps.gitbook.io/time-tracking-custom-field/user-guide/use-time-tracking-fields), it does not separate original estimate, time spent, and remaining time. There is no work-logging workflow; you simply enter or update the duration directly.

{% hint style="info" %}
The Duration field stores **one value**. If you need to track original estimate, time spent, and remaining time separately, use the [Time Tracking field](https://teranoapps.gitbook.io/time-tracking-custom-field/user-guide/use-time-tracking-fields) instead.
{% endhint %}

Use a Duration field when you need a straightforward time value on an issue — for example, an SLA limit, a meeting duration, a time budget, or any threshold expressed in time.

***

## Where you see the field

Depending on how your admin configured it, the Duration field may appear:

* On the **Create Issue** screen — to set an initial duration.
* On the **issue view / edit** screen — to view or update the value inline.
* On **transition screens** — if the admin added it to a workflow transition (for example, when moving to "In Progress" or "Done").
* On **customer portals** — if exposed on a request form in Jira Service Management.

If you don't see the field on a given project or issue type, it usually means it hasn't been added to those screens. Ask your Jira admin to check.

***

## Entering a duration value

### Duration format

Enter time using Jira-style duration strings:

* `30m` — 30 minutes
* `2h` — 2 hours
* `1d` — 1 day (by default 8 hours; your admin can change this)
* `1w` — 1 week (by default 5 days)
* `1d 3h` — 1 day and 3 hours
* `2w 1d 4h 30m` — combine any units

You can also enter a **plain number** (for example `30`). Whether this is interpreted as minutes or hours depends on your admin's [configuration](https://teranoapps.gitbook.io/time-tracking-custom-field/configuration#configuring-the-duration-field). A helper message below the input will tell you which one applies.

If the value can't be interpreted as a duration, the field will show an error:

> "Please enter duration in the correct format (e.g., 2w 1d 3h 4m)"

### When creating an issue

1. Open **Create issue**.
2. Find your Duration field (for example **"SLA Limit"**).
3. Enter the duration value, for example `4h` or `1d 2h`.
4. Create the issue.

The value is saved immediately as both a human-readable string and a numeric value in seconds, so it's ready for search and reporting.

### On existing issues

On an existing issue, the Duration field displays the formatted value (for example **2d 4h**). If no value has been set, it shows **None**.

To edit the value:

1. Click on the field to open the inline editor.
2. Enter a new duration (or clear the field if it's not required).
3. Click away or press Enter to save.

***

## Auto-normalization

The Duration field automatically **normalizes** your input into the most readable form. For example:

* You enter `90m` → the field displays **1h 30m**
* You enter `10h` → the field displays **1d 2h** (assuming the default of 8 hours per day)
* You enter `50h` → the field displays **1w 1d 2h** (assuming 8h/day, 5d/week)

This normalization happens when you leave the input field (on blur) and when you save.

{% hint style="info" %}
Normalization depends on your field's **hours per day** and \*\*days per week \*\* [configuration](https://teranoapps.gitbook.io/time-tracking-custom-field/configuration#configuring-the-duration-field). If your admin set hours per day to 6, then `6h` would normalize to `1d`, not just `6h`. Check with your admin if the results seem unexpected.
{% endhint %}

***

## Validation

The Duration field validates your input and shows clear error messages:

* **Invalid format** — if you enter something the field can't parse (for example `not-a-duration` or `2x`), you'll see: *"Please enter duration in the correct format (e.g., 2w 1d 3h 4m)"*
* **Required field** — if the admin made the field required and you leave it empty, you'll see: *"Duration is required."*
* **Non-negative** — the field does not accept negative durations. If a value somehow becomes negative, you'll see: *"Duration value must be non-negative."*

***

## Search and reporting

Duration fields are fully searchable in JQL. If your field is called **SLA Limit**, you can use:

* `"SLA Limit".DurationSeconds` — the numeric value in seconds (for comparisons)
* `"SLA Limit".Duration` — the formatted string value (for text matching)

Example: find all issues where the SLA limit is more than 4 hours:

```jql
"SLA Limit".DurationSeconds > 14400
```

For more JQL examples, dashboard tips, and automation patterns, see [\*\*Search & Reporting \*\*](https://teranoapps.gitbook.io/time-tracking-custom-field/search-and-reporting).

***

## Duration vs Time Tracking — when to use which

|                    | **Duration**                                              | **Time Tracking**                                       |
| ------------------ | --------------------------------------------------------- | ------------------------------------------------------- |
| **Values stored**  | 1 (a single duration)                                     | 3 (original estimate, time spent, remaining)            |
| **Work logging**   | No                                                        | Yes — log time and track remaining                      |
| **Auto remaining** | N/A                                                       | Remaining time decreases as you log work                |
| **JQL aliases**    | `Duration`, `DurationSeconds`                             | `OriginalEstimate*`, `TimeSpent*`, `RemainingEstimate*` |
| **Best for**       | SLA limits, budgets, meeting durations, simple thresholds | Dev/QA estimates, contract hours, effort tracking       |

{% hint style="info" %}
**Rule of thumb:** If you'll **log work** against this field over time, use **Time Tracking**. If you just need to \* *record a time value*\*, use **Duration**.
{% endhint %}

***

## See also

{% content-ref url="use-time-tracking-fields" %}
[use-time-tracking-fields](https://teranoapps.gitbook.io/time-tracking-custom-field/user-guide/use-time-tracking-fields)
{% endcontent-ref %}

{% content-ref url="../search-and-reporting" %}
[search-and-reporting](https://teranoapps.gitbook.io/time-tracking-custom-field/search-and-reporting)
{% endcontent-ref %}
