분포 시각화
소수의 고액 주문이 평균을 대부분 고객의 구매액보다 높게 만들 수 있습니다. 구매액을 백분위수별로 그려 중앙값, 분포 범위, 가장 큰 주문을 확인하세요.
백분위수 곡선은 구매 금액이 가속화되는 지점과 롱테일 확장 범위를 보여줍니다.
무엇을 구축할 것인가
개별 구매 금액을 기록하고, 모든 백분위수에서 값을 쿼리하고, 결과를 차트로 표시합니다. 평균과 달리 이 곡선은 다음과 같은 질문에 답합니다.
- 일반 고객은 얼마를 지출합니까? P50(중앙값) 근처를 살펴보세요.
- 고가치 고객은 어디에서 시작되나요? P75, P90, P95를 비교해 보세요.
- 긴 꼬리는 얼마나 극단적입니까? P99를 중앙값과 비교합니다.
백분위수는 수익 지분이 아닌 기준점입니다. P90이 $148인 경우 구매의 90%가 $148 이하이고 10%가 그 이상입니다.
전제 조건
- Telemetry에 대한 유효한 API 키
- JavaScript 및 Node.js에 대한 기본 이해
- 전자상거래 플랫폼 또는 고객 구매를 추적하는 시스템
1. Telemetry SDK를 설치합니다.
먼저 프로젝트에 Telemetry SDK를 설치해야 합니다. 아직 실행하지 않았다면 다음 명령을 실행하세요.
npm install telemetry-sh
2. Telemetry 초기화
SDK를 설치한 후 프로젝트에서 Telemetry를 가져와 초기화합니다. YOUR_API_KEY를 실제 Telemetry API 키로 교체하세요.
import telemetry from "telemetry-sh";
telemetry.init("YOUR_API_KEY");
3. 구매금액 로그
고객의 구매 금액 분포를 시각화하려면 구매가 이루어질 때마다 금액을 기록해야 합니다. 다음은 이 데이터를 기록하는 함수의 예입니다.
const logPurchaseAmount = (customerId, purchaseAmount) => {
telemetry.log("customer_purchases", {
customer_id: customerId, // The ID of the customer
purchase_amount: purchaseAmount, // The purchase amount in dollars
currency: "USD",
status: "completed"
});
};
// Example usage
logPurchaseAmount("customer_123", 49.99); // Log a purchase amount for a customer
logPurchaseAmount("customer_456", 120.50); // Log another purchase amount for a different customer
4. 악기 구매 완료
거래가 완료될 때마다 구매 금액이 자동으로 기록되도록 시스템을 설정해야 합니다. 이는 결제 또는 결제 처리 시스템에 로깅 기능을 통합하여 수행할 수 있습니다. 다음은 간단한 예입니다.
const processPurchase = (customerId, amount) => {
// Additional logic for processing the purchase
// Log the purchase amount
logPurchaseAmount(customerId, amount);
};
// Example transactions
processPurchase("customer_123", 75.00); // Log a purchase of $75
processPurchase("customer_789", 300.00); // Log a purchase of $300
5. 분포 쿼리
충분한 데이터를 기록한 후에는 Telemetry의 UI를 사용하여 백분위수에 따른 구매 금액 분포를 시각화할 수 있습니다.
- 백분위수 쿼리 만들기:
-
Telemetry UI에서 쿼리 섹션으로 이동합니다.
-
백분위수 데이터를 생성하려면 다음 SQL와 유사한 쿼리를 사용하십시오.
WITH purchases AS ( SELECT purchase_amount FROM customer_purchases WHERE timestamp_utc >= now() - INTERVAL '90 days' AND currency = 'USD' AND status = 'completed' ) SELECT 50 AS percentile, approx_percentile_cont(purchase_amount, 0.50) AS purchase_amount FROM purchases UNION ALL SELECT 75, approx_percentile_cont(purchase_amount, 0.75) FROM purchases UNION ALL SELECT 90, approx_percentile_cont(purchase_amount, 0.90) FROM purchases UNION ALL SELECT 95, approx_percentile_cont(purchase_amount, 0.95) FROM purchases UNION ALL SELECT 99, approx_percentile_cont(purchase_amount, 0.99) FROM purchases ORDER BY percentile; -
이 쿼리는 대부분의 팀이 사용하는 백분위수에서 간결한 곡선을 생성합니다. 더 부드러운 곡선이 결정을 실질적으로 변경하는 경우 더 많은 고정 백분위수 행을 추가합니다.
-
- 데이터 시각화:
- UI에서 X축에
percentile가 있고 Y축에purchase_amount가 있는 꺾은선형 차트를 만듭니다. - 이를 통해 다양한 고객 백분위수에 따라 구매 금액이 어떻게 다른지 보여주는 분포 곡선이 제공되어 고객 기반 내 지출 패턴을 식별하는 데 도움이 됩니다.
- UI에서 X축에
곡선 해석
일반적인 구매를 이해하려면 P50부터 시작한 다음 P90 및 P99와 비교해 보세요. 오른쪽 가장자리 근처의 급격한 상승은 지출이 작은 부분을 나타냅니다. 곡선이 더 평평할수록 지출이 더 균등하게 분배된다는 의미입니다. 결과에 따라 조치를 취하기 전에 환불을 필터링하고 거래를 테스트하고, 통화 단위를 일관되게 유지하고, 세그먼트 전체에서 동일한 기간을 비교하세요.