TW Q1 + APR 2026 季度報告 — 原本 (template) vs 目前 (Salesforce 抓)
資料來源:Salesforce production(gpea-prod, orgId 00D2v000001f7liEAA)
產生時間:2026-05-11
市場:TW(Market__r.Name = 'Taiwan')
顏色:
🟢 Δ ≤ 5%
🟡 Δ 5–20%
🔴 Δ ≥ 20%
— 原本未列此格
Q1 2026 (1/1 – 3/31)
|
Leads |
Call Case |
Eligible |
CPL |
Daisy Chain RG |
Daisy Chain SG |
TTL Giving CVR |
AC Spend |
New RG |
New SG |
CPRG |
| Spend |
原本: $1,350,671 目前: 填 |
| |
原本: $281 目前: 填 |
| | |
原本: $2,493,351 目前: 填 |
| |
原本: $12,529 目前: 填 |
| Paid |
原本: 4,803 目前: 4,771 Δ: -0.7% |
原本: 3,712 目前: 3,691 Δ: -0.6% |
原本: 77.29% 目前: 77.36% Δ: +0.07pp |
目前: 填 |
原本: 46 目前: 38 Δ: -17.4% |
原本: 53 目前: 49 Δ: -7.5% |
原本: 2.06% 目前: 1.82% Δ: -0.24pp |
|
原本: 199 目前: 173 Δ: -13.1% |
原本: 309 目前: 278 Δ: -10.0% |
原本: 58.70% 目前: 填 |
| Other |
原本: 1,139 目前: 1,150 Δ: +1.0% |
原本: 751 目前: 759 Δ: +1.1% |
原本: 65.94% 目前: 66.00% Δ: +0.06pp |
|
原本: — 目前: 8 |
原本: — 目前: 11 |
原本: — 目前: 1.65% |
|
原本: 140 目前: 65 Δ: -53.6% |
原本: 173 目前: 98 Δ: -43.4% |
|
| Total (P+O) |
原本: 5,942 目前: 5,921 Δ: -0.4% |
原本: 4,463 目前: 4,450 Δ: -0.3% |
原本: 75.11% 目前: 75.16% Δ: +0.05pp |
|
原本: 53 目前: 46 Δ: -13.2% |
原本: 65 目前: 60 Δ: -7.7% |
原本: 15.63% 目前: 1.79% 公式不同 ⚠️ |
|
原本: 339 目前: 238 Δ: -29.8% |
原本: 482 目前: 376 Δ: -22.0% |
|
| Offline (額外) |
原本: — 目前: 2,596 |
原本: — 目前: 2,097 |
原本: — 目前: 80.78% |
|
原本: — 目前: 2 |
原本: — 目前: 3 |
原本: — 目前: 0.19% |
|
原本: — 目前: 0 |
原本: — 目前: 0 |
|
APR 2026 (4/1 – 4/30)
|
Leads |
Call Case |
Eligible |
CPL |
Daisy Chain RG |
Daisy Chain SG |
TTL Giving CVR |
AC Spend |
New RG |
New SG |
CPRG |
| Spend |
原本: $446,002 目前: 填 |
| |
原本: $261 目前: 填 |
| | |
原本: $739,836 目前: 填 |
| |
原本: $11,382 目前: 填 |
| Paid |
原本: 1,709 目前: 1,700 Δ: -0.5% |
原本: 1,393 目前: 1,411 Δ: +1.3% |
原本: 81.51% 目前: 83.00% Δ: +1.49pp |
目前: 填 |
原本: 12 目前: 12 Δ: 0% |
原本: 14 目前: 12 Δ: -14.3% |
原本: 1.52% 目前: 1.41% Δ: -0.11pp |
|
原本: 65 目前: 45 Δ: -30.8% |
原本: 104 目前: 84 Δ: -19.2% |
原本: 63.73% 目前: 填 |
| Other |
原本: 870 目前: 950 Δ: +9.2% |
原本: 583 目前: 674 Δ: +15.6% |
原本: 67.01% 目前: 70.95% Δ: +3.94pp |
|
原本: — 目前: 6 |
原本: — 目前: 10 |
原本: — 目前: 1.68% |
|
原本: 37 目前: 47 Δ: +27.0% |
原本: 52 目前: 48 Δ: -7.7% |
|
| Total (P+O) |
原本: 2,579 目前: 2,650 Δ: +2.8% |
原本: 1,976 目前: 2,085 Δ: +5.5% |
原本: 76.62% 目前: 78.68% Δ: +2.06pp |
|
原本: 16 目前: 18 Δ: +12.5% |
原本: 27 目前: 22 Δ: -18.5% |
原本: 15.69% 目前: 1.51% 公式不同 ⚠️ |
|
原本: 102 目前: 92 Δ: -9.8% |
原本: 156 目前: 132 Δ: -15.4% |
|
| Offline (額外) |
原本: — 目前: 596 |
原本: — 目前: 523 |
原本: — 目前: 87.75% |
|
原本: — 目前: 0 |
原本: — 目前: 3 |
原本: — 目前: 0.50% |
|
原本: — 目前: 0 |
原本: — 目前: 0 |
|
⚠️ 重要說明
1. TTL Giving CVR (Total 列) 公式差異:原本數字(Q1 15.63%、APR 15.69%)推估是用 (Daisy Chain RG + Daisy Chain SG + New RG + New SG) / Leads 計算(把 Web Direct New 也算進分子);我目前公式是 (Daisy Chain RG + Daisy Chain SG) / Leads(只算 2-step Daisy Chain),結果是 1.79% / 1.51%。公式不同,Total 列直接比較沒意義。Paid 列兩邊公式一致可比較(Paid Δ -0.24pp 對齊)。
2. New RG / New SG Δ -22~30%(定義差異,非 bug):原本數字推估包含「過去 3+ 年都沒捐過、現在第一次又回來捐款」的 lapsed reactivation donor(Q1 估約 100 筆,APR 估約 10 筆);我目前採嚴格「該 donor 這輩子第一次任何捐款」規則,把這些 lapsed 復捐者排除。如果要對齊原本數字,需要把 New 的定義改成「過去 N 個月沒捐過 + 不在 Daisy Chain bucket」,sweep 結果 9 個月 cutoff 跟原本最接近(Q1 約 340 筆 vs 原本 339、SG 約 486 vs 原本 482)。
每個指標的篩選條件(給 BO 看)
① Leads(連署人數)
定義:在期間內完成連署的人 — 後續所有 funnel 指標的分母。
SELECT UTM_Medium__c, COUNT(Id)
FROM CampaignMember
WHERE Campaign.Market__r.Name = 'Taiwan'
AND Petition_Sign_Up_Date__c >= [期間起]
AND Petition_Sign_Up_Date__c < [期間迄]
AND ContactId != null
GROUP BY UTM_Medium__c
關鍵:用 Petition_Sign_Up_Date__c(連署日期)判定期間,不是 CreatedDate。
不過濾:RecordType / Channel / Testing_Campaign / Not_For_Conversion — 因為連署可能來自多種 campaign hierarchy(Petition、Event signup forms、Website forms)。
② Call Case(連署後產生的撥打案件)
定義:TFR 為連署人建立的 case — 衡量 lead 進到 TFR queue 的覆蓋率。
SELECT ContactId, Campaign__c
FROM Case
WHERE Sub_Category__c = 'Petition Conversion'
AND Market__r.Name = 'Taiwan'
AND Petition_Signup_Date__c >= [期間起]
AND Petition_Signup_Date__c < [期間迄]
Per-lead matching:對每個 lead 檢查 (ContactId, CampaignId) 是否有對應 case,每個 lead 最多算 1(不重複算 TFR 多次撥打)。
不限 Status:New / Closed / Expired 都算(不管有沒有真的撥打)。
不限 Case CreatedDate:用 case 上的「連署日期」判定,TFR 可能在連署後幾週才建單。
③ Eligible(連署轉撥打率)
定義:有多少 lead 被轉成 TFR case。
Eligible(bucket) = Cases(bucket) / Leads(bucket)
④ Daisy Chain RG(連署 → 同流程定捐)
定義:連署人在「連署頁面 → 跳轉捐款頁」流程中完成定期定額捐款的人。
候選池:Q1 TW Website-channel RDs
SELECT Id, Contact__c, CreatedDate
FROM Recurring_Donation__c
WHERE Market__r.Name = 'Taiwan'
AND Campaign__r.Channel__c = 'Website' ← Web Direct only
AND CreatedDate IN [期間]
配對:對每個 RD,找該 contact 的 petition CM,時間視窗:
-14d ≤ CM.CreatedDate − RD.CreatedDate ≤ +2d (不對稱)
Bucket 分桶(max-paid 策略):
- matched petition CM 的 UTM_Medium
- CampaignMember(Contact, RD.Campaign) 的 UTM_Medium
→ 任一是 Paid → Paid,否則用 donation-side CM bucket
為什麼不對稱視窗:SF webhook 同步順序可能反序 — 捐款走 LinePay 即時 callback,連署走 Engaging Networks batch(延遲 5min~4h)。所以 CM 的 CreatedDate 可能比實際連署時間晚 1-2 天,視窗放寬到 +2d 補償。
14 天回看:使用者連署後可能思考 1-2 週才捐款,視窗放寬到 -14d。
⑤ Daisy Chain SG(連署 → 同流程單筆)
定義:連署人在 2-step 流程中完成單筆捐款的人。
候選池:Q1 TW Website-channel SGs (排除退款)
SELECT Id, Contact__c, CreatedDate, UTM_Medium__c
FROM Donation__c
WHERE Market__r.Name = 'Taiwan'
AND Campaign__r.Channel__c = 'Website'
AND Status__c = 'Processed' ← 排除退款記錄
AND Amount__c > 0 ← 排除退款 reversal 沖銷
AND Is_Recurring_Donation__c = false
AND CreatedDate IN [期間]
配對:同 RG(asymmetric -14d/+2d)
Bucket 分桶(max-paid,比 RG 多看一個 SG 自己的 UTM):
- matched petition CM UTM
- CampaignMember(Contact, SG.Campaign) UTM
- SG 自己的 Donation__c.UTM_Medium
退款 filter 為什麼重要:SF 退款會建一個新的 Donation__c 紀錄(金額為負)+ 原本 Donation 的 Status 改為 'Refunded'。這兩種記錄都不是真實 net donation,要排除。
⑥ TTL Giving CVR to Leads(總轉換率)
Paid / Other / Offline 列:
(Daisy Chain RG + Daisy Chain SG) / Leads(bucket)
Total 列(原本公式 ≠ 目前公式):
原本 (推估) = (Daisy Chain RG + Daisy Chain SG + New RG + New SG) / Leads
目前 = (Daisy Chain RG + Daisy Chain SG) / Leads
⑦ New RG(Web Direct 新定捐)
定義:這個 contact 這輩子第一次任何捐款就是 Web Direct RG。
候選池:Q1 TW Website-channel RDs(同 Daisy Chain RG)
條件 1:這筆 RD 不在 Daisy Chain bucket
條件 2:這筆 RD 是該 contact 這輩子第一次捐款
|RD.CreatedDate − contact 最早 Donation 日期| ≤ 5 分鐘
(contact 最早 Donation = MIN of Donation__c
WHERE Status='Processed'
AND Amount > 0)
Bucket 來源:
CampaignMember(Contact, RD.Campaign).UTM_Medium
嚴格規則:contact 之前有任何捐款(包括幾年前的 DRTV、街募、單筆等任何 type),這筆 RD 都不算 New RG。
跟原本數字的差異:原本數字推估把「過去 3+ 年沒捐再回來」的 lapsed reactivation 也算 New(Q1 約 100 筆)。目前嚴格規則排除這些。如果要對齊原本數字,需要加 "lapsed window" 概念(例如過去 9 個月沒捐才算 New)。
⑧ New SG(Web Direct 新單筆)
定義:這個 contact 這輩子第一次任何捐款就是 Web Direct SG。
候選池:Q1 TW Website-channel SGs (排除退款,同 Daisy Chain SG)
條件 1:這筆 SG 不在 Daisy Chain bucket
條件 2:這筆 SG 是該 contact 這輩子第一次捐款
|SG.CreatedDate − contact 最早 Donation 日期| ≤ 5 分鐘
Bucket 來源:
Donation__c.UTM_Medium__c (SG 自己的 UTM)
判斷規則跟 New RG 對稱:都看 contact 這輩子第一筆任何捐款。
如果 contact 第一次捐款是 SG → 算 New SG;是 RG → 算 New RG。一個 contact 一生最多只能算一次 New(type 由第一筆決定)。
UTM 分桶規則(Paid / Other / Offline)
給定 UTM_Medium__c 值,依序判定:
1. null 或空字串 → Other
2. = 'offline' → Offline
3. 含 'wv+engager' → Other (retargeting + 既有受眾)
4. 以下開頭/等於 → Paid:
- LIKE 'socialpaid%' (含 SocialPaid 大小寫變體)
- LIKE 'Pmax%' (含 PMAX, PMAXEN, Pmaxfr*, Pmaxen* 全部)
- LIKE 'Adwords%' (含 Adwords_Brand, Adwords_Ocean)
- = 'ppc'
- = 'cpc'
- = 'paid_social'
5. 其他 → Other (socialorganic, email, linktree 等)
wv+engager 排除規則:FB 廣告變體 socialpaid_en_xxx_rmkt+lal-wv+engager 是「retargeting + 既有 engagers 受眾」,ops 視為 Other 不算 Paid 獲取。
退款 filter(所有 Donation__c 查詢)
WHERE Status__c = 'Processed'
AND Amount__c > 0
SF 退款會建立兩種記錄:
(a) 原始 Donation__c 的 Status 改為 'Refunded'(金額正常)
(b) 一個新的 Donation__c 紀錄,Status='Processed' 但 Amount 為負(會計沖銷)
兩者都不是真實 net donation,全部要排除。Q1 Daisy Chain SG 因此從 87 筆降到 63 筆。