You can try this,
Let us know if this help.
If I understand you right you are looking for the Earlier date between Purchase date, Start and End for each client ref to the user-weighted remaining term which equals to sum([Remaining Term]*[Users])/sum([Remaining Term]). Below calculation can give min value for all the 3 above specified. If this is not what you are looking for kindly let me know. Myself or someone in the forum can help you solve.
The issue with that is that it doesn't include all the data. If I put Day(Purchase Date) as a column for the line graph, then for each date it only shows those data entries which have the relevant purchase date. It does not include lines that were purchased earlier but have not ended yet.
Aggregate measures seems to help if I change the columns to be lookup(min(([Purchase Date])),0). Now when I look at the underlying data for each point, all the data is being included.
The next stage is to compute the user-weighted term for each point. It should be something like SUM(remaining term * users)/sum(users) where remaining term is equal to end date - lookup(min(([Purchase Date])),0).
And users should equal 0 if start date > lookup(min(([Purchase Date])),0) or end date < lookup(min(([Purchase Date])),0).
But I cannot do calculations using lookup(min(([Purchase Date])),0).