Qa volume

View or edit on GitHub

This page is synchronized from trase/models/indonesia/palm_oil/qa_volume.ipynb. Last modified on 2026-08-05 15:56 CEST by Harry Biddle. Please view or edit the original file there; changes should be reflected here after a midnight build (CET time), or manually triggering it with a GitHub action (link).

check_year_stitch_details <- function(year) {
  library(dplyr)
  library(readr)
  library(stringr)
  library(tibble)

  pct <- function(num, den) {
    if (length(den) == 1) {
      if (is.na(den) || den == 0) {
        return(rep(NA_real_, length(num)))
      }
      return(100 * num / den)
    }

    ifelse(is.na(den) | den == 0, NA_real_, 100 * num / den)
  }

  message("Checking ", year)

  result_path <- file.path(as.character(year), "results", "results_KM_0_MGD_30.csv")
  flows_path <- file.path(as.character(year), "prepared", "flows.csv")
  exporter_path <- file.path(as.character(year), "prepared", "exporter.csv")
  port_path <- file.path(as.character(year), "prepared", "port.csv")

  message("Read results")
  results <- read_delim(result_path, delim = ";", show_col_types = FALSE) %>%
    mutate(
      exporter_id = if_else(
        is.na(exporter_trase_id) | exporter_trase_id == "",
        "NA",
        str_replace(exporter_trase_id, "^ID-TRADER-", "E-")
      ),
      port_export_id = case_when(
        port_trase_id == "ID-PORT-DOMESTIC" ~ "NA",
        port_trase_id == "NONE" ~ "NA",
        port_trase_id == "ID-PORT-XXXX" ~ "UNKNOWN",
        is.na(port_trase_id) | port_trase_id == "" ~ "NA",
        TRUE ~ str_replace(port_trase_id, "^ID-PORT-", "P-")
      ),
      vol = as.numeric(vol),
      fob = as.numeric(fob)
    )

  message("Read lookups")
  exporters <- read_delim(exporter_path, delim = ";", show_col_types = FALSE) %>%
    select(exporter = name, exporter_id = id)

  ports <- read_delim(port_path, delim = ";", show_col_types = FALSE) %>%
    select(port_of_export = name, port_export_id = id)

  message("Read prepared flows")
  flows <- read_delim(flows_path, delim = ";", show_col_types = FALSE) %>%
    left_join(exporters, by = "exporter") %>%
    left_join(ports, by = "port_of_export") %>%
    mutate(
      exporter_id = coalesce(exporter_id, "NA"),
      port_export_id = coalesce(port_export_id, "UNKNOWN"),
      vol = as.numeric(vol),
      fob = as.numeric(fob)
    )

  lookup_coverage <- flows %>%
    summarise(
      missing_exporter_id_rows = sum(exporter_id == "NA"),
      missing_exporter_id_vol = sum(if_else(exporter_id == "NA", vol, 0), na.rm = TRUE),
      missing_exporter_id_fob = sum(if_else(exporter_id == "NA", fob, 0), na.rm = TRUE),
      missing_port_id_rows = sum(port_export_id == "UNKNOWN"),
      missing_port_id_vol = sum(if_else(port_export_id == "UNKNOWN", vol, 0), na.rm = TRUE),
      missing_port_id_fob = sum(if_else(port_export_id == "UNKNOWN", fob, 0), na.rm = TRUE)
    )

  port_known_summary <- flows %>%
    mutate(port_known = port_export_id != "UNKNOWN") %>%
    group_by(port_known) %>%
    summarise(
      rows = n(),
      vol = sum(vol, na.rm = TRUE),
      fob = sum(fob, na.rm = TRUE),
      .groups = "drop"
    ) %>%
    mutate(
      vol_share_pct = pct(vol, sum(vol, na.rm = TRUE)),
      fob_share_pct = pct(fob, sum(fob, na.rm = TRUE))
    )

  known_port_flow_total <- flows %>%
    filter(port_export_id != "UNKNOWN") %>%
    summarise(
      known_port_flow_vol = sum(vol, na.rm = TRUE),
      known_port_flow_fob = sum(fob, na.rm = TRUE)
    )

  message("Compare by stitch key")
  result_key <- results %>%
    filter(!str_detect(branch, "^DOMESTIC")) %>%
    group_by(commodity, exporter_id, port_export_id) %>%
    summarise(
      result_vol = sum(vol, na.rm = TRUE),
      result_fob = sum(fob, na.rm = TRUE),
      result_rows = n(),
      .groups = "drop"
    )

  flow_key <- flows %>%
    group_by(commodity, exporter_id, port_export_id) %>%
    summarise(
      flow_vol = sum(vol, na.rm = TRUE),
      flow_fob = sum(fob, na.rm = TRUE),
      flow_rows = n(),
      .groups = "drop"
    )

  key_compare <- full_join(
    result_key,
    flow_key,
    by = c("commodity", "exporter_id", "port_export_id")
  ) %>%
    mutate(
      across(c(result_vol, result_fob, result_rows, flow_vol, flow_fob, flow_rows), ~coalesce(.x, 0)),
      vol_diff = result_vol - flow_vol,
      fob_diff = result_fob - flow_fob,
      abs_vol_diff = abs(vol_diff),
      abs_fob_diff = abs(fob_diff),
      fob_diff_pct_of_flow = pct(fob_diff, flow_fob)
    )

  row_zero_fob <- results %>%
    filter(!str_detect(branch, "^DOMESTIC"), fob == 0) %>%
    summarise(
      row_zero_fob_vol = sum(vol, na.rm = TRUE),
      row_zero_fob_rows = n()
    )

  key_summary <- key_compare %>%
    summarise(
      year = year,
      result_vol = sum(result_vol, na.rm = TRUE),
      flow_vol = sum(flow_vol, na.rm = TRUE),
      vol_diff = sum(vol_diff, na.rm = TRUE),
      result_fob = sum(result_fob, na.rm = TRUE),
      flow_fob = sum(flow_fob, na.rm = TRUE),
      fob_diff = sum(fob_diff, na.rm = TRUE),
      dropped_flow_fob = sum(if_else(result_fob == 0 & flow_fob > 0, flow_fob, 0), na.rm = TRUE)
    ) %>%
    bind_cols(known_port_flow_total) %>%
    mutate(
      vol_diff_pct_of_flow = pct(vol_diff, flow_vol),
      fob_diff_pct_of_flow = pct(fob_diff, flow_fob),
      dropped_flow_fob_pct_of_flow = pct(dropped_flow_fob, flow_fob),
      vol_diff_vs_known_ports = result_vol - known_port_flow_vol,
      fob_diff_vs_known_ports = result_fob - known_port_flow_fob,
      vol_diff_pct_vs_known_ports = pct(vol_diff_vs_known_ports, known_port_flow_vol),
      fob_diff_pct_vs_known_ports = pct(fob_diff_vs_known_ports, known_port_flow_fob)
    ) %>%
    bind_cols(row_zero_fob) %>%
    mutate(
      row_zero_fob_vol_pct_of_result = pct(row_zero_fob_vol, result_vol),
      concern = case_when(
        abs(fob_diff_pct_vs_known_ports) <= 0.1 ~ "OK: gap explained by unknown ports",
        dropped_flow_fob_pct_of_flow > 1 ~ "CHECK: material dropped flow FOB",
        abs(fob_diff_pct_of_flow) > 1 ~ "CHECK: material FOB gap",
        row_zero_fob_vol_pct_of_result > 1 ~ "CHECK: material zero-FOB residual",
        TRUE ~ "OK: small or explained differences"
      )
    )

  key_top_diffs <- key_compare %>%
    arrange(desc(abs_fob_diff)) %>%
    select(
      commodity, exporter_id, port_export_id,
      result_vol, flow_vol, vol_diff,
      result_fob, flow_fob, fob_diff, fob_diff_pct_of_flow,
      result_rows, flow_rows
    ) %>%
    slice_head(n = 30)

  zero_fob_results <- results %>%
    filter(!str_detect(branch, "^DOMESTIC"), fob == 0) %>%
    group_by(branch, commodity, exporter, exporter_id, port_trase_id, port_export_id, country, importer) %>%
    summarise(
      vol = sum(vol, na.rm = TRUE),
      rows = n(),
      .groups = "drop"
    ) %>%
    mutate(vol_pct_of_result = pct(vol, sum(results$vol, na.rm = TRUE))) %>%
    arrange(desc(vol)) %>%
    slice_head(n = 30)

  message("Compare by full flow detail key")
  detail_keys <- c(
    "commodity",
    "exporter_id",
    "port_export_id",
    "country",
    "importer",
    "importer_group",
    "hs",
    "certification"
  )

  result_detail <- results %>%
    filter(!str_detect(branch, "^DOMESTIC")) %>%
    mutate(
      importer_group = coalesce(importer_group, "UNKNOWN AFFILIATION"),
      hs = coalesce(as.character(hs), "UNKNOWN"),
      certification = coalesce(certification, "UNKNOWN / NOT CERTIFIED"),
      country = coalesce(country, "UNKNOWN"),
      importer = coalesce(importer, "UNKNOWN")
    ) %>%
    group_by(across(all_of(detail_keys))) %>%
    summarise(
      result_vol = sum(vol, na.rm = TRUE),
      result_fob = sum(fob, na.rm = TRUE),
      result_rows = n(),
      .groups = "drop"
    )

  flow_detail <- flows %>%
    mutate(
      importer_group = coalesce(importer_group, "UNKNOWN AFFILIATION"),
      hs = coalesce(as.character(hs), "UNKNOWN"),
      certification = coalesce(certification, "UNKNOWN / NOT CERTIFIED"),
      country = coalesce(country, "UNKNOWN"),
      importer = coalesce(importer, "UNKNOWN")
    ) %>%
    group_by(across(all_of(detail_keys))) %>%
    summarise(
      flow_vol = sum(vol, na.rm = TRUE),
      flow_fob = sum(fob, na.rm = TRUE),
      flow_rows = n(),
      .groups = "drop"
    )

  detail_compare <- full_join(
    result_detail,
    flow_detail,
    by = detail_keys
  ) %>%
    mutate(
      across(c(result_vol, result_fob, result_rows, flow_vol, flow_fob, flow_rows), ~coalesce(.x, 0)),
      vol_diff = result_vol - flow_vol,
      fob_diff = result_fob - flow_fob,
      abs_vol_diff = abs(vol_diff),
      abs_fob_diff = abs(fob_diff),
      fob_diff_pct_of_flow = pct(fob_diff, flow_fob)
    )

  detail_summary <- detail_compare %>%
    summarise(
      year = year,
      result_vol = sum(result_vol, na.rm = TRUE),
      flow_vol = sum(flow_vol, na.rm = TRUE),
      vol_diff = sum(vol_diff, na.rm = TRUE),
      result_fob = sum(result_fob, na.rm = TRUE),
      flow_fob = sum(flow_fob, na.rm = TRUE),
      fob_diff = sum(fob_diff, na.rm = TRUE),
      unmatched_flow_vol = sum(if_else(result_fob == 0 & flow_fob > 0, flow_vol, 0), na.rm = TRUE),
      unmatched_flow_fob = sum(if_else(result_fob == 0 & flow_fob > 0, flow_fob, 0), na.rm = TRUE),
      unmatched_result_vol = sum(if_else(flow_fob == 0 & result_fob > 0, result_vol, 0), na.rm = TRUE),
      unmatched_result_fob = sum(if_else(flow_fob == 0 & result_fob > 0, result_fob, 0), na.rm = TRUE)
    ) %>%
    mutate(
      vol_diff_pct_of_flow = pct(vol_diff, flow_vol),
      fob_diff_pct_of_flow = pct(fob_diff, flow_fob),
      unmatched_flow_fob_pct_of_flow = pct(unmatched_flow_fob, flow_fob),
      concern = case_when(
        unmatched_flow_fob_pct_of_flow > 1 ~ "CHECK: material unmatched flow detail",
        abs(fob_diff_pct_of_flow) > 1 ~ "CHECK: material detail FOB gap",
        TRUE ~ "OK: detail differences small or explained"
      )
    )

  detail_top_diffs <- detail_compare %>%
    arrange(desc(abs_fob_diff)) %>%
    select(
      commodity, exporter_id, port_export_id, country, importer, importer_group,
      hs, certification,
      result_vol, flow_vol, vol_diff,
      result_fob, flow_fob, fob_diff, fob_diff_pct_of_flow,
      result_rows, flow_rows
    ) %>%
    slice_head(n = 50)

  bina_detail <- detail_compare %>%
    filter(exporter_id == "E-0055") %>%
    arrange(desc(abs_fob_diff)) %>%
    select(
      commodity, port_export_id, country, importer,
      result_vol, flow_vol, vol_diff,
      result_fob, flow_fob, fob_diff, fob_diff_pct_of_flow
    )

  message("Lookup coverage")
  print(lookup_coverage, width = Inf)

  message("Port known/unknown summary")
  print(port_known_summary, width = Inf)

  message("Stitch-key summary")
  print(key_summary, width = Inf)

  message("Full-detail summary")
  print(detail_summary, width = Inf)

  invisible(list(
    lookup_coverage = lookup_coverage,
    port_known_summary = port_known_summary,
    key_summary = key_summary,
    key_top_diffs = key_top_diffs,
    zero_fob_results = zero_fob_results,
    detail_summary = detail_summary,
    detail_top_diffs = detail_top_diffs,
    bina_detail = bina_detail,
    key_compare = key_compare,
    detail_compare = detail_compare,
    flows = flows,
    results = results
  ))
}
out <- check_year_stitch_details(2024)

cat("\nTOP STITCH-KEY DIFFERENCES\n")
print(as_tibble(out$key_top_diffs), n = Inf, width = Inf)

cat("\nZERO-FOB RESULT ROWS\n")
print(as_tibble(out$zero_fob_results), n = Inf, width = Inf)

cat("\nTOP FULL-DETAIL DIFFERENCES\n")
print(as_tibble(out$detail_top_diffs), n = Inf, width = Inf)

cat("\nBINA DETAIL CHECK\n")
print(as_tibble(out$bina_detail), n = Inf, width = Inf)
Attaching package: ‘dplyr’


The following objects are masked from ‘package:stats’:

    filter, lag


The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union


Warning message:
“package ‘tibble’ was built under R version 4.4.3”
Checking 2024

Read results

Read lookups

Read prepared flows

Compare by stitch key

Compare by full flow detail key

Lookup coverage



# A tibble: 1 × 6
  missing_exporter_id_rows missing_exporter_id_vol missing_exporter_id_fob
                     <int>                   <dbl>                   <dbl>
1                        0                       0                       0
  missing_port_id_rows missing_port_id_vol missing_port_id_fob
                 <int>               <dbl>               <dbl>
1                  131            3681584.         3241912191.


Port known/unknown summary



# A tibble: 2 × 6
  port_known  rows       vol          fob vol_share_pct fob_share_pct
  <lgl>      <int>     <dbl>        <dbl>         <dbl>         <dbl>
1 FALSE        131  3681584.  3241912191.          16.3          16.1
2 TRUE       13571 18948570. 16872508949.          83.7          83.9


Stitch-key summary



# A tibble: 1 × 21
   year result_vol  flow_vol  vol_diff   result_fob     flow_fob     fob_diff
  <dbl>      <dbl>     <dbl>     <dbl>        <dbl>        <dbl>        <dbl>
1  2024  18975746. 22630154. -3654408. 16872434362. 20114421141. -3241986779.
  dropped_flow_fob known_port_flow_vol known_port_flow_fob vol_diff_pct_of_flow
             <dbl>               <dbl>               <dbl>                <dbl>
1                0           18948570.        16872508949.                -16.1
  fob_diff_pct_of_flow dropped_flow_fob_pct_of_flow vol_diff_vs_known_ports
                 <dbl>                        <dbl>                   <dbl>
1                -16.1                            0                  27176.
  fob_diff_vs_known_ports vol_diff_pct_vs_known_ports
                    <dbl>                       <dbl>
1                 -74588.                       0.143
  fob_diff_pct_vs_known_ports row_zero_fob_vol row_zero_fob_rows
                        <dbl>            <dbl>             <int>
1                   -0.000442           27250.             11229
  row_zero_fob_vol_pct_of_result concern                           
                           <dbl> <chr>                             
1                          0.144 OK: gap explained by unknown ports


Full-detail summary



# A tibble: 1 × 15
   year result_vol  flow_vol  vol_diff   result_fob     flow_fob     fob_diff
  <dbl>      <dbl>     <dbl>     <dbl>        <dbl>        <dbl>        <dbl>
1  2024  18975746. 22630154. -3654408. 16872434362. 20114421141. -3241986779.
  unmatched_flow_vol unmatched_flow_fob unmatched_result_vol
               <dbl>              <dbl>                <dbl>
1                  0                  0                    0
  unmatched_result_fob vol_diff_pct_of_flow fob_diff_pct_of_flow
                 <dbl>                <dbl>                <dbl>
1                    0                -16.1                -16.1
  unmatched_flow_fob_pct_of_flow concern                       
                           <dbl> <chr>                         
1                              0 CHECK: material detail FOB gap

TOP STITCH-KEY DIFFERENCES
# A tibble: 30 × 12
   commodity exporter_id port_export_id  result_vol    flow_vol vol_diff
   <chr>     <chr>       <chr>                <dbl>       <dbl>    <dbl>
 1 RPO       E-0395      UNKNOWN              0     2211709.    -2.21e+6
 2 CPO       E-0395      UNKNOWN              0     1469875.    -1.47e+6
 3 RPO       E-0242      P-0136              55.7        80.4   -2.46e+1
 4 RPO       E-0482      P-0010            2126.       2133.    -6.88e+0
 5 RPO       E-0279      P-0010          187523.     187530.    -6.91e+0
 6 RPO       E-0489      P-0010             252.        258.    -5.70e+0
 7 RPO       E-0247      P-0027          224710.     224715.    -4.78e+0
 8 RPO       E-0239      P-0010           70856.      70860.    -4.47e+0
 9 RPO       E-0407      P-0027          857559.     857562.    -3.96e+0
10 RPO       E-0159      P-0027         1260756.    1260760.    -3.71e+0
11 RPO       E-0258      P-0010           45803.      45805.    -2.03e+0
12 RPO       E-0482      P-0027          165711.     165713.    -2.17e+0
13 RPO       E-0256      P-0027          709662.     709664.    -1.54e+0
14 CPO       E-0159      P-0027           41047.      41049.    -1.36e+0
15 CPO       E-0491      P-0027           39696.      39697.    -1.20e+0
16 RPO       E-0160      P-0027         1064880.    1064881.    -1.11e+0
17 RPO       E-0184      P-0137             210.        211.    -8.38e-1
18 CPO       E-0491      P-0010           22999.      23000.    -6.93e-1
19 CPO       E-0239      P-0147           43299.      43299.    -6.71e-1
20 RPO       E-0399      P-0118               0.687       1.02  -3.30e-1
21 RPO       E-0491      P-0010            5925.       5925.    -2.51e-1
22 CPO       E-0314      P-0129           22914.      22914.    -2.60e-1
23 RPO       E-0239      P-0048          555928.     555929.    -1.83e-1
24 RPO       E-0202      P-0005         1682819.    1682819.    -9.86e-2
25 CPO       E-0202      P-0005           15971.      15972.    -8.97e-2
26 CPO       E-0521      P-0118               0           0.019 -1.9 e-2
27 RPO       E-0314      P-0027         1091888.    1091888.    -3.45e-3
28 RPO       E-0482      P-0118               0           0.105 -1.05e-1
29 RPO       E-0242      P-0010          769499.     769499.    -1.64e-3
30 RPO       E-0407      P-0147          501381.     501381.    -1.43e-3
    result_fob    flow_fob fob_diff fob_diff_pct_of_flow result_rows flow_rows
         <dbl>       <dbl>    <dbl>                <dbl>       <dbl>     <dbl>
 1          0  1938890702.  -1.94e9             -1   e+2           0       120
 2          0  1303021489.  -1.30e9             -1   e+2           0        11
 3      63522.      91604.  -2.81e4             -3.07e+1        8936         4
 4    2332357.    2339904   -7.55e3             -3.23e-1        4068         9
 5  173254855.  173261237.  -6.38e3             -3.68e-3      125257       502
 6     251037.     256710   -5.67e3             -2.21e+0        2942         2
 7  208772745.  208777182.  -4.44e3             -2.13e-3       60367        58
 8   70297322.   70301755.  -4.43e3             -6.31e-3       69471       676
 9  778885035.  778888629.  -3.59e3             -4.61e-4       29058       173
10 1110731173. 1110734446.  -3.27e3             -2.95e-4      147157       401
11   40454792.   40456588.  -1.80e3             -4.44e-3        9130        12
12  127879955.  127881628.  -1.67e3             -1.31e-3        4965        61
13  633569872.  633571250.  -1.38e3             -2.17e-4       18150       159
14   37850235.   37851490.  -1.25e3             -3.31e-3        4143        11
15   36154852.   36155942.  -1.09e3             -3.01e-3       10576        11
16  911854939.  911855891.  -9.52e2             -1.04e-4       25599       237
17     173307.     174000   -6.93e2             -3.98e-1         148         2
18   22501623.   22502301.  -6.78e2             -3.01e-3        5272         5
19   36460679.   36461244.  -5.65e2             -1.55e-3        6525         6
20        622.        921.  -2.99e2             -3.25e+1          78         3
21    5228206.    5228427.  -2.21e2             -4.23e-3        3936         3
22   19152422.   19152639.  -2.17e2             -1.13e-3        1029         5
23  494746405.  494746567.  -1.62e2             -3.28e-5       58960       207
24 1414822825. 1414822908.  -8.29e1             -5.86e-6       22572       280
25   13831333.   13831411.  -7.77e1             -5.62e-4         374         3
26          0          10   -1   e1             -1   e+2           0         1
27  861578555.  861578558.  -2.72e0             -3.16e-7       45974       416
28          0           2   -2   e0             -1   e+2           0         2
29  698754775.  698754776.  -1.49e0             -2.13e-7      488485       973
30  465472313.  465472315.  -1.33e0             -2.86e-7        7866       102

ZERO-FOB RESULT ROWS
# A tibble: 5 × 11
  branch                   commodity exporter         exporter_id port_trase_id
  <chr>                    <chr>     <chr>            <chr>       <chr>        
1 UNKNOWN                  CPO       NA               NA          NONE         
2 TRACEABILITY PRE-LP 1    RPO       BINA KARYA PRIMA E-0055      ID-PORT-0137 
3 NO TRACEABILITY LP 2     RPO       BINA KARYA PRIMA E-0055      ID-PORT-0137 
4 NO TRACEABILITY PRE-LP 2 RPO       BINA KARYA PRIMA E-0055      ID-PORT-0137 
5 TRACEABILITY LP 1        RPO       BINA KARYA PRIMA E-0055      ID-PORT-0137 
  port_export_id country importer    vol  rows vol_pct_of_result
  <chr>          <chr>   <chr>     <dbl> <int>             <dbl>
1 NA             UNKNOWN UNKNOWN  13239.    65           0.0304 
2 P-0137         UNKNOWN UNKNOWN   5271.   143           0.0121 
3 P-0137         UNKNOWN UNKNOWN   4954.  5938           0.0114 
4 P-0137         UNKNOWN UNKNOWN   2051.  5080           0.00471
5 P-0137         UNKNOWN UNKNOWN   1734.     3           0.00398

TOP FULL-DETAIL DIFFERENCES
# A tibble: 50 × 17
   commodity exporter_id port_export_id country                         
   <chr>     <chr>       <chr>          <chr>                           
 1 CPO       E-0395      UNKNOWN        INDIA                           
 2 RPO       E-0395      UNKNOWN        PAKISTAN                        
 3 RPO       E-0395      UNKNOWN        PAKISTAN                        
 4 RPO       E-0395      UNKNOWN        INDIA                           
 5 RPO       E-0395      UNKNOWN        MYANMAR                         
 6 RPO       E-0395      UNKNOWN        BANGLADESH                      
 7 RPO       E-0395      UNKNOWN        CHINA (MAINLAND)                
 8 CPO       E-0395      UNKNOWN        NETHERLANDS                     
 9 CPO       E-0395      UNKNOWN        ITALY                           
10 CPO       E-0395      UNKNOWN        SPAIN                           
11 RPO       E-0395      UNKNOWN        PAKISTAN                        
12 RPO       E-0395      UNKNOWN        SAUDI ARABIA                    
13 RPO       E-0395      UNKNOWN        TANZANIA                        
14 RPO       E-0395      UNKNOWN        TOGO                            
15 RPO       E-0395      UNKNOWN        DJIBOUTI                        
16 RPO       E-0395      UNKNOWN        NIGERIA                         
17 RPO       E-0395      UNKNOWN        EGYPT                           
18 CPO       E-0395      UNKNOWN        KENYA                           
19 RPO       E-0395      UNKNOWN        SOUTH KOREA                     
20 RPO       E-0395      UNKNOWN        COTE D'IVOIRE                   
21 RPO       E-0395      UNKNOWN        UNITED ARAB EMIRATES            
22 RPO       E-0395      UNKNOWN        EGYPT                           
23 RPO       E-0395      UNKNOWN        MALAYSIA                        
24 RPO       E-0395      UNKNOWN        UNITED STATES                   
25 RPO       E-0395      UNKNOWN        CHINA (MAINLAND)                
26 RPO       E-0395      UNKNOWN        ITALY                           
27 RPO       E-0395      UNKNOWN        SENEGAL                         
28 RPO       E-0395      UNKNOWN        SOUTH AFRICA                    
29 RPO       E-0395      UNKNOWN        SOUTH KOREA                     
30 RPO       E-0395      UNKNOWN        BANGLADESH                      
31 RPO       E-0395      UNKNOWN        GHANA                           
32 RPO       E-0395      UNKNOWN        YEMEN                           
33 RPO       E-0395      UNKNOWN        NETHERLANDS                     
34 RPO       E-0395      UNKNOWN        TURKEY                          
35 RPO       E-0395      UNKNOWN        CONGO DEMOCRATIC REPUBLIC OF THE
36 RPO       E-0395      UNKNOWN        DJIBOUTI                        
37 RPO       E-0395      UNKNOWN        HAITI                           
38 RPO       E-0395      UNKNOWN        ANGOLA                          
39 RPO       E-0395      UNKNOWN        NIGERIA                         
40 RPO       E-0395      UNKNOWN        BRAZIL                          
41 RPO       E-0395      UNKNOWN        NETHERLANDS                     
42 RPO       E-0395      UNKNOWN        BENIN                           
43 RPO       E-0395      UNKNOWN        INDIA                           
44 RPO       E-0395      UNKNOWN        MALAYSIA                        
45 RPO       E-0395      UNKNOWN        GUINEA                          
46 CPO       E-0395      UNKNOWN        MALAYSIA                        
47 RPO       E-0395      UNKNOWN        TOGO                            
48 RPO       E-0395      UNKNOWN        UNITED ARAB EMIRATES            
49 RPO       E-0395      UNKNOWN        UNITED STATES                   
50 RPO       E-0395      UNKNOWN        MAURITANIA                      
   importer importer_group hs       certification           result_vol flow_vol
   <chr>    <chr>          <chr>    <chr>                        <dbl>    <dbl>
 1 UNKNOWN  UNKNOWN        15111000 UNKNOWN / NOT CERTIFIED          0 1245444.
 2 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0  562508.
 3 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0  406318.
 4 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0  309862.
 5 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0  172988.
 6 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0  175494.
 7 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0  118474.
 8 UNKNOWN  UNKNOWN        15111000 UNKNOWN / NOT CERTIFIED          0   73067.
 9 UNKNOWN  UNKNOWN        15111000 UNKNOWN / NOT CERTIFIED          0   68142.
10 UNKNOWN  UNKNOWN        15111000 UNKNOWN / NOT CERTIFIED          0   52212.
11 UNKNOWN  UNKNOWN        15119032 UNKNOWN / NOT CERTIFIED          0   34276.
12 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0   42000 
13 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0   26481.
14 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0   23103.
15 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0   21080.
16 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0   20418.
17 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0   24039.
18 UNKNOWN  UNKNOWN        15111000 UNKNOWN / NOT CERTIFIED          0   25009.
19 UNKNOWN  UNKNOWN        15119031 UNKNOWN / NOT CERTIFIED          0   20568.
20 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0   16293.
21 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0   17347.
22 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0   17755.
23 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0   12631.
24 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0   11579.
25 UNKNOWN  UNKNOWN        15119031 UNKNOWN / NOT CERTIFIED          0   13032.
26 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0    9474.
27 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0    8020.
28 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0    8948.
29 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0    6316.
30 UNKNOWN  UNKNOWN        15119032 UNKNOWN / NOT CERTIFIED          0    6317.
31 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0    5712.
32 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0    6474.
33 UNKNOWN  UNKNOWN        15119031 UNKNOWN / NOT CERTIFIED          0    5832.
34 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0    6242.
35 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0    4976.
36 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0    5595.
37 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0    4692.
38 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0    6045.
39 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0    5263.
40 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0    5842.
41 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0    5263.
42 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0    3759.
43 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0    4527.
44 UNKNOWN  UNKNOWN        15119020 UNKNOWN / NOT CERTIFIED          0    4211.
45 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0    3158.
46 UNKNOWN  UNKNOWN        15111000 UNKNOWN / NOT CERTIFIED          0    3999.
47 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0    4211.
48 UNKNOWN  UNKNOWN        15119031 UNKNOWN / NOT CERTIFIED          0    3684.
49 UNKNOWN  UNKNOWN        15119037 UNKNOWN / NOT CERTIFIED          0    5263.
50 UNKNOWN  UNKNOWN        15119036 UNKNOWN / NOT CERTIFIED          0    3293.
    vol_diff result_fob    flow_fob     fob_diff fob_diff_pct_of_flow
       <dbl>      <dbl>       <dbl>        <dbl>                <dbl>
 1 -1245444.          0 1101389166. -1101389166.                 -100
 2  -562508.          0  487019875.  -487019875.                 -100
 3  -406318.          0  343706768.  -343706768.                 -100
 4  -309862.          0  278200401.  -278200401.                 -100
 5  -172988.          0  155889135.  -155889135.                 -100
 6  -175494.          0  150557201.  -150557201.                 -100
 7  -118474.          0  104889662   -104889662                  -100
 8   -73067.          0   67203040.   -67203040.                 -100
 9   -68142.          0   63199371.   -63199371.                 -100
10   -52212.          0   48367068.   -48367068.                 -100
11   -34276.          0   34629497.   -34629497.                 -100
12   -42000           0   33535701.   -33535701.                 -100
13   -26481.          0   25077937.   -25077937.                 -100
14   -23103.          0   23792597.   -23792597.                 -100
15   -21080.          0   20608058.   -20608058.                 -100
16   -20418.          0   20145495.   -20145495.                 -100
17   -24039.          0   18855407.   -18855407.                 -100
18   -25009.          0   17450533.   -17450533.                 -100
19   -20568.          0   16531620.   -16531620.                 -100
20   -16293.          0   16456441.   -16456441.                 -100
21   -17347.          0   15221596.   -15221596.                 -100
22   -17755.          0   13530898.   -13530898.                 -100
23   -12631.          0   13224826.   -13224826.                 -100
24   -11579.          0   10874000    -10874000                  -100
25   -13032.          0   10620914.   -10620914.                 -100
26    -9474.          0    8232465.    -8232465.                 -100
27    -8020.          0    7846373.    -7846373.                 -100
28    -8948.          0    7763702.    -7763702.                 -100
29    -6316.          0    6369489.    -6369489.                 -100
30    -6317.          0    6092713.    -6092713.                 -100
31    -5712.          0    5884585.    -5884585.                 -100
32    -6474.          0    5672507.    -5672507.                 -100
33    -5832.          0    5502480.    -5502480.                 -100
34    -6242.          0    5319794.    -5319794.                 -100
35    -4976.          0    4979730.    -4979730.                 -100
36    -5595.          0    4649156.    -4649156.                 -100
37    -4692.          0    4532526.    -4532526.                 -100
38    -6045.          0    4498557.    -4498557.                 -100
39    -5263.          0    4325000.    -4325000.                 -100
40    -5842.          0    4223000     -4223000                  -100
41    -5263.          0    4144009.    -4144009.                 -100
42    -3759.          0    4065279.    -4065279.                 -100
43    -4527.          0    3923589.    -3923589.                 -100
44    -4211.          0    3880007.    -3880007.                 -100
45    -3158.          0    3705000     -3705000                  -100
46    -3999.          0    3639298.    -3639298.                 -100
47    -4211.          0    3520000     -3520000                  -100
48    -3684.          0    3045151.    -3045151.                 -100
49    -5263.          0    3038847.    -3038847.                 -100
50    -3293.          0    3038496.    -3038496.                 -100
   result_rows flow_rows
         <dbl>     <dbl>
 1           0         1
 2           0         1
 3           0         1
 4           0         1
 5           0         1
 6           0         1
 7           0         1
 8           0         1
 9           0         1
10           0         1
11           0         1
12           0         1
13           0         1
14           0         1
15           0         1
16           0         1
17           0         1
18           0         1
19           0         1
20           0         1
21           0         1
22           0         1
23           0         1
24           0         1
25           0         1
26           0         1
27           0         1
28           0         1
29           0         1
30           0         1
31           0         1
32           0         1
33           0         1
34           0         1
35           0         1
36           0         1
37           0         1
38           0         1
39           0         1
40           0         1
41           0         1
42           0         1
43           0         1
44           0         1
45           0         1
46           0         1
47           0         1
48           0         1
49           0         1
50           0         1

BINA DETAIL CHECK
# A tibble: 64 × 11
   commodity port_export_id country                       
   <chr>     <chr>          <chr>                         
 1 RPO       P-0136         CHINA (MAINLAND)              
 2 RPO       P-0136         TIMOR-LESTE                   
 3 RPO       P-0137         THAILAND                      
 4 RPO       P-0137         SAMOA                         
 5 RPO       P-0137         ANGOLA                        
 6 RPO       P-0137         ANGOLA                        
 7 RPO       P-0137         BRUNEI                        
 8 RPO       P-0137         BRUNEI                        
 9 RPO       P-0137         BRUNEI                        
10 RPO       P-0137         CAMBODIA                      
11 RPO       P-0137         CHINA (HONG KONG)             
12 RPO       P-0137         COMOROS                       
13 RPO       P-0137         CONGO                         
14 RPO       P-0137         DOMINICA ISLAND               
15 RPO       P-0137         EQUATORIAL GUINEA             
16 RPO       P-0137         GABON                         
17 RPO       P-0137         GAMBIA                        
18 RPO       P-0137         GRENADA                       
19 RPO       P-0137         GRENADA                       
20 RPO       P-0137         KIRIBATI                      
21 RPO       P-0137         KIRIBATI                      
22 RPO       P-0137         KIRIBATI                      
23 RPO       P-0137         KIRIBATI                      
24 RPO       P-0137         MADAGASCAR                    
25 RPO       P-0137         MALDIVES                      
26 RPO       P-0137         MALDIVES                      
27 RPO       P-0137         MARSHALL ISLANDS              
28 RPO       P-0137         MAURITANIA                    
29 RPO       P-0137         MAURITANIA                    
30 RPO       P-0137         MAURITANIA                    
31 RPO       P-0137         MAURITANIA                    
32 RPO       P-0137         MICRONESIA                    
33 RPO       P-0137         MYANMAR                       
34 RPO       P-0137         MYANMAR                       
35 RPO       P-0137         NIGERIA                       
36 RPO       P-0137         NIGERIA                       
37 RPO       P-0137         NIGERIA                       
38 RPO       P-0137         NIGERIA                       
39 RPO       P-0137         NIGERIA                       
40 RPO       P-0137         NIGERIA                       
41 RPO       P-0137         PANAMA                        
42 RPO       P-0137         PAPUA NEW GUINEA              
43 RPO       P-0137         PAPUA NEW GUINEA              
44 RPO       P-0137         PHILIPPINES                   
45 RPO       P-0137         PHILIPPINES                   
46 RPO       P-0137         SAINT LUCIA                   
47 RPO       P-0137         SAMOA                         
48 RPO       P-0137         SAMOA                         
49 RPO       P-0137         SENEGAL                       
50 RPO       P-0137         SENEGAL                       
51 RPO       P-0137         ST. VINCENT AND THE GRENADINES
52 RPO       P-0137         TANZANIA                      
53 RPO       P-0137         TANZANIA                      
54 RPO       P-0137         TANZANIA                      
55 RPO       P-0137         TIMOR-LESTE                   
56 RPO       P-0137         TONGA                         
57 RPO       P-0137         TONGA                         
58 RPO       P-0137         TONGA                         
59 RPO       P-0137         UNKNOWN                       
60 RPO       P-0137         VANUATU                       
61 RPO       P-0137         VANUATU                       
62 RPO       P-0137         VANUATU                       
63 RPO       P-0137         VANUATU                       
64 RPO       P-0137         VANUATU                       
   importer                                     result_vol flow_vol  vol_diff
   <chr>                                             <dbl>    <dbl>     <dbl>
 1 KLK PLANTATIONS AND TRADING PTE LTD              6314.    6314.   0       
 2 UNKNOWN                                            56.2     56.2  7.11e-15
 3 KYONE DOE GM CO LTD                                40.3     40.3 -5.68e-14
 4 BARGAIN WHOLESALE                                  19.1     19.1 -5.33e-14
 5 DAHLAK GENERAL TRADING LLC                        103.     103.  -5.68e-14
 6 ZAKARIA AND GHANIWALA GENERAL TRADING CO LLC       19.7     19.7 -6.39e-14
 7 SYARIKAT PERNIAGAAN MALAR SETIA                   703.     703.   0       
 8 SYARIKAT PERNIAGAAN MUNEERA                       443.     443.  -1.14e-13
 9 UNKNOWN                                           169.     169.  -5.68e-14
10 ABATRUST INTERNATIONAL PTE LTD                     20.7     20.7 -5.33e-14
11 PACIFIC EAST COMPANY PTE LTD                       40.9     40.9 -4.97e-14
12 KNS ASIA HOLDINGS PTE LTD                          21.1     21.1 -5.68e-14
13 STE IMPEXCO SARL                                  104.     104.  -4.26e-14
14 ARCHIPELAGO TRADING LTD                            20.0     20.0 -5.33e-14
15 UNKNOWN                                            21.1     21.1 -5.68e-14
16 B.T.L GENERAL TRADING CO LLC                      162.     162.  -8.53e-14
17 ZAKARIA AND GHANIWALA GENERAL TRADING CO LLC       19.7     19.7 -6.39e-14
18 A&A TRADING CO LTD                                170.     170.  -5.68e-14
19 SHANGRILA TRADING CORPORATION LTD                  38.0     38.0 -5.68e-14
20 MULTI COMMODITY INTERNATIONAL LTD                  36.7     36.7 -5.68e-14
21 PACIFIC EXPORT ENTERPRISE LIMITED (PEEL)           96.2     96.2 -5.68e-14
22 SURE WAVE INTL GROUP (CHINA) CO LTD                57.1     57.1 -4.97e-14
23 UNKNOWN                                            19.2     19.2 -5.68e-14
24 SAA INTERNATIONAL TRADE LTD                        38.0     38.0 -5.68e-14
25 M U STORE                                         184.     184.  -5.68e-14
26 MADIHAA COMPANY                                    33.9     33.9 -5.68e-14
27 SURE WAVE INTL GROUP (CHINA) CO LTD                38.9     38.9 -4.97e-14
28 MULTI COMMODITY INTERNATIONAL LTD                 556.     556.   0       
29 SOCIETE DE COMMERCE AFRO MAGHREBINE (SOCAM)       580.     580.   0       
30 UNKNOWN                                            19.0     19.0 -5.68e-14
31 ZAKARIA AND GHANIWALA GENERAL TRADING CO LLC       19.0     19.0 -5.68e-14
32 PACIFIC EXPORT ENTERPRISE LIMITED (PEEL)           59.9     59.9 -4.97e-14
33 KYONE DOE GM CO LTD                               140.     140.  -5.68e-14
34 UNKNOWN                                            19.9     19.9 -5.68e-14
35 ICC OILS AND FATS FZC                              71.8     71.8 -5.68e-14
36 MULTI COMMODITY INTERNATIONAL LTD                 395.     395.  -5.68e-14
37 OZIKO MIC INVESTMENT                              144.     144.  -5.68e-14
38 PALMTOP VEGEOIL PRODUCTS SDN BHD                   18.0     18.0 -5.33e-14
39 PREMIER TOP TRADING LTD                            19.7     19.7 -6.39e-14
40 ZAKARIA AND GHANIWALA GENERAL TRADING CO LLC      359.     359.  -5.68e-14
41 WS INVESTMENT                                      19.7     19.7 -6.39e-14
42 ADAR CONSTRUCTION LTD                            1773.    1773.   0       
43 UNKNOWN                                            75.3     75.3 -5.68e-14
44 ABATRUST INTERNATIONAL PTE LTD                   4942.    4942.   0       
45 UNKNOWN                                           197.     197.  -8.53e-14
46 FOOD CENTER ST LUCIA LTD                          343.     343.  -5.68e-14
47 NEW ZEALAND PACIFIC TRADING CO LTD                 94.2     94.2 -5.68e-14
48 PACIFIC EXPORT ENTERPRISE LIMITED (PEEL)           18.6     18.6 -5.33e-14
49 BOSSEA INDUSTRIES ET COMMERCE                     576.     576.   0       
50 MULTI COMMODITY INTERNATIONAL LTD                  96.6     96.6 -4.26e-14
51 FOOD CENTER ST VINCENT LTD                         37.9     37.9 -5.68e-14
52 AHA TRADING                                        39.4     39.4 -5.68e-14
53 MR CHRIS NTUMBA                                    62.5     62.5 -4.97e-14
54 UNKNOWN                                            19.0     19.0 -5.68e-14
55 KARA DEJOY LDA                                     55.5     55.5 -4.97e-14
56 MULTI COMMODITY INTERNATIONAL LTD                  17.2     17.2 -5.68e-14
57 SUNBURST INVESTMENT & ENTERPRISE LTD               55.7     55.7 -5.68e-14
58 UNKNOWN                                            18.8     18.8 -5.33e-14
59 UNKNOWN                                         14011.       0    1.40e+ 4
60 MULTI COMMODITY INTERNATIONAL LTD                 186.     186.  -5.68e-14
61 NEW ZEALAND PACIFIC TRADING CO LTD                 19.1     19.1 -5.33e-14
62 PACIFIC EXPORT ENTERPRISE LIMITED (PEEL)          307.     307.  -5.68e-14
63 RANIA INVESTMENTS                                  20.3     20.3 -5.68e-14
64 UNKNOWN                                            19.1     19.1 -4.97e-14
   result_fob flow_fob  fob_diff fob_diff_pct_of_flow
        <dbl>    <dbl>     <dbl>                <dbl>
 1   5581352. 5581352.  9.31e-10             1.67e-14
 2     65287    65287   7.28e-12             1.11e-14
 3     44479.   44479.  7.28e-12             1.64e-14
 4     20733.   20733. -3.64e-12            -1.75e-14
 5    119519   119519   0                    0       
 6     23504    23504   0                    0       
 7    817180.  817180.  0                    0       
 8    526769   526769   0                    0       
 9    190641   190641   0                    0       
10     24862.   24862.  0                    0       
11     45236    45236   0                    0       
12     23064    23064   0                    0       
13    114950   114950   0                    0       
14     22470    22470   0                    0       
15     23064    23064   0                    0       
16    181517   181517   0                    0       
17     21736    21736   0                    0       
18    197530   197530   0                    0       
19     41846    41846   0                    0       
20     41182.   41182.  0                    0       
21    110990   110990   0                    0       
22     66372    66372   0                    0       
23     21793    21793   0                    0       
24     45758    45758   0                    0       
25    203965.  203965.  0                    0       
26     37548    37548   0                    0       
27     42916    42916   0                    0       
28    667212.  667212.  0                    0       
29    722500   722500   0                    0       
30     22712    22712   0                    0       
31     22712    22712   0                    0       
32     66422    66422   0                    0       
33    159539.  159539.  0                    0       
34     22375    22375   0                    0       
35     99224    99224   0                    0       
36    488852   488852   0                    0       
37    168112   168112   0                    0       
38     23226    23226   0                    0       
39     22152    22152   0                    0       
40    465626   465626   0                    0       
41     22464    22464   0                    0       
42   1999728. 1999728.  0                    0       
43     87224.   87224.  0                    0       
44   5482583. 5482583.  0                    0       
45    209844.  209844.  0                    0       
46    395418.  395418.  0                    0       
47    115915   115915   0                    0       
48     22160.   22160.  0                    0       
49    719850   719850   0                    0       
50    110500   110500   0                    0       
51     42100    42100   0                    0       
52     50842    50842   0                    0       
53     80190    80190   0                    0       
54     21877    21877   0                    0       
55     64917    64917   0                    0       
56     19599    19599   0                    0       
57     62384.   62384.  0                    0       
58     21398    21398   0                    0       
59         0        0   0                   NA       
60    215118   215118   0                    0       
61     21359.   21359.  0                    0       
62    369727.  369727.  0                    0       
63     22845    22845   0                    0       
64     21372    21372   0                    0    
out$key_compare %>%
  filter(port_export_id == "UNKNOWN", flow_fob > 0) %>%
  arrange(desc(flow_fob)) %>%
  print(n = Inf, width = Inf)
# A tibble: 10 × 14
   commodity exporter_id port_export_id result_vol result_fob result_rows
   <chr>     <chr>       <chr>               <dbl>      <dbl>       <dbl>
 1 RPO       E-0395      UNKNOWN                0          0            0
 2 CPO       E-0395      UNKNOWN                0          0            0
 3 RPO       E-0370      UNKNOWN           404847. 235637929.      988288
 4 CPO       E-0211      UNKNOWN           131446.  84374135          320
 5 RPO       E-0365      UNKNOWN            42056.  24911084.        7222
 6 CPO       E-0061      UNKNOWN            32704.  17697333.          21
 7 CPO       E-0112      UNKNOWN             9351.  13037728.       26472
 8 CPO       E-0376      UNKNOWN            22151.  12214893.         180
 9 RPO       E-0242      UNKNOWN            15783.   8099571.        6512
10 RPO       E-0340      UNKNOWN             2804.   2018437.       12006
   flow_vol   flow_fob flow_rows vol_diff fob_diff abs_vol_diff abs_fob_diff
      <dbl>      <dbl>     <dbl>    <dbl>    <dbl>        <dbl>        <dbl>
 1 1132705. 673362051.       117 -1.13e+6 -6.73e+8      1.13e+6      6.73e+8
 2 1150997. 411078124.         9 -1.15e+6 -4.11e+8      1.15e+6      4.11e+8
 3  404847. 235637929.       301  0        2.98e-8      0            2.98e-8
 4  131446.  84374135         26  0        1.49e-8      0            1.49e-8
 5   42056.  24911084.        45 -4.78e-5 -2.83e-2      4.78e-5      2.83e-2
 6   32704.  17697333.         6 -1.10e-5 -5.95e-3      1.10e-5      5.95e-3
 7    9351.  13037728.         3  0        1.86e-9      0            1.86e-9
 8   22151.  12214893.         5  0        0            0            0      
 9   15789.   8102945.         2 -6.58e+0 -3.37e+3      6.58e+0      3.37e+3
10    2806.   2019875.        34 -2.00e+0 -1.44e+3      2.00e+0      1.44e+3
   fob_diff_pct_of_flow
                  <dbl>
 1            -1   e+ 2
 2            -1   e+ 2
 3             1.26e-14
 4             1.77e-14
 5            -1.14e- 7
 6            -3.36e- 8
 7             1.43e-14
 8             0       
 9            -4.16e- 2
10            -7.12e- 2