Umm... not comparing data but taking a data point and finding its nearest data points whose amounts nets to zero.
Rule engine might work on a data where the data is not complex but here there are a lot of complexities like you don't have exact matching features which gives enough surety to rule based matching engine.