GANTT duration field -> Custom field data

Hi there,

I’m spearheading an Asana integration at a big firm.

My project set-up for now:

  • List view, with 6 sections, for each internal project phase
  • A template of tasks, that always need to be done for a project (design, prototype, build etc.)
  • A level of subtasks, defining the actual work needed to be done, per task (weld the frame, paint it, move it to this location, etc)

I call for a meeting, where i meet with the small team of engineers, and we estimate all the tasks, and their estimated durations, from the GANTT view in Asana. Any one-off costs (external testing, etc.) will be put into a currency “Cost” field. After the meeting, i set up dependencies, and drag the time “blocks” around, until the project makes sense.

I now want to come up with a budget, from the duration, in hours, multiplied by a fixed hourly engineering rate. This will be my rough estimate for labour costs.

But i cant seem to:

  • Sum up the “duration” field in the GANTT view
  • Find the “duration” field in List view, to then summarize it, somehow
  • Link “duration” to “estimated time”. Estimated time does a nice summary in list view, but doesn’t affect duration in GANNT. Duration in GANNT view doesn’t affect estimated time, and also does not show anywhere as a possible custom field.

How do i approach this?

1 Like

I understand the idea, but I think it’s difficult for the following reasons.
First, a task has a start date and a due date, but no duration.
Secondly, even if you were to calculate the duration from the start date and due date, there would be other issues. For example, there are different ways to do the same work, such as half a day x 10 days or one day x 5 days.

None of the solutions I’m listing will allow you to Sum the “Duration” field you are seeing in Gannt view.
None of the solutions would allow you to “Link” duration to estimated time.
This is primarily down to the duration field you are seeing in the Gannt view, being unique to the gannt view.

.

However, here is an attempt based on your parameters and what is possible natively from a test I did for my own knowledge going forward.

Some key considerations for this to work:

  • Duration as you are stating it from the Gannt View, can only be calculated in Days using a custom formula field, and is based off of a Start Date and Due Date being present.
  • The actual value of a time keeping field in Asana is stored as a number value in minutes. So for example, if you have a duration of 1 day, the number value would be 1 * 24 * 60 = 1440 minutes
  • To account for an hourly rate for a duration as you want, means you’ll need to introduce a multiplier in your formula fields to account for how many “hours” are in a working day

.

First Possible Solution:

  1. Create a custom formula field: (Due Date - Start Date) = Duration
    a. Keep in mind that the result will be measured in Days, not hours, unless you specify start times and end times. In which case the result can include hours, but that makes things even more complex in my opinion.
    b. Keep in mind that the result will not exclude Weekends

  2. Create a custom number field called “Rate” which for each task, you’ll input your Fixed Hourly Engineering Rate

  3. Create a custom formula field: (Duration * Fixed Daily Engineering Rate) / 1440 * working day in hrs = Budget
    a. You are taking the Duration fields value, multiplying it by your engineering rate and then dividing by 1440 to resolve the multiplicity applied to time-keeping fields.
    b. You then multiply by your working day in hours

Example where: Duration = 4 days or 5760minutes, Rate = $30, Working Day = 8hrs

  • Budget = Duration * Rate / 1440 * Working Day in Hours = 5760min * $30 / 1440min * 8hours
  • Budget = $172,800 / 1440min * 8hrs
  • Budget = $120 * 8hrs = $960

While this isn’t perfect, it would allow you to get your rough estimate costs on a per-day basis and would allow you to sum the “duration” field in the LIST view. The gannt view is not designed to show you the total duration as you are describing it

.

Second Possible Solution:
This would be my recommended solution
If you want something down to the hour, I would ignore the duration that you’re looking to tie to estimated time in Gannt view, and instead set your Estimated Time as the total time you think a task should take across all of its duration.
This would simplify your budget formula to: {Estimated Time in Hours} * {Rate}/60

  • The division by 60 in this case is because a time keeping field’s value is stored as a number of minutes in Asana as mentioned above.

Example where Estimated Time = 32hours, Rate = $30

  • Budget = Est Time * Rate / 60min = 1920minutes * $30 / 60min
  • Budget = $57600 / 60
  • Budget = $960

.

Third Possible Solution

Using some sort of trigger, whether that is Time Based, Rule Based, or Webhooks, use the Asana API to pull the necessary values for every task on a Project, do the calculations outside of Asana and then update a custom number field.

This solution would require external development and knowledge outside of Asana’s native functionality such as the Formula Field solutions I showed above.

1 Like

Hello Ludwig,

Thank you very much for your thorough answer. I appreciate it.

First Possible Solution:
Create a custom formula field: (Due Date - Start Date) = Duration
a. Keep in mind that the result will be measured in Days, not hours, unless you specify start times and end times. In which case the result can include hours, but that makes things even more complex in my opinion.
b. Keep in mind that the result will not exclude Weekends

This solution would be great, if it would exclude weekends. I can’t believe this option is not available, to subtrack weekdays.

Second Possible Solution:
This would be my recommended solution
If you want something down to the hour, I would ignore the duration that you’re looking to tie to estimated time in Gannt view, and instead set your Estimated Time as the total time you think a task should take across all of its duration.

I could see myself filling in estimated time, and then manually converting that number to a duration, over in gantt view, but how nice it would be, if these could somehow be linked.

My main issue is not the calculation of hours itself. I wont be using Asana for calculating the budget itself, but Asana is obvious to use to get an overview of the estimated labor cost.

I would love to see features to:

  • Have duration in GANTT view link to a list field.
  • The option to change what GANTT view duration tracks from (possibly “estimated time”)
  • Subtraction of weekdays with formulas
  • It would be brilliant, if one could set “estimated time” at the beginning of a project, and have the GANTT view put in duration from this, and then over time, if the project changes (longer durations etc.) then that would be tracked in “actual time”. Then you could compare estimated time, with actual time, at the end of a project, and during.
1 Like

So what i’ve ended up doing now, is:

  • A custom numbers field called “HoursPlanned”
  • A custom numbers field called “HoursPerDay”, which is always set to 7.4 (hours)
  • A custom formula field called “DaysPlanned”, which performs: HoursPlanned / HoursPerDay
  • A custom numbers field called “Cost”, which holds a currecy number, for one-off costs (non-labour work). Tasks with data in this field, should have HoursPlanned set to 0
  • A custom numbers field called “Rate”, which holds the general internal hourly rate in currency
  • A custom formula field called “CalculatedCost”, which performs: (HoursPlanned * Rate) + Cost

CalculatedCost, will then end up summing up all labor costs, and all non-labor costs.

For planning the project, i do this:

  • Go into GANTT view
  • Round off PlannedDays to a whole number, and put it into the tasks “Duration” field.
  • Drag timeblocks around, to put the tasks in order
  • Set up any dependencies, that makes sence.
  • Assign all tasks to relevant people
  • Go into Workload view
  • Set up the view to track “HoursPlanned”
  • I can then see how many hours each person needs to work on the project to follow the plan

This actually works well, because many employees work on several projects at the same time.
I can then negotiate with managers, whether i can have this person for 2.5 hours each day, for a given period. If i can’t, then i can go back to GANTT view and stretch the block, pushing the project timeline. Then the daily hours will be less.


I suspect, that once i get this done on several projects, i’ll be able to get the total overview of peoples workload, accross projects, from the portfolio view.

1 Like

Awesome use of the custom fields to get what you want!
I totally forgot to include workload viewing as a potential solution, but definitely sounds like what you needed.

If you haven’t already, try combining your projects into a portfolio as well and you can get a full workload view across all projects and tasks assigned to employees.
This also lets you add the fields you created for your projects, at the Portfolio viewing level as roll-up fields, so you can see the totals of each of the fields per project.

1 Like

Thank you.

I wonder, is it possible to set up the workload view in a portfolio to track other fields than estimated time, like you can in a project?

Yes, any number field including formulas too!

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.