Is constructing the target variable manually a form of data leakage? Let's say, I have a data table with numerical features A, B, C. I do not have the target variable but I extract the target variable Y from the features A, B, and C. like so:
If A < 0.1*sum(A,B,C) and B < 0.1*sum(A,B,C) and C < 0.1*sum(A,B,C) then Y=1 else Y=0

Now I have features A, B, C and target variable Y for which I train model to predict Y. Is this data leakage? Is there anything wrong with this method?
 A: It is not data leakage. But it has another issue. Namely - the relationship between your variables and the target is deterministic and known to you, so what will you gain by training a model?
In this particular case if you get a new observation with new variables A, B, and C you can know the target outcome of this new observation by applying your formula. Any model that is trained on this data can fail to predict the Y correctly and hence can only do worse.
And in general, one of the requirements for applying "machine learning" is that features and the outcome shouldn't have a deterministic derivable relationship. For example this is why no one trains models in order to predict the odds of winning in games like roulette, where each outcome can be calculated perfectly using probability.
A: No, this is not data leakage. It's actually dataset generation (a mockup target variable) and it's typically done to test if a model can capture the underlying a user-defined relationship, which I assume it is also your aim to do so. 
