#!/usr/bin/env bash
# Lead source ROI
# Revenue by lead source next to lead count, so you can see which sources produce money and which only produce volume. The number to take into a marketing spend review.
#
# Category : Revenue
# Safety   : read only
# Uses     : reports run, lead-sources list
# Returns  : Revenue, lead count, and revenue per lead for every source.
#
# Requires the SendSquared CLI and jq:
#   curl -fsSL https://cli.sendsquared.com/install.sh | bash
#   sendsquared auth login
#
# Free to use and adapt. https://sendsquared.com/cli/scripts/#lead-source-roi

# Which lead sources actually pay. total_value is in whole cents.
set -euo pipefail
FROM=${1:-$(date -u +%Y-01-01)}
TO=${2:-$(date -u +%F)}

sendsquared reports run lead_revenue_source --from "$FROM" --to "$TO" \
| jq -r '
  .data[]
  | [ (.source_label // "unattributed"),
      (.total_count // 0),
      (.won_count // 0),
      (((.total_value // 0) | tonumber) / 100 | floor) ]
  | @tsv
' \
| sort -t$'\t' -k4 -rn \
| awk -F'\t' 'BEGIN{printf "  %-34s %7s %6s %12s %12s\n","SOURCE","LEADS","WON","VALUE","PER LEAD"}
    { per = ($2+0) > 0 ? $4/$2 : 0
      printf "  %-34s %7s %6s %12s %12s\n",$1,$2,$3,"$"$4,sprintf("$%.0f",per) }'
