In the current environment of autosomal DNA testing, ethnicity estimating has gotten a bad rap. This is because all the DNA testing companies show different results, and often these results are confusing. Firstly, all of these companies compare a selected portion of your DNA against a relatively small sample of known profiles of living people whose ethnicities are defined as belonging to certain regions according to their known heritage. These small samples and assumed heritages have a tendency to skew the results. Secondly, genetic inheritanc provides no guarantee that a significant portion of an individuals' ancestors' DNA will be passed down to the individual, nor that the ancestors' DNA will be part of the sample analyzed. Thirdly, DNA segments mutate at varying rates, but averaging in the thousand years plus range, so that the ethnicities that these companies provide may extend back multiple to tens of thousands of years, far beyond the 1500 or so years that our genealogies can be traced.
I think that what most people are looking for and expect are ethnicity estimates that align closely to their genealogical research. Gigatrees provides exactly this sort of estimate by calculating ethnicities based on the known birth locations of each individuals' root ancestors.
Gigatrees does this by calculating the percentage of ethnicity (not DNA) that each ancestor contributes to their descendant. The algorithm will use the location of an ancestor's earliest event when no birth location can be found. If no location can be found, "Unknown" is used. The algorithm also handles single consanguineous relationships seamlessly, multiple levels are reported as "Duplicates". This method is obviously limited by the available ancestors and the accuracy of each genealogist's research. Given these limitations, however, the ethnicity estimates calculated by Gigatrees fall directly in line with what most people think when think "Ethnicity."