## DT.EU_analytics -------------------------------------------- ##
  dateCol.anal <- c(date="download_activity_date")
  colsToPull <- c(dateCol.anal, upc="releaseid", "storeid", "countryid", "transactiontypeid", "currencyid", royalty_price = "royalty")
  colsToAgg  <- ".RU"
  tbl <- "fact_analytics"
  UPCs <- DT.groupings[, unique(upc)]

  qry.anal <- makeQry(tbl=tbl, colsToAgg=colsToAgg, colsToPull=colsToPull, dateCol=dateCol.anal, minDate=minDate, where=list(countryid=countries_using, storeid=stores_using, releaseid=UPCs, if (ignoreNegativeUnits) "paidunits >= 0"), key="colsToPull")
  DT.EU_analytics <- runQry(qry.anal, cluster=cluster.using)
  BackUpOrRestore("DT.EU_analytics", force=TRUE)
  # BackUpOrRestore("DT.EU_analytics")

  ## Add column to indicate which TestWk each row of data belongs to (as determined by date)
  addTestWkCols_(DT.EU_analytics)

  ## Spotify has no revenue data
  DT.EU_analytics[storeid == 286, revenue := NA]

  ## Fill in meta data, include store name and transac details
  addAllMeta_(DT.EU_analytics)

  ## make idCols idCols
  upcToID_(DT.EU_analytics)
  for (col in extract("id", setdiff(colsToPull, c("currencyid", "releaseid"))))
    DT.EU_analytics[, (col) := as.idcol(get(col))]


  ## Add treatment columns then convert to factors
  addColsFrom_(DT.EU_analytics, DT.groupings, joinCols="upc", colsToBring=c("category", TreatmentWk1 = "Price_Wk1", TreatmentWk2 = "Price_Wk2"))
  DT.EU_analytics[  , TreatmentWk1 := factor(TreatmentWk1,  levels=pricingGroups)]
  DT.EU_analytics[  , TreatmentWk2 := factor(TreatmentWk2,  levels=pricingGroups)]

  ## Checking to make sure the levels are correct
  if (FALSE) {
    for (col in c("TreatmentWk1", "TreatmentWk2", "TestWk", "TestWk.dates")) {
      cat ("\n\t\t ---- ", col, " ---- \n")
      print (formnumb(table(DT.EU_analytics[[col]], useNA = "always")))
    }
  }

  ## Add a column for easy filtering. We will use this a lot, especially in plotting
  DT.EU_analytics[, is_iTunesDA := store_name == "iTunes" & transac_type_abbr %in% c("DA")]

  ## Add daily average for the month prior to testing
  byCols_for_avg <- setdiff(colNamesFromVector(colsToPull), colNamesFromVector(dateCol.anal))
  DT.EU_analytics[date %in% seq.Date(wk1.minDate-40, to=wk1.minDate-10, by="1 day"), daily_avg_album_units_30preTest := sumn(units)/31, by=byCols_for_avg]
  stopifnot(DT.EU_analytics[!is.na(daily_avg_album_units_30preTest), lunique(daily_avg_album_units_30preTest), by=byCols_for_avg][, V1 == 1])
  DT.EU_analytics[, daily_avg_album_units_30preTest := if (all(is.na(daily_avg_album_units_30preTest))) 0 else unique(removeNA(daily_avg_album_units_30preTest)), by=byCols_for_avg]


  if ("Wk2" %in% DT.EU_analytics$TestWk  &&  3  > diff(DT.EU_analytics[TestWk == "Wk2", rangen(date)])) {
    message("Range for Wk2 is three or less days, thus dropping that data.")
    DT.EU_analytics <- DT.EU_analytics[TestWk != "Wk2" | is.na(TestWk)]
  }
