Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!

Reply
bnadir55
Regular Visitor

Help Needed – Incorporating Task Duration Into Weighted S-Curve (Power BI / Data Modeling)

Hi everyone,
I'm working on building an S-curve visualization where the X-axis represents the project timeline (date from start to end), and the Y-axis represents cumulative progress from 0% to 100% based on task completion.

I’m looking to incorporate task duration into the weighting logic.
Example: A task with a 10% weight scheduled from January 1–10 should have that 10% spread across those 10 days. If two tasks run in parallel during the same period (10% and 5% weights), then a total of 15% of the overall project weight occurs over the same 10-day window.

Tables / Columns Used:

  • ProjectProgressDashboard → Start_Date, Finish_Date, Duration_Days

  • WeightsSheet → weight_percent, Weight

  • DateTable → Date

Question:
Is this the correct conceptual way to model weighted duration in an S-curve (i.e., distribute task weight across its calendar span), and if so תhow should this be implemented efficiently (formula/modeling approach)?

Any guidance or examples would be greatly appreciated. Thanks!

1 ACCEPTED SOLUTION

Hi @bnadir55,

The remaining issue concerns how the task weight is retrieved from the related table and how daily values are summed up. You can try the following DAX, which should help by ensuring the weight is treated as a single value per task and that the cumulative calculation is done properly.

Task Weight := 
DIVIDE ( CALCULATE ( MAX ( ActivityWeights[Weight] ) ), 100 )

-------------------------------------------------------------------------------------------------

Cumulative Progress % :=
SUMX (
    FILTER ( ALL ( DateTable[Date] ), DateTable[Date] <= MAX ( DateTable[Date] ) ),
    [Daily Weighted Progress]
)

 

Thank you.

View solution in original post

8 REPLIES 8
v-saisrao-msft
Community Support
Community Support

Hi @bnadir55,Have you had a chance to review the solution we shared earlier? If the issue persists, feel free to reply so we can help further.

 

Thank you.

v-saisrao-msft
Community Support
Community Support

Hi @bnadir55.,

Thank you @lbendlin @Kedar_Pande, for your insights.

I reproduced the scenario using your sample data and got the expected output. Please find the screenshot and PBIX file attached for reference. Hope this helps.

vsaisraomsft_0-1767000749048.png

 

 

Thank you.

Thx! But it seems I am dealing with another challenge where my weight is in another table: ActivityWeights , which I have connected using a relationship properly and code not recognize :

bnadir55_0-1767016444187.png

 

BTW I have managed to change DAX to this :

 

bnadir55_0-1767017185805.png

 

But how can we get it 100% , and why its not smooth ?

 

bnadir55_0-1767017672741.png

 

 

 

 

 

Hi @bnadir55,

Checking in to see if your issue has been resolved. let us know if you still need any assistance.

 

Thank you.

Hi @bnadir55,

The remaining issue concerns how the task weight is retrieved from the related table and how daily values are summed up. You can try the following DAX, which should help by ensuring the weight is treated as a single value per task and that the cumulative calculation is done properly.

Task Weight := 
DIVIDE ( CALCULATE ( MAX ( ActivityWeights[Weight] ) ), 100 )

-------------------------------------------------------------------------------------------------

Cumulative Progress % :=
SUMX (
    FILTER ( ALL ( DateTable[Date] ), DateTable[Date] <= MAX ( DateTable[Date] ) ),
    [Daily Weighted Progress]
)

 

Thank you.

Kedar_Pande
Super User
Super User

@bnadir55 

 

ProjectTasks (Start_Date, Finish_Date, Weight)
→ Generate series from Start to Finish (1 row per task-day)
→ DailyWeight = TaskWeight / Duration_Days

 

S-Curve Cumulative =
SUMX(
FILTER( TaskDays, TaskDays[Date] <= MAX(DateTable[Date]) ),
TaskDays[DailyWeight]
)

 

Line chart:

X: DateTable[Date]

Y: [S-Curve Cumulative]

 

If this answer helped, please click 👍 or Accept as Solution.
-Kedar
LinkedIn: https://www.linkedin.com/in/kedar-pande

lbendlin
Super User
Super User

Please provide sample data that covers your issue or question completely, in a usable format (not as a screenshot).
Do not include sensitive information. Do not include anything that is unrelated to the issue or question.
Please show the expected outcome based on the sample data you provided.

Need help uploading data? https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...
Want faster answers? https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

Vote for your favorite vizzies from the Power BI World Championship submissions!

Sticker Challenge 2026 Carousel

Join our Community Sticker Challenge 2026

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

January Power BI Update Carousel

Power BI Monthly Update - January 2026

Check out the January 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.