Intro
This article collects example duration formulas you can copy and adapt in ALICE. Each example pairs a scheduling goal with a formula and the data it needs. To learn how to enter a formula on the Plan page, see Flexible Formulas.
How to read a formula
Formulas combine variables with basic operators: *, /, +, - and parentheses. For variable names, syntax and the formula sidebar, see Building a Flexible Formula.
Example formulas
Names in square brackets are placeholders.
| Goal | Formula | What it needs |
| A fixed number of work hours shared across crews working in parallel; adding crews shortens the duration | 60/num_crews | Crews assigned to the task |
| Imported Activity Duration shared across crews. Adding crews shortens the duration. | Task.imported_duration / num_crews | Crews assigned to the task |
| Time to install a material quantity at a set production rate | mat.[material]/pr.[production_rate] | A material quantity on the task; a production rate defined in the project |
| Time to install a material quantity at a set production rate, shared across crews working in parallel | mat.[material]/pr.[production_rate]/num_crews | Material quantity, production rate, crews assigned |
| A material quantity shared across crews working in parallel, with no production rate applied | mat.[material]/num_crews | Material quantity and crews assigned; no rate |
| The task's Budgeted Labor Units shared across crews working in parallel | task.blu/num_crews | Budgeted Labor Units on the task; crews assigned |
| The task's Budgeted Labor Units shared across crews, then converted to time at a set production rate | task.blu/num_crews/pr.[production_rate] | Budgeted Labor Units; crews assigned; production rate |
| A fixed number of work hours shared across equipment working in parallel; adding equipment shortens the duration | 60/eq.[equipment] | Equipment assigned to the task |
| Duration driven by two custom fields on the task: total volume over number of elements | task.udf.[field_1]/task.udf.[field_2] | Both custom fields filled in on the task |
| Duration driven by the same two custom fields, shared across crews working in parallel | task.udf.[field_1]/task.udf.[field_2]/num_crews | Both custom fields; crews assigned |
Worked example
Placing concrete. A slab task needs 600 cubic yards of concrete. The project's concrete production rate is 30 cubic yards per hour, and two crews are assigned.
In the duration formula, enter:
mat.concrete/pr.concrete_rate/num_crews
ALICE calculates 600 / 30 / 2 = 10 hours Task Duration.
Double the crews assigned to 4 and reschedule. ALICE recalculates 600 / 30 / 4 = 5 hours Task Duration.
Things to know
- Duration formulas work only on not-started tasks. In-progress and completed tasks, and milestones, keep static durations.
- After you change a variable, reschedule the plan to update durations.
- To round calculated durations up, set an interval in the table view settings.
- To see the formula behind each duration, add the Remaining duration formula column.
- When you export plan data to Excel and import it back, ALICE applies the duration formulas in the file.
- When you upload a new version from P6 or MSP with the Duration formulas option on (the default), tasks keep their ALICE formula. A number typed in ALICE is not a formula, so the new file's duration replaces it. Reschedule after the sync to see formula-driven durations.
Insights Agent
You can also ask the ALICE Insights Agent to help you build a duration formula.