Hi,
It sounds like data-driven tests have become your new best friend. I use these extensively, though in my data source, I have the values and expected results in each row. Not two different data sources.
I don't use assertions/smart assertions in my data driven test as I want the test to continue to the very end so I can see all the failures, instead of the test failing after the first assertion fail.
Instead I write groovy scripts to run for each iteration to check actual against expected and return the result of the check.
At the end of end iteration, I then write to a data-sink step. This step will report values from the datasource and the results of the above groovy scripts.
Then, once the test is complete, I can use Excel to review all the results.