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 筆。