This can occur if there is a Catch All segment at a higher segment level than the segment with the source.

For example, you have a segment at segment level 2 with a source and a segment level 3 with no source.
-->--> RJQ Rem Balance                source: MBR170202A81
-->-->--> RJQ Rem

The criteria for the "RJQ Rem Balance" line is: gift_type = 'RJ' and Months_To_Activity_End = 3
The criteria for "RJQ Rem" is: gift_type = 'RJ'

Since the criteria in "RJQ Rem" also covers all the records that would be caught in "RJQ Rem Balance", then "RJQ Rem", being at a higher segment level off 3, would be the segment that captures all those records, and stamps them with the source associated with it on the appeal table. But since the source is null, all the segments get a null source. The resolution here is that the higher segment should have the more specific criteria, which was set on the Balance line instead. The source should also be moved to the "RJQ Rem" line, since that's the segment criteria they actually want to capture. So the segments and criteria should have been this instead:
-->--> RJQ Rem Balance                
-->-->--> RJQ Rem                       source: MBR170202A81

The criteria for "RJQ Rem Balance" is: gift_type = 'RJ'
The criteria for the "RJQ Rem" line is: gift_type = 'RJ' and Months_To_Activity_End = 3