spot.cleanGrouping_ <- function(DT, abbrs=c("AS", "S", "TOTAL"))  {
  ## Drop the "YEAR Total" if exist
  suppressWarnings(DT[, "2013 Total" := NULL])
  suppressWarnings(DT[, "2014 Total" := NULL])

  Grouping <- DT[["Grouping"]]
  ## The last TOTAL is a group header
  Grouping[max(which(Grouping == "TOTAL"))] <- "MONTH_TOTAL"
  Grouping[Grouping == "DIGITAL"] <- "Orchard"

  Transacs <- Grouping %in% abbrs
  Titles <- which(!Transacs)
  NeedsTitle <- which(Transacs)
  transac_type_abbr <- rep(NA_character_, length(Grouping))
  for (r in NeedsTitle) {
    tit <- max(Titles[Titles < r])
    transac_type_abbr[c(r, tit)] <- Grouping[r]
    Grouping[r] <- Grouping[tit]
  }
  DT[, Grouping := NULL]

  DT[, c("Grouping", "transac_type_abbr") := list(Grouping, transac_type_abbr)]
  DT[is.na(transac_type_abbr) & Grouping == "Grand Total", transac_type_abbr := "Grand Total"]
  return(invisible(DT))
}

