I have found a jointplot to be somewhat informative in these types of distributions. Moreover, you might partition each iteration then look at the whole. I suspect a dynamic boxplot formula for outliers is not the best choice for your upper and lower bounds. Can you get any info from the manufactured? If you can't, perhaps there are other formula to consider. Such max jump, spikes and drops in addition to hard boundaries.
Here's an approach to partitioning iterations:
###--->>>establish a partition variable
variable={}
###--->>>BEGIN LOOP
###--->>>calculate theTest's boxplot outliers
q1,q3=np.percentil(thePopulation,[25,75])
iqr=q3-q1
l,u=float(q1-(iqr1.5)),float(q3+(iqr*1.5))
###--->>> calculate the mean, std
mean,std=thePopulation.mean(),thePopulation.std()
###--->>>create a key for theTest
variable[theTest]={}
###--->>>put any useful information into the variable
variable[theTest][mean],variable[theTest][std]=mean,std
variable[theTest][lower], variable[theTest][upper], variable[theTest][min], variable[theTest][max], variable[theTest][thePopulation] = lower, upper, thePopulation.min(), thePoopulation.max(), thePopulation
AFTER ALL ITERATIONS: iterate through the variable, plot the values to examine them, run statistical tests, and so forth. If nothing else, that will give you a lot of information.