diff --git a/plugins/tracker-resources/src/components/issues/timereport/EstimationEditor.svelte b/plugins/tracker-resources/src/components/issues/timereport/EstimationEditor.svelte
index 5dcf612f34..a79a0d4710 100644
--- a/plugins/tracker-resources/src/components/issues/timereport/EstimationEditor.svelte
+++ b/plugins/tracker-resources/src/components/issues/timereport/EstimationEditor.svelte
@@ -18,7 +18,7 @@
   import { getClient } from '@hcengineering/presentation'
   import { Issue, IssueDraft } from '@hcengineering/tracker'
   import { Button, ButtonKind, ButtonSize, eventToHTMLElement, showPopup } from '@hcengineering/ui'
-  import { EditBoxPopup } from '@hcengineering/view-resources'
+  import { EditBoxPopup, FixedColumn } from '@hcengineering/view-resources'
   import { createEventDispatcher } from 'svelte'
   import tracker from '../../../plugin'
   import EstimationPopup from './EstimationPopup.svelte'
@@ -74,7 +74,9 @@
 
 {#if value}
   {#if kind === 'list' && '_class' in value}
-    <EstimationStatsPresenter {value} {kind} on:click={handleestimationEditorOpened} />
+    <FixedColumn key="estimation-editor-total">
+      <EstimationStatsPresenter {value} {kind} on:click={handleestimationEditorOpened} />
+    </FixedColumn>
   {:else}
     <Button
       {focusIndex}
diff --git a/plugins/tracker-resources/src/components/issues/timereport/TimePresenter.svelte b/plugins/tracker-resources/src/components/issues/timereport/TimePresenter.svelte
index df5ee8d56d..25a8b27ed3 100644
--- a/plugins/tracker-resources/src/components/issues/timereport/TimePresenter.svelte
+++ b/plugins/tracker-resources/src/components/issues/timereport/TimePresenter.svelte
@@ -29,13 +29,15 @@
   on:click
   use:tooltip={{
     component: Label,
-    props: { label: tracker.string.TimeSpendHours, params: { value: floorFractionDigits(value * 8, 2) } }
+    props: { label: tracker.string.TimeSpendHours, params: { value: floorFractionDigits(value * 8, 3) } }
   }}
 >
   {#if noSymbol}
-    {floorFractionDigits(value, 3)}
+    {floorFractionDigits(value, 1)}
+  {:else if value > 0 && value < 1}
+    <Label label={tracker.string.TimeSpendHours} params={{ value: floorFractionDigits(value * 8, 1) }} />
   {:else}
-    <Label label={tracker.string.TimeSpendValue} params={{ value: floorFractionDigits(value, 3) }} />
+    <Label label={tracker.string.TimeSpendValue} params={{ value: floorFractionDigits(value, 1) }} />
   {/if}
 </span>
 
diff --git a/plugins/tracker-resources/src/components/sprints/IssueStatistics.svelte b/plugins/tracker-resources/src/components/sprints/IssueStatistics.svelte
index b34093c181..45749c61b6 100644
--- a/plugins/tracker-resources/src/components/sprints/IssueStatistics.svelte
+++ b/plugins/tracker-resources/src/components/sprints/IssueStatistics.svelte
@@ -20,8 +20,10 @@
   import { statusStore } from '@hcengineering/presentation'
   import EstimationProgressCircle from '../issues/timereport/EstimationProgressCircle.svelte'
   import TimePresenter from '../issues/timereport/TimePresenter.svelte'
+  import { FixedColumn } from '@hcengineering/view-resources'
   export let docs: Issue[] | undefined = undefined
   export let capacity: number | undefined = undefined
+  export let category: string | undefined = undefined
 
   $: ids = new Set(docs?.map((it) => it._id) ?? [])
 
@@ -60,7 +62,7 @@
       .reduce((it, cur) => {
         return it + cur
       }, 0),
-    3
+    1
   )
   $: totalReported = floorFractionDigits(
     (noParents ?? [{ reportedTime: 0, childInfo: [] } as unknown as Issue])
@@ -76,22 +78,24 @@
       .reduce((it, cur) => {
         return it + cur
       }, 0),
-    3
+    1
   )
 </script>
 
-{#if docs}
-  <!-- <Label label={tracker.string.SprintDay} value={}/> -->
-  <div class="flex-row-center flex-no-shrink h-6" class:showWarning={totalEstimation > (capacity ?? 0)}>
-    <EstimationProgressCircle value={totalReported} max={totalEstimation} />
-    <div class="w-2 min-w-2" />
-    {#if totalReported > 0}
-      <TimePresenter value={totalReported} />
-      /
-    {/if}
-    <TimePresenter value={totalEstimation} />
-    {#if capacity}
-      <Label label={tracker.string.CapacityValue} params={{ value: capacity }} />
-    {/if}
-  </div>
+{#if docs && (category === 'sprint' || category === 'assignee')}
+  <FixedColumn key="estimation-editor">
+    <!-- <Label label={tracker.string.SprintDay} value={}/> -->
+    <div class="flex-row-center flex-no-shrink h-6" class:showWarning={totalEstimation > (capacity ?? 0)}>
+      <EstimationProgressCircle value={totalReported} max={totalEstimation} />
+      <div class="w-2 min-w-2" />
+      {#if totalReported > 0}
+        <TimePresenter value={totalReported} />
+        /
+      {/if}
+      <TimePresenter value={totalEstimation} />
+      {#if capacity}
+        <Label label={tracker.string.CapacityValue} params={{ value: capacity }} />
+      {/if}
+    </div>
+  </FixedColumn>
 {/if}
diff --git a/plugins/view-resources/src/components/list/ListHeader.svelte b/plugins/view-resources/src/components/list/ListHeader.svelte
index 6c6ea35f88..a0a4e09356 100644
--- a/plugins/view-resources/src/components/list/ListHeader.svelte
+++ b/plugins/view-resources/src/components/list/ListHeader.svelte
@@ -19,6 +19,7 @@
     ActionIcon,
     AnyComponent,
     Button,
+    Component,
     IconAdd,
     IconBack,
     IconCheck,
@@ -98,7 +99,7 @@
     }}
     on:click={() => dispatch('collapse')}
   >
-    <div class="flex-row-center clear-mins">
+    <div class="flex-row-center clear-mins flex-grow">
       {#if level === 0}
         <div class="chevron"><IconCollapseArrow size={'small'} /></div>
       {/if}
@@ -152,6 +153,11 @@
       {:else}
         <span class="antiSection-header__counter ml-2">{items.length}</span>
       {/if}
+      <div class="flex-row-center flex-reverse flex-grow">
+        {#each extraHeaders ?? [] as extra}
+          <Component is={extra} props={{ ...props, value: category, category: groupByKey, docs: items }} />
+        {/each}
+      </div>
     </div>
     {#if createItemDialog !== undefined && createItemLabel !== undefined}
       <div class:on-hover={!mouseOver} class="flex-row-center">
@@ -190,7 +196,7 @@
     position: relative;
     position: sticky;
     top: 0;
-    padding: 0 0.75rem 0 0.75rem;
+    padding: 0 2.5rem 0 0.75rem;
     height: 2.75rem;
     min-height: 2.75rem;
     min-width: 0;
diff --git a/tests/sanity/tests/tracker.spec.ts b/tests/sanity/tests/tracker.spec.ts
index 5e1660fd2e..f8e6b3533f 100644
--- a/tests/sanity/tests/tracker.spec.ts
+++ b/tests/sanity/tests/tracker.spec.ts
@@ -118,6 +118,18 @@ test('my-issues', async ({ page }) => {
   await expect(page.locator('.antiPanel-component')).not.toContainText(name)
 })
 
+function floorFractionDigits (n: number | string, amount: number): number {
+  return Number(Number(n).toFixed(amount))
+}
+
+function toTime (value: number): string {
+  if (value > 0 && value < 1) {
+    return `${floorFractionDigits(value * 8, 1)}h`
+  } else {
+    return `${floorFractionDigits(value, 1)}d`
+  }
+}
+
 test('report-time-from-issue-card', async ({ page }) => {
   await navigate(page)
   const assignee = 'Chen Rosamund'
@@ -142,7 +154,7 @@ test('report-time-from-issue-card', async ({ page }) => {
     await page.click('button:has-text("Create")')
     await page.click('#card-close')
 
-    await expect(page.locator('#ReportedTimeEditor')).toContainText(`${time}d`)
+    await expect(page.locator('#ReportedTimeEditor')).toContainText(toTime(time))
   }
 })
 
@@ -186,7 +198,7 @@ test('report-time-from-main-view', async ({ page }) => {
     await page.click('button:has-text("Create")')
     await page.click('#card-close')
 
-    await expect(page.locator('.estimation-container >> span').first()).toContainText(`${Number(count.toFixed(2))}d`)
+    await expect(page.locator('.estimation-container >> span').first()).toContainText(toTime(count))
   }
 })