- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
yesterday
Allocation Interval Minutes: Precision and Weekly FTE Limits
A guide to the com.snc.resource_management.allocation_interval_minutes property: how it decides the smallest slice of time used when spreading effort across days, why hours sometimes look front-loaded or rounded, and how FTE assignments are kept within the requested FTE week by week.
Covers task and operational assignments, users and groups.
Contents
- What the allocation interval means
- Before you begin
- About this task – how effort is sliced and spread
- Procedure – Change the allocation interval
- Worked examples – Hours (task and operational)
- Worked examples – FTE and the weekly limit
- Worked examples – Groups
- Worked examples – Rounding corner cases
- Why the rolled-up hours can differ from the effort you entered
- Behavior reference
- Frequently encountered messages
- Best practices
- Limitations and known constraints
- Related articles
1. What the allocation interval means
Every resource assignment ends up as Resource Allocation Daily records. The allocation interval is the size of the smallest piece the system can put on a day.
| Value | Slice size | In plain English |
|---|---|---|
| 60 (default) | 1 hour | Hours are placed in whole hours. Anything that doesn't divide evenly lands on the first days. |
| 0.6 | 0.01 hour (36 seconds) | Hours are placed in hundredths of an hour, so the spread is smooth and even. |
The property's own description gives the guidance: FTE: use 0.6. Non-FTE (hours or person days): use 60. In system messages the property is called the Calendar Event Duration property.
2. Before you begin
Role required: pps_admin to view or change the property. Anyone creating assignments should know which value is active.
Setup used in every example
- Calendar: Jan 6 – Jan 31, 2025: 4 full weeks, 20 working days, Mon–Fri, 8 h/day
- Average daily FTE = 8
- 24-hour cap not a factor; no employee-date limits unless stated
Mon Tue Wed Thu Fri Week 1 6 7 8 9 10 Week 2 13 14 15 16 17 Week 3 20 21 22 23 24 Week 4 27 28 29 30 31
How the "weekly FTE" figure is calculated (this is how a week's FTE is shown in weekly views):
Weekly FTE = hours allocated in the week ÷ (Average daily FTE × working days in that week)
= week hours ÷ 40 (for a full 5-day week)
How to read the examples
Every example in this article follows the same layout:
- On the form: the fields you fill in on the resource assignment form, and what each value means.
- Admin setting: the allocation interval your administrator has configured.
- What the system does when you select Save: the calculation, step by step, in plain language.
- What you see after saving: the Effort field, the total allocated hours, and the hours planned on each day.
Terms used in the examples
| Term | Where you find it | What it means |
|---|---|---|
| Effort type | Field on the resource assignment form | How you express the amount of work. Hours: a total number of hours. FTE: a share of a full working day (1 FTE = a full day, 0.5 FTE = half a day). Person days: a number of full days. % Capacity: a percentage of the person's available time (operational work only). |
| Effort | Field on the form | The number itself, for example 63 (hours) or 0.02 (FTE) |
| Allocation type | Field on the form | The period over which the effort is balanced: Weekly, Monthly (default) or Plan duration (the whole assignment) |
| Average daily FTE | System property (8 in these examples) | How many hours make up one full working day. Used to turn FTE and Person days into hours. |
| Working day | The person's work schedule | A day on which the person is scheduled to work (here Mon–Fri, 8 hours) |
| Slice | Allocation interval property | The smallest piece of time the system can put on a day. At 60 a slice is 1 hour. At 0.6 a slice is 0.01 hour (36 seconds). |
| Resource Allocation Daily | Related list on the allocation | The hours planned for the person on each individual day |
| Allocated hours | Field on the Resource Allocation record | The total of all the daily hours, which is what the assignment actually received |
| Weekly FTE | Weekly views and reports | A week's hours ÷ 40 (for a 5-day week). It shows how much of the week was planned. |
3. About this task – how effort is sliced and spread
When an assignment is saved, the system works in three steps:
Step 1 – Convert the effort to hours, in whole slices
- FTE: Hours = FTE × Average daily FTE (8) × available days
- Person days: Hours = Person days × Average daily FTE (8)
- Hours: used as entered
- The result is rounded down to a whole number of slices. If anything was cut, you see "Requested efforts are rounded off based on the Calendar Event Duration property."
- For group assignments in Hours, the total is also rounded down to whole slices before it is split.
Step 2 – Give every working day the same base share
- Base = total slices ÷ working days, rounded down to a whole slice. Every working day gets the same base.
Step 3 – Place the leftover slices
| Effort type and allocation type | Where leftover slices go |
|---|---|
| Hours or Person days (any allocation type) | One extra slice per day, starting from the first day of the window (front-loaded) |
| FTE (or % Capacity) with Monthly or Plan duration | Round-robin across weeks: the 1st day of each week, then the 2nd day of each week, and so on. A slice is skipped if it would push that week above the requested FTE. |
| FTE with Weekly | Each week stays within the requested FTE |
Key point: Hours promises a total. FTE promises a weekly rate. With FTE the system protects the weekly figure. With Hours it protects the total and may front-load it.
4. Procedure – Change the allocation interval
- Enter
sys_properties.listin the filter navigator. - Search for Name =
com.snc.resource_management.allocation_interval_minutes. - Set Value to
60(whole hours) or0.6(hundredths of an hour). - Select Update.
Note: The new value is used when hours are next calculated: for new assignments, and when an existing assignment's effort or dates are edited. Existing daily records aren't rewritten on their own.
5. Worked examples – Hours (task and operational)
Example 1: 63 hours across the month, interval = 60
Scenario: Alex needs to spend 63 hours on the Website Overhaul project during January.
On the form
| Field | What you enter | What it means |
|---|---|---|
| Plan type | Task | Project work |
| Task | Website Overhaul | The project being staffed |
| Assignment type | User | One named person |
| Resource | Alex | Alex works Mon–Fri, 8 hours a day |
| Start date / End date | 2025-01-06 / 2025-01-31 | 4 weeks = 20 working days |
| Effort type | Hours | You are giving a total number of hours |
| Effort | 63 | 63 hours in total for the whole period |
| Allocation type | Monthly (default) | Balanced over the month |
Admin setting: Allocation interval = 60, so one slice is 1 whole hour.
What the system does when you select Save
- Uses the hours as entered. The effort type is Hours, so no conversion is needed: 63 hours.
- Cuts the hours into slices. Each slice is 1 hour, so 63 hours = 63 slices.
- Gives every working day the same share. 63 slices ÷ 20 working days = 3 whole slices per day (3 hours × 20 days = 60 hours). That leaves 3 slices over.
- Places the leftovers. With effort type Hours, each leftover slice goes to the next day starting from the first day: Jan 6, Jan 7 and Jan 8 each get one extra hour.
What you see after saving
- Effort: 63 hours (unchanged). Allocated hours: 63.
- Resource Allocation Daily:
| Week | Mon | Tue | Wed | Thu | Fri | Week total | Weekly FTE |
|---|---|---|---|---|---|---|---|
| Jan 6–10 | 4.0 | 4.0 | 4.0 | 3.0 | 3.0 | 18.0 | 0.45 |
| Jan 13–17 | 3.0 | 3.0 | 3.0 | 3.0 | 3.0 | 15.0 | 0.375 |
| Jan 20–24 | 3.0 | 3.0 | 3.0 | 3.0 | 3.0 | 15.0 | 0.375 |
| Jan 27–31 | 3.0 | 3.0 | 3.0 | 3.0 | 3.0 | 15.0 | 0.375 |
| Total | 63.0 |
Key Takeaway: Three days carry 4 hours and seventeen carry 3 hours. The total is exact, but week 1 is heavier because the leftover hours land at the start.
Example 2: The same 63 hours, interval = 0.6
Scenario: Exactly the same request as Example 1. Only the admin setting is different.
On the form: Same as Example 1 (Effort type Hours, Effort 63, Jan 6 – Jan 31).
Admin setting: Allocation interval = 0.6, so one slice is 0.01 hour (36 seconds).
What the system does when you select Save
- Uses the hours as entered: 63 hours.
- Cuts the hours into slices. Each slice is 0.01 hour, so 63 hours = 6,300 slices.
- Gives every working day the same share. 6,300 slices ÷ 20 days = 315 slices per day = 3.15 hours per day.
- Places the leftovers. 6,300 divides exactly by 20, so nothing is left over.
What you see after saving
- Effort: 63 hours. Allocated hours: 63.
- Resource Allocation Daily:
| Week | Mon | Tue | Wed | Thu | Fri | Week total |
|---|---|---|---|---|---|---|
| Every week | 3.15 | 3.15 | 3.15 | 3.15 | 3.15 | 15.75 |
| Total | 63.0 |
Key Takeaway: The same total with a perfectly even shape. All twenty days are identical, because the system can work in hundredths of an hour.
Example 3: Operational work behaves the same
Scenario: Instead of project work, Alex spends 63 hours on keep-the-lights-on (KTLO) support in January.
On the form (Operational work view)
| Field | What you enter | What it means |
|---|---|---|
| Plan type | Operational work | Non-project work, so there is no Task field |
| Operational work type | KTLO | The kind of operational work (KTLO, Admin, Meetings…) |
| Resource | Alex | – |
| Start date / End date | 2025-01-06 / 2025-01-31 | 20 working days |
| Effort type | Hours | Operational work offers only Hours and % Capacity |
| Effort | 63 | 63 hours in total |
What you see after saving
| Admin setting | Resource Allocation Daily | Allocated hours |
|---|---|---|
| Interval 60 | Jan 6, 7, 8 at 4.0 h; the other 17 days at 3.0 h | 63 |
| Interval 0.6 | All 20 days at 3.15 h | 63 |
Key Takeaway: The allocation interval applies to operational work in exactly the same way as to project work.
6. Worked examples – FTE and the weekly limit
Example 4: A very small FTE, interval = 0.6
Scenario: Alex is the project's subject-matter expert and needs to be available for about ten minutes a day throughout January.
On the form
| Field | What you enter | What it means |
|---|---|---|
| Plan type | Task | Project work |
| Task | Website Overhaul | – |
| Assignment type | User | One named person |
| Resource | Alex | Alex's full working day is 8 hours |
| Start date / End date | 2025-01-06 / 2025-01-31 | 20 working days |
| Effort type | FTE | You are giving a share of Alex's working day, not a total |
| Effort | 0.02 | 2% of an 8-hour day = 0.16 hour ≈ 10 minutes a day |
| Allocation type | Monthly | Balanced over the month, and never more than 0.02 FTE in any week |
Admin setting: Allocation interval = 0.6, so one slice is 0.01 hour.
What the system does when you select Save
- Turns the FTE into hours. 1 FTE means one full working day, which is 8 hours (Average daily FTE). So 0.02 FTE = 0.02 × 8 = 0.16 hour per day. Over 20 working days: 0.16 × 20 = 3.2 hours in total.
- Cuts the hours into slices. Each slice is 0.01 hour, so 3.2 hours = 320 slices. That is a whole number of slices, so nothing has to be rounded.
- Gives every working day the same share. 320 slices ÷ 20 days = 16 slices per day = 0.16 hour per day.
- Places the leftovers. 320 divides exactly by 20, so nothing is left over.
- Checks the weekly promise. Each week gets 5 × 0.16 = 0.8 hour. Weekly FTE = 0.8 ÷ 40 = 0.02, exactly what you asked for.
What you see after saving
- Effort: 0.02 FTE (unchanged). Allocated hours: 3.2.
- Resource Allocation Daily:
| Week | Mon | Tue | Wed | Thu | Fri | Week total | Weekly FTE |
|---|---|---|---|---|---|---|---|
| Every week | 0.16 | 0.16 | 0.16 | 0.16 | 0.16 | 0.80 | 0.02 |
| Total | 3.2 |
The result is the same when Allocation type is Weekly or Plan duration.
Key Takeaway: At 0.6, even a tiny FTE is planned exactly. Every day gets the same small amount and no week goes above the FTE you asked for.
Example 5: A larger FTE, interval = 0.6
Scenario: Alex spends 10% of each day (48 minutes) on the project.
On the form: Same as Example 4, but Effort = 0.1 (Effort type FTE).
What the system does when you select Save
- Turns the FTE into hours. 0.1 × 8 = 0.8 hour per day; × 20 days = 16 hours in total.
- Cuts into slices. 16 hours = 1,600 slices of 0.01 hour.
- Shares them out. 1,600 ÷ 20 = 80 slices per day = 0.8 hour per day, nothing left over.
- Checks the weekly promise. 5 × 0.8 = 4 hours per week; 4 ÷ 40 = 0.1 FTE.
What you see after saving
- Effort: 0.1 FTE. Allocated hours: 16.
- Resource Allocation Daily: 0.8 hour every working day, 4.0 hours every week.
Key Takeaway: The same behavior at a different size.
Example 6: Why the weekly limit matters, interval = 60 (illustration)
Scenario: Two project managers each plan 72 hours of Alex's time in January, but fill in the form differently.
On the form
| Field | Assignment A | Assignment B |
|---|---|---|
| Task / Resource | Website Overhaul / Alex | Website Overhaul / Alex |
| Start date / End date | 2025-01-06 / 2025-01-31 | 2025-01-06 / 2025-01-31 |
| Effort type | Hours (a total) | FTE (a share of each day) |
| Effort | 72 | 0.45 (0.45 × 8 h × 20 days = 72 h) |
| Allocation type | Monthly | Monthly |
Admin setting: Allocation interval = 60 (1-hour slices).
What the system does when you select Save (both assignments)
- Works out the hours. Both come to 72 hours = 72 one-hour slices.
- Gives every working day the same share. 72 ÷ 20 = 3 hours per day (60 hours), leaving 12 hours over.
- Places the 12 leftover hours. This is where the two assignments differ:
- A (Hours): the system promised only a total, so the leftovers go to the first 12 working days (all of week 1, all of week 2, and Mon–Tue of week 3).
- B (FTE): the system promised 0.45 FTE every week, which is 0.45 × 40 = 18 hours per week. The base already gives 15 hours per week, so each week can take 3 more. The leftovers go round-robin: the Monday of each week, then the Tuesday of each week, then the Wednesday of each week.
What you see after saving
A – Effort type Hours
| Week | Mon | Tue | Wed | Thu | Fri | Week total | Weekly FTE |
|---|---|---|---|---|---|---|---|
| Jan 6–10 | 4 | 4 | 4 | 4 | 4 | 20 | 0.50 |
| Jan 13–17 | 4 | 4 | 4 | 4 | 4 | 20 | 0.50 |
| Jan 20–24 | 4 | 4 | 3 | 3 | 3 | 17 | 0.425 |
| Jan 27–31 | 3 | 3 | 3 | 3 | 3 | 15 | 0.375 |
B – Effort type FTE
| Week | Mon | Tue | Wed | Thu | Fri | Week total | Weekly FTE |
|---|---|---|---|---|---|---|---|
| Jan 6–10 | 4 | 4 | 4 | 3 | 3 | 18 | 0.45 |
| Jan 13–17 | 4 | 4 | 4 | 3 | 3 | 18 | 0.45 |
| Jan 20–24 | 4 | 4 | 4 | 3 | 3 | 18 | 0.45 |
| Jan 27–31 | 4 | 4 | 4 | 3 | 3 | 18 | 0.45 |
Key Takeaway: Both assignments total 72 hours. With FTE, every week shows exactly the 0.45 you asked for. With Hours, the early weeks show more (0.50) and the later weeks less (0.375). Choose FTE when an even weekly load matters.
7. Worked examples – Groups
Example 7: Group task assignment in FTE, interval = 0.6
Scenario: The Design Team (Alex, Casey and Robin) should together give the project three quarters of a person throughout January.
On the form
| Field | What you enter | What it means |
|---|---|---|
| Task | Website Overhaul | – |
| Assignment type | Group | The system splits the work between the members |
| Group | Design Team | 3 members, each working Mon–Fri, 8 hours |
| Start date / End date | 2025-01-06 / 2025-01-31 | 20 working days |
| Effort type | FTE | A share of a working day |
| Effort | 0.75 | Three quarters of one person, for the whole team |
| Allocation type | Monthly | Weekly and Plan duration give the same result |
Admin setting: Allocation interval = 0.6.
What the system does when you select Save
- Splits the effort between members. 0.75 FTE ÷ 3 members = 0.25 FTE each. One child assignment is created for each member.
- Turns each share into hours. 0.25 × 8 = 2 hours per day; × 20 days = 40 hours per member.
- Spreads each member's hours. 40 hours = 4,000 slices ÷ 20 days = 200 slices = 2.0 hours per day.
- Checks each member's weekly promise. 5 × 2 = 10 hours per week; 10 ÷ 40 = 0.25 FTE.
What you see after saving
| Member | Share | Hours per day | Hours per week | Weekly FTE | Total hours |
|---|---|---|---|---|---|
| Alex | 0.25 FTE | 2.0 | 10.0 | 0.25 | 40.0 |
| Casey | 0.25 FTE | 2.0 | 10.0 | 0.25 | 40.0 |
| Robin | 0.25 FTE | 2.0 | 10.0 | 0.25 | 40.0 |
Key Takeaway: The weekly limit applies to each member's share. No member goes above 0.25 FTE in any week, whichever allocation type you pick.
Example 8: Operational group in Hours
Scenario: The Design Team spends 63 hours in total on team meetings in January.
On the form (Operational work view)
| Field | What you enter | What it means |
|---|---|---|
| Plan type | Operational work | – |
| Operational work type | Meetings | – |
| Assignment type | Group | Split between Alex, Casey and Robin |
| Group | Design Team | 3 members |
| Start date / End date | 2025-01-06 / 2025-01-31 | 20 working days |
| Effort type | Hours | A total for the whole team |
| Effort | 63 | – |
What the system does when you select Save
- Splits the hours between members in whole hours: 63 ÷ 3 = 21 hours each, with no remainder.
- Spreads each member's 21 hours over 20 working days. How it looks depends on the admin setting:
- Interval 60: 21 one-hour slices ÷ 20 days = 1 per day, with 1 slice left over, which goes to the first day.
- Interval 0.6: 2,100 slices ÷ 20 days = 105 slices = 1.05 hours every day.
What you see after saving
| Interval 60 | Interval 0.6 | |
|---|---|---|
| Each member, per day | Jan 6 at 2.0 h; the other 19 days at 1.0 h | 1.05 h every day |
| Each member, total | 21.0 h | 21.0 h |
| Group total | 63.0 h | 63.0 h |
Key Takeaway: The group total is the same either way. The interval only changes how smooth each person's days look.
Example 9: Group FTE splits are rounded to 2 decimals
Scenario: The Design Team should together give the project one full person.
On the form: Assignment type Group, Group Design Team (3 members), Effort type FTE, Effort 1.
What the system does when you select Save
- Splits the effort between members. 1 ÷ 3 = 0.3333… The share is stored to 2 decimals, so each member gets 0.33 FTE.
- Adds up the group. The group's Effort is re-calculated as the total of what the members received: 0.33 + 0.33 + 0.33 = 0.99 FTE.
What you see after saving
| Member | Share |
|---|---|
| Alex | 0.33 FTE |
| Casey | 0.33 FTE |
| Robin | 0.33 FTE |
| Group effort after save | 0.99 FTE |
Key Takeaway: Choose a group FTE that divides evenly by the number of members (for example 0.75 or 1.5 for 3 people), or expect a small shortfall.
Example 10: Group Hours that aren't a whole number of slices, interval = 60
Scenario: The Design Team needs 90.5 hours for a review cycle.
On the form: Assignment type Group, Group Design Team (3 members), Effort type Hours, Effort 90.5.
Admin setting: Allocation interval = 60 (1-hour slices).
What the system does when you select Save
- Rounds the total down to whole slices. 90.5 hours → 90 hours, because half an hour is smaller than one 1-hour slice.
- Splits the hours between members. 90 ÷ 3 = 30 hours each.
What you see after saving: Each member has 30 hours. The group's Effort shows 90 hours (you typed 90.5).
Key Takeaway: When the interval is 60, enter group Hours in whole hours.
8. Worked examples – Rounding corner cases
Example 11: Small FTE with interval = 60
Scenario: The same request as Example 4 (Alex, about ten minutes a day), but the administrator has left the interval at the default of 60.
On the form: Same as Example 4 (Effort type FTE, Effort 0.02, Jan 6 – Jan 31, Allocation type Monthly).
Admin setting: Allocation interval = 60, so the smallest piece is 1 whole hour.
What the system does when you select Save
- Turns the FTE into hours. 0.02 × 8 × 20 = 3.2 hours.
- Rounds down to whole slices. Only whole hours can be placed, so 3.2 becomes 3 hours. You see the info message Requested efforts are rounded off based on the Calendar Event Duration property.
- Checks the weekly promise. 0.02 FTE means at most 0.02 × 40 = 0.8 hour per week. But the smallest piece the system can place is 1 hour, which is already more than 0.8.
- Result: putting even one hour into any week would break the promise, so the hours may not be placeable at all.
What you see after saving: The assignment can end up with fewer hours than requested, or none. If nothing can be allocated, you see Resource allocation cannot be updated to 0.02 fte because Alex is not available.
Key Takeaway: At 60, any FTE below 0.025 (1 hour per 5-day week, because 1 ÷ 40 = 0.025) can't be planned faithfully. If you plan in small fractions of FTE, ask your administrator to use 0.6.
Example 12: Moderate FTE with interval = 60 (illustration)
Scenario: The same request as Example 5 (Alex, 10% of each day), with the interval at 60.
On the form: Same as Example 5 (Effort type FTE, Effort 0.1, Jan 6 – Jan 31, Allocation type Monthly).
Admin setting: Allocation interval = 60.
What the system does when you select Save
- Turns the FTE into hours. 0.1 × 8 × 20 = 16 hours, a whole number, so nothing is rounded.
- Gives every working day the same share. Alex should get 0.8 hour per day, but the smallest piece is 1 hour. 16 ÷ 20 = 0 whole hours per day, so all 16 hours are leftovers.
- Checks the weekly promise. 0.1 FTE = 0.1 × 40 = 4 hours per week at most.
- Places the leftovers round-robin across weeks: the Monday of each week, then the Tuesday of each week, and so on, stopping when a week reaches 4 hours.
What you see after saving
- Effort: 0.1 FTE. Allocated hours: 16.
- Resource Allocation Daily:
| Week | Mon | Tue | Wed | Thu | Fri | Week total | Weekly FTE |
|---|---|---|---|---|---|---|---|
| Each week | 1 | 1 | 1 | 1 | 0 | 4 | 0.1 |
Key Takeaway: The weekly figure is honored, but the days are lumpy (1, 1, 1, 1 and 0 hours) instead of 0.8 hour every day. The exact days depend on your first-day-of-week setting. With 0.6 you get 0.8 hour every day (Example 5).
Example 13: Hours with decimals, interval = 60
Scenario: Alex needs 10 and a half hours for a one-week task.
On the form
| Field | What you enter | What it means |
|---|---|---|
| Task / Resource | Website Overhaul / Alex | – |
| Start date / End date | 2025-01-06 / 2025-01-10 | Mon–Fri = 5 working days |
| Effort type | Hours | A total |
| Effort | 10.5 | Ten and a half hours |
Admin setting: Allocation interval = 60 (1-hour slices).
What the system does when you select Save
- Cuts the hours into slices. 10.5 hours contains 10 whole 1-hour slices. The remaining half hour is smaller than one slice, so it can't be placed.
- Gives every working day the same share. 10 ÷ 5 = 2 hours per day, nothing left over.
- Rolls up. The allocation's total is the sum of the days, 10 hours, and that total is copied back to the Effort field.
What you see after saving: Effort: 10 hours (you typed 10.5). Resource Allocation Daily: 2.0 hours on each of the 5 days.
Key Takeaway: A fraction smaller than one slice can't be placed, so it disappears. At 60, enter Hours as whole numbers. At 0.6, 10.5 hours is placed exactly (2.10 hours per day).
9. Why the rolled-up hours can differ from the effort you entered
Users often see that the hours rolled up onto the assignment, the resource allocation or the group parent don't match the effort they typed. For example, they enter 10 hours and the assignment comes back as 9.99, or enter 0.26 FTE and it comes back as 0.25. Usually nothing went wrong. The allocation interval decides what can be stored, and every value above the daily records is re-calculated from those records.
9.1 How values roll up
You type: Effort (Hours / FTE / Person days)
│ Step 1: converted to hours, rounded DOWN to whole slices
▼
Resource Allocation Daily one value per working day
hours per day = slices × interval ÷ 60, stored to 2 decimals
│ sum of all daily hours
▼
Resource Allocation
Allocated hours = SUM of the daily hours
Requested FTE = Allocated hours ÷ (Average daily FTE × working days), 2 decimals
Requested person days = Allocated hours ÷ Average daily FTE, 2 decimals
│ copied back
▼
Resource Assignment – Effort = Allocated hours (Hours) | Requested FTE (FTE) |
Requested person days (Person days)
│ group assignments only
▼
Group (parent) Effort = SUM of the children's effort
Because each level is re-calculated from the level below, any rounding in the daily records carries through to every value above it.
9.2 The five precision-related causes
| # | Cause | Where it happens | Typical result |
|---|---|---|---|
| 1 | FTE or Person days converted to hours and rounded down to whole slices | Step 1 (conversion) | 0.26 FTE over 10 days: 20.8 h → 20 h; Effort shows 0.25 FTE. "Calendar Event Duration" message shown. |
| 2 | A remainder smaller than one slice can't be placed | Spreading hours over days | 10.5 h at 60 → 10 h |
| 3 | Each day's hours are stored to 2 decimals; with some intervals the rounding adds up | Daily records | Allocation interval set to 10 minutes (not recommended): 10 h over 3 days → 3.33 + 3.33 + 3.33 = 9.99 h. See Example 16. |
| 4 | The interval doesn't divide 60 evenly (e.g. 7 or 45 min), so whole hours aren't whole slices | Daily records and daily capacity | Allocation interval set to 45 minutes (not recommended, because 45 doesn't divide an hour evenly): 20 h over 3 days → 19.5 h. See Example 17. |
| 5 | FTE and Person days are re-calculated from the rolled-up hours and rounded to 2 decimals | Allocation → assignment | The gap can show (0.26 → 0.25) or hide (0.13 FTE still shows 0.13 though only 20 of 20.8 h were allocated) |
What "10 minutes" and "45 minutes" mean here: they are possible values of the allocation interval property, set by an administrator. They are used only to show what goes wrong. The product accepts them, but they aren't recommended: use 60 or 0.6 (see §9.4).
Group assignments add two more:
| # | Cause | Result |
|---|---|---|
| 6 | Group FTE split per member is rounded to 2 decimals, then the parent sums the children | 1 FTE across 3 members → 0.33 × 3 = 0.99 FTE |
| 7 | Group Hours total is rounded down to whole slices before splitting | 90.5 h at 60 → 90 h (30 / 30 / 30) |
Not precision, but same symptom: the effort can also come back lower because of the 24-hour daily cap (Part 4) or because the person isn't employed for the whole window (Part 2). Rule those out first.
Example 14: FTE comes back lower (cause 1 + 5)
Scenario: Alex should spend about a quarter of each day (0.26 FTE) on the project for two weeks.
On the form
| Field | What you enter | What it means |
|---|---|---|
| Task / Resource | Website Overhaul / Alex | – |
| Start date / End date | 2025-01-06 / 2025-01-17 | 2 weeks = 10 working days |
| Effort type | FTE | A share of each working day |
| Effort | 0.26 | 26% of an 8-hour day ≈ 2.08 hours per day |
What the system does when you select Save
| Step | Interval 60 (1-hour slices) | Interval 0.6 (0.01-hour slices) |
|---|---|---|
| 1. Turn FTE into hours: 0.26 × 8 × 10 days | 20.8 hours | 20.8 hours |
| 2. Round down to whole slices | 20 hours. The 0.8 hour is less than one slice, so it is cut, and you see the "Calendar Event Duration" message. | 20.8 hours (2,080 slices, nothing cut) |
| 3. Share across the 10 days | 2.0 hours per day | 2.08 hours per day |
| 4. Add up the days (Allocated hours) | 20.0 | 20.8 |
| 5. Re-calculate the FTE from the hours: hours ÷ (8 × 10) | 20 ÷ 80 = 0.25 | 20.8 ÷ 80 = 0.26 |
What you see after saving
- Interval 60: Effort 0.25 FTE (you typed 0.26), Allocated hours 20.
- Interval 0.6: Effort 0.26 FTE, Allocated hours 20.8.
Key Takeaway: At 60, the part of the effort that doesn't make a whole hour is cut. The FTE you see afterwards is worked out again from the hours that were actually placed.
Example 15: The FTE looks unchanged but the hours aren't (cause 1 + 5)
Scenario: Alex spends about an hour a day (0.13 FTE) on the project throughout January.
On the form
| Field | What you enter | What it means |
|---|---|---|
| Task / Resource | Website Overhaul / Alex | – |
| Start date / End date | 2025-01-06 / 2025-01-31 | 20 working days |
| Effort type | FTE | A share of each working day |
| Effort | 0.13 | 13% of 8 hours = 1.04 hours per day |
Admin setting: Allocation interval = 60.
What the system does when you select Save
- Turns the FTE into hours. 0.13 × 8 × 20 = 20.8 hours.
- Rounds down to whole slices. 20 hours (0.8 hour cut; the "Calendar Event Duration" message is shown).
- Shares across the days. 20 ÷ 20 = 1.0 hour per day.
- Adds up the days. Allocated hours = 20.0.
- Re-calculates the FTE. 20 ÷ (8 × 20) = 0.125, which is shown to 2 decimals as 0.13.
What you see after saving: Effort 0.13 FTE, the same as you typed, but Allocated hours is 20, not 20.8.
Key Takeaway: The rounded FTE hides a 0.8-hour gap. When precision matters, check Allocated hours on the Resource Allocation record instead of relying on the FTE alone.
Example 16: 10 hours rolls up to 9.99 (cause 3)
Scenario: Alex needs 10 hours for a three-day workshop.
On the form
| Field | What you enter | What it means |
|---|---|---|
| Task / Resource | Website Overhaul / Alex | – |
| Start date / End date | 2025-01-06 / 2025-01-08 | Mon–Wed = 3 working days |
| Effort type | Hours | A total |
| Effort | 10 | 10 hours over the three days |
What the system does when you select Save (with four different admin settings)
| Admin setting | Size of one slice | Slices in 10 hours | Hours per day (stored to 2 decimals) | Allocated hours | Effort after save |
|---|---|---|---|---|---|
| 60 minutes | 1 hour | 10 | Mon 4.00, Tue 3.00, Wed 3.00 | 10.00 | 10 |
| 0.6 minutes | 0.01 hour | 1,000 | Mon 3.34, Tue 3.33, Wed 3.33 | 10.00 | 10 |
| 10 minutes (not recommended) | 0.1667 hour | 60 | 3.33, 3.33, 3.33 | 9.99 | 9.99 |
| 1 minute (not recommended) | 0.0167 hour | 600 | 3.33, 3.33, 3.33 | 9.99 | 9.99 |
Why the 10-minute setting turns 10 hours into 9.99, in plain words
Think of the allocation interval as the size of the time block the system works with. With an interval of 10 minutes, every block is 10 minutes long.
- Count the blocks. 10 hours is 600 minutes, which is 60 blocks of 10 minutes.
- Share them across the 3 days. 60 ÷ 3 = 20 blocks per day, which is 200 minutes per day.
- Turn each day into hours. 200 minutes is 3 hours and 20 minutes. As a decimal that is 3.3333… hours, and the 3s never end.
- Store each day. A daily record keeps hours to only 2 decimal places, so each day is saved as 3.33. About 12 seconds per day is lost in the rounding.
- Add up the days. 3.33 + 3.33 + 3.33 = 9.99. The Effort field is filled from this total, so it shows 9.99 instead of 10.
Why this doesn't happen with 60 or 0.6: a 1-hour block is exactly 1.00 hour and a 0.6-minute block is exactly 0.01 hour. Both fit in 2 decimal places, so nothing is ever rounded away. A 10-minute block is 0.1666… hour, which doesn't fit, so intervals like this (1, 5, 10 or 20 minutes) are not recommended.
Key Takeaway: With intervals where one slice isn't a clean hundredth of an hour (1, 5, 10 or 20 minutes…), each day is rounded and the small errors add up. 60 and 0.6 never cause this.
Example 17: An interval that doesn't divide 60 (cause 2 + 4)
Scenario: Alex needs 20 hours over three days, and the administrator has set the allocation interval to 45 minutes. This value is not recommended; the example shows why.
On the form: Task Website Overhaul, Resource Alex, Start 2025-01-06, End 2025-01-08 (3 working days), Effort type Hours, Effort 20.
Admin setting: Allocation interval = 45 minutes, so every time block is 45 minutes (0.75 hour) long, and the system can only place whole blocks.
What the system does when you select Save
- Counts how many 45-minute blocks fit into 20 hours.
- 20 hours = 1,200 minutes. 1,200 ÷ 45 = 26.67 blocks.
- Only whole blocks can be used, so the system takes 26 blocks. 26 × 45 minutes = 1,170 minutes = 19.5 hours.
- The last 30 minutes aren't enough for a 27th block, so they are dropped.
- Works out how many blocks fit into one of Alex's working days.
- Alex works 8 hours = 480 minutes a day. 480 ÷ 45 = 10.67 blocks.
- Only 10 whole blocks fit, which is 10 × 45 = 450 minutes = 7.5 hours.
- So the last half hour of each day can never be used by this assignment.
- Shares the 26 blocks equally across the 3 days.
- 26 ÷ 3 = 8 blocks per day, with 2 blocks left over.
- 8 blocks = 8 × 45 = 360 minutes = 6.00 hours per day.
- Gives the 2 leftover blocks to the first days.
- Monday gets one extra block (+0.75 hour) = 6.75 hours.
- Tuesday gets one extra block (+0.75 hour) = 6.75 hours.
- Wednesday stays at 6.00 hours.
| Day | Blocks | Minutes | Hours |
|---|---|---|---|
| Mon Jan 6 | 9 | 405 | 6.75 |
| Tue Jan 7 | 9 | 405 | 6.75 |
| Wed Jan 8 | 8 | 360 | 6.00 |
| Total | 26 | 1,170 | 19.5 |
What you see after saving
- Resource Allocation Daily: Mon 6.75, Tue 6.75, Wed 6.00
- Allocated hours: 19.5. Effort: 19.5 hours (you typed 20).
Why 45 minutes isn't recommended: 45 doesn't divide an hour evenly. Whole hours (20) don't become whole blocks, so part of every request can be dropped, and an 8-hour day shrinks to 7.5 usable hours. Use 60 or 0.6 instead.
Key Takeaway: If the interval doesn't divide an hour evenly, even whole-hour efforts lose a fraction, and the person's usable day shrinks (8 hours becomes 7.5).
Example 18: Group parent rolls up to a different total (cause 6 + 7)
Scenario: Three group assignments for the Design Team (Alex, Casey, Robin).
On the form: Assignment type Group, Group Design Team, with the effort below.
| Effort type and Effort entered | Admin setting | What each member receives | Group effort after save |
|---|---|---|---|
| FTE, 1 | any | 1 ÷ 3 = 0.3333…, stored as 0.33 each | 0.33 + 0.33 + 0.33 = 0.99 FTE |
| Hours, 90.5 | 60 | Total rounded down to 90, then 30 hours each | 90 hours |
| FTE, 0.75 | 0.6 | 0.75 ÷ 3 = 0.25 each | 0.75 FTE (no difference) |
Key Takeaway: The group's effort is the sum of what the members actually received, so any splitting or rounding at member level shows up on the group.
9.3 How to check where the difference came from
- Open the assignment's Resource Allocation record and note Allocated hours, Requested FTE and Requested person days.
- Open its Resource Allocation Daily related list and add up the Hours column. It should equal Allocated hours.
- Compare with what you typed:
- Allocated hours < FTE × 8 × working days → causes 1, 2 or 4 (or the 24-hour cap or employee dates).
- Daily values like 3.33 → cause 3 (interval isn't 60 or 0.6).
- FTE matches but hours don't → cause 5 (display rounding). Trust Allocated hours.
- For a group, compare the parent with the sum of the children.
9.4 Which interval values are safe
A value is "safe" when one slice is a clean hundredth of an hour and divides an hour evenly, so no rounding drift happens in the daily records.
| Interval (minutes) | One slice in hours | Clean hundredth? | Divides 60? | Drift risk |
|---|---|---|---|---|
| 0.6 | 0.01 | Yes | Yes | None (best precision) |
| 3 | 0.05 | Yes | Yes | None |
| 6 | 0.10 | Yes | Yes | None |
| 12 | 0.20 | Yes | Yes | None |
| 15 | 0.25 | Yes | Yes | None |
| 30 | 0.50 | Yes | Yes | None |
| 60 | 1.00 | Yes | Yes | None (whole hours) |
| 1 | 0.0167 | No | Yes | Daily rounding (cause 3) |
| 5 | 0.0833 | No | Yes | Daily rounding (cause 3) |
| 10 | 0.1667 | No | Yes | Daily rounding (cause 3) |
| 20 | 0.3333 | No | Yes | Daily rounding (cause 3) |
| 7 | 0.1167 | No | No | Daily rounding and lost fractions (causes 3 + 4) |
| 45 | 0.75 | Yes | No | Lost fractions on whole hours, and an 8 h day holds only 7.5 h of slices (cause 4) |
Recommendation: Use 0.6 (as the property description suggests for FTE) or 60 (for whole-hour planning). Avoid values marked "No" in either column.
10. Behavior reference
| Situation | Interval 60 | Interval 0.6 |
|---|---|---|
| Hours divide evenly over working days | Even | Even |
| Hours don't divide evenly | Extra hours on the first days | Even, to 0.01 h |
| FTE → hours conversion | Rounded down to whole hours (message) | Rounded down to 0.01 h (rarely noticeable) |
| FTE, Monthly / Plan duration | Leftovers balanced across weeks, never above requested FTE | Usually no leftovers; even |
| FTE, Weekly | Within requested FTE per week | Within requested FTE per week |
| Tiny FTE (< 0.025) | May be under-allocated or not allocated | Exact |
| FTE whose daily hours aren't whole (e.g. 0.1 FTE = 0.8 h) | Whole-hour days, some at 0 h; weekly FTE honored | Exact daily value |
| Group Hours | Total rounded down to whole hours, split in whole hours, remainder to the first members | Total rounded to 0.01 h, split in whole hours, remainder to the first members |
| Group FTE | Split to 2 decimals | Split to 2 decimals |
| Operational vs task | Same rules | Same rules |
| Rolled-up Allocated hours vs entered | May be lower (whole-hour rounding, sub-hour remainders dropped) | Matches to 0.01 h |
| Effort shown after save (FTE / Person days) | Re-calculated from rolled-up hours (2 decimals); may drop or hide a gap | Matches entered value |
| Interval not 60 / 0.6 (e.g. 1, 5, 10, 20, 7, 45) | Daily 2-decimal rounding and lost fractions can make rollups like 9.99 or 19.5 | – |
11. Frequently encountered messages
| Message | Meaning |
|---|---|
| Requested efforts are rounded off based on the Calendar Event Duration property. (info) | FTE or Person days hours were rounded down to whole slices. The rolled-up hours and the Effort shown will be lower than what you entered (§9, Examples 14–15). |
| Resource allocation cannot be updated to {effort} {type} because {name} is not available. | Shown when no hours at all could be placed, so the assignment's Effort ends up as 0. The wording says "not available", but the cause isn't always the person's availability. It can also be the 24-hour daily cap (Part 4) or, with interval 60 and a very small FTE, the weekly FTE limit blocking every 1-hour slice (Example 11). |
| (none): Hours rolled up as 9.99, 19.5… | The interval isn't 60 or 0.6, so daily values are rounded or fractions lost (§9, Examples 16–17) |
12. Best practices
- Planning in FTE or fractions of FTE? Use 0.6. It's what the property description recommends, and it removes rounding and lumpy days.
- Planning in whole hours or person days? 60 is fine. Choose totals that divide evenly by the working days (60 h over 20 days = 3 h/day) to avoid front-loading.
- Read week 1 carefully at 60. Extra hours on the first days come from leftovers, not from a mistake.
- Use FTE when the weekly figure matters to you. Only FTE (and % Capacity) is protected week by week.
- For groups, pick FTE values that divide evenly by the number of members, and Hours that are whole numbers at 60.
- Agree on one value organization-wide and change it rarely. Plans recalculated after a change can look different from older ones.
- Stick to 60 or 0.6. Other values (1, 5, 10, 20, 7, 45 minutes) cause daily rounding drift and lost fractions in rollups (§9.4).
- When numbers don't match, trust Allocated hours. It is the sum of the daily records. The FTE shown is re-calculated from it and rounded to 2 decimals (§9.3).
13. Limitations and known constraints
- The property is global. It affects all Resource Management allocations, not only Planning Attributes assignments.
- Changing it doesn't rewrite existing daily records. Plans change only when they are recalculated.
- The weekly FTE limit is applied to FTE (and % Capacity). Hours and Person days aren't limited per week.
- Fractions smaller than one slice can't be placed.
- At 60, very small FTE values may not be allocated in full, or at all.
- Daily records are stored to 2 decimals. Every value above them (Allocated hours, Requested FTE and person days, assignment Effort, group parent Effort) is re-calculated from them, so rounding carries through.
- No message is shown when Hours effort is reduced by rounding. The "Calendar Event Duration" message appears only for FTE and Person days conversions.