I have created a milestone via scripting. The target date is +3 days in the future and the warning date is +7 days in the future. However the warning flag shows up as green (on time) when it should be yellow. I have attached a screenshot. My code is as follows;
var milestone = item.addMilestone();
var target_date = new Date();
if (item.URGENCY === '1 - High')
else if (item.URGENCY === '2 - Medium')
else if (item.URGENCY === '2 - Low')
milestone.milestoneType = 'ENTER';
milestone.milestoneDate = target_date;
milestone.warnThreshold = 7;
milestone.progress = 100;
Because the warning date is set to occur after the target date, this will always show as green. The milestone will turn to red though once the target date is passed.
Always make sure the warning date is < the target date.