spending-analysis

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Requirements

前置要求

Before using this skill, ensure you have:
  • curl: For API requests
  • jq:
    brew install jq
    (for parsing JSON)
  • sops:
    brew install sops
    (for decrypting secrets)
Must run from the
pollinations
repo root with access to
enter.pollinations.ai/
.

使用此技能前,请确保你已具备:
  • curl:用于API请求
  • jq
    brew install jq
    (用于解析JSON)
  • sops
    brew install sops
    (用于解密密钥)
必须在
pollinations
仓库根目录运行,且拥有
enter.pollinations.ai/
的访问权限。

Data Sources

数据源

Polar API

Polar API

  • Orders: Payment history for pack purchases
  • Products: Tier subscriptions and pollen packs
  • Customers: User payment info linked by
    external_id
  • 订单:套餐购买的支付历史
  • 产品:层级订阅和花粉套餐
  • 客户:通过
    external_id
    关联的用户支付信息

Tinybird

Tinybird

  • generation_event: Usage data with
    user_tier
    ,
    total_price
    ,
    user_id
  • Tracks all API requests with pricing and tier info

  • generation_event:包含
    user_tier
    total_price
    user_id
    的使用数据
  • 追踪所有带定价和层级信息的API请求

Quick Commands

快速命令

Get Polar Access Token

获取Polar访问令牌

bash
undefined
bash
undefined

From sops-encrypted secrets

从sops加密的密钥中获取

export POLAR_ACCESS_TOKEN=$(sops -d enter.pollinations.ai/secrets/prod.vars.json | jq -r '.POLAR_ACCESS_TOKEN')
export POLAR_ACCESS_TOKEN=$(sops -d enter.pollinations.ai/secrets/prod.vars.json | jq -r '.POLAR_ACCESS_TOKEN')

Or from .testingtokens (if available)

或从.testingtokens获取(若可用)

export POLAR_ACCESS_TOKEN=$(grep POLAR_ACCESS_TOKEN enter.pollinations.ai/.testingtokens | cut -d= -f2)
undefined
export POLAR_ACCESS_TOKEN=$(grep POLAR_ACCESS_TOKEN enter.pollinations.ai/.testingtokens | cut -d= -f2)
undefined

Get Tinybird Token

获取Tinybird令牌

bash
export TINYBIRD_TOKEN=$(sops -d enter.pollinations.ai/secrets/prod.vars.json | jq -r '.TINYBIRD_ACCESS_TOKEN')

bash
export TINYBIRD_TOKEN=$(sops -d enter.pollinations.ai/secrets/prod.vars.json | jq -r '.TINYBIRD_ACCESS_TOKEN')

Polar API Queries

Polar API 查询

List Products (Tiers & Packs)

列出产品(层级与套餐)

bash
curl -sL "https://api.polar.sh/v1/products" \
  -H "Authorization: Bearer $POLAR_ACCESS_TOKEN" | jq '[.items[] | {name, id, recurring: .is_recurring}]'
bash
curl -sL "https://api.polar.sh/v1/products" \
  -H "Authorization: Bearer $POLAR_ACCESS_TOKEN" | jq '[.items[] | {name, id, recurring: .is_recurring}]'

Get Pack Purchases (Last 100)

获取套餐购买记录(最近100条)

bash
undefined
bash
undefined

5 pollen pack product ID

5花粉套餐产品ID

PRODUCT_ID="bcdde7f7-129e-4ec1-abc3-d4e0c852fa68"
curl -sL "https://api.polar.sh/v1/orders?limit=100&product_id=$PRODUCT_ID"
-H "Authorization: Bearer $POLAR_ACCESS_TOKEN" |
jq '[.items[] | {date: .created_at[0:10], amount: (.total_amount / 100), customer: .customer.email}]'
undefined
PRODUCT_ID="bcdde7f7-129e-4ec1-abc3-d4e0c852fa68"
curl -sL "https://api.polar.sh/v1/orders?limit=100&product_id=$PRODUCT_ID"
-H "Authorization: Bearer $POLAR_ACCESS_TOKEN" |
jq '[.items[] | {date: .created_at[0:10], amount: (.total_amount / 100), customer: .customer.email}]'
undefined

All Pack Product IDs

所有套餐产品ID

PackProduct ID
5 pollen + 5 FREE
bcdde7f7-129e-4ec1-abc3-d4e0c852fa68
10 pollen + 10 FREE
cebeb680-4ac3-4f73-9ce7-6bc06a5f21e1
20 pollen + 20 FREE
8164c20f-8429-437e-b1a2-616ae89f114e
50 pollen + 50 FREE
2cb5ca34-d505-450d-a1d4-94e3bb0c1f68
10 pollen (pack)
ca4cc8bc-694d-4710-8451-1dcb4979fbc7
20 pollen (pack)
679a9fd3-be30-4552-8b2e-f825103c42b7
50 pollen (pack)
bf48ded2-19ca-4d28-bca9-a91fff2dd0a0
套餐产品ID
5花粉 + 5免费
bcdde7f7-129e-4ec1-abc3-d4e0c852fa68
10花粉 + 10免费
cebeb680-4ac3-4f73-9ce7-6bc06a5f21e1
20花粉 + 20免费
8164c20f-8429-437e-b1a2-616ae89f114e
50花粉 + 50免费
2cb5ca34-d505-450d-a1d4-94e3bb0c1f68
10花粉(套餐)
ca4cc8bc-694d-4710-8451-1dcb4979fbc7
20花粉(套餐)
679a9fd3-be30-4552-8b2e-f825103c42b7
50花粉(套餐)
bf48ded2-19ca-4d28-bca9-a91fff2dd0a0

Weekly Revenue from All Packs

所有套餐的每周收入

bash
.claude/skills/spending-analysis/scripts/weekly-pack-revenue.sh

bash
.claude/skills/spending-analysis/scripts/weekly-pack-revenue.sh

Tinybird Queries

Tinybird 查询

User Count by Tier

按层级统计用户数量

bash
curl -sL "https://api.europe-west2.gcp.tinybird.co/v0/sql" \
  -H "Authorization: Bearer $TINYBIRD_TOKEN" \
  --data-urlencode "q=SELECT argMax(user_tier, start_time) as tier, count() as users FROM generation_event WHERE start_time >= now() - INTERVAL 60 DAY AND environment = 'production' AND user_id != 'undefined' GROUP BY user_id FORMAT JSON" | \
  jq '.data | group_by(.tier) | map({tier: .[0].tier, users: length})'
bash
curl -sL "https://api.europe-west2.gcp.tinybird.co/v0/sql" \
  -H "Authorization: Bearer $TINYBIRD_TOKEN" \
  --data-urlencode "q=SELECT argMax(user_tier, start_time) as tier, count() as users FROM generation_event WHERE start_time >= now() - INTERVAL 60 DAY AND environment = 'production' AND user_id != 'undefined' GROUP BY user_id FORMAT JSON" | \
  jq '.data | group_by(.tier) | map({tier: .[0].tier, users: length})'

Weekly Spending by Tier

按层级统计每周消费

bash
curl -sL "https://api.europe-west2.gcp.tinybird.co/v0/sql" \
  -H "Authorization: Bearer $TINYBIRD_TOKEN" \
  --data-urlencode "q=SELECT toStartOfWeek(start_time) as week, user_tier, sum(total_price) as total_spend, count() as requests FROM generation_event WHERE start_time >= now() - INTERVAL 60 DAY AND environment = 'production' GROUP BY week, user_tier ORDER BY week DESC FORMAT JSON" | jq '.data'

bash
curl -sL "https://api.europe-west2.gcp.tinybird.co/v0/sql" \
  -H "Authorization: Bearer $TINYBIRD_TOKEN" \
  --data-urlencode "q=SELECT toStartOfWeek(start_time) as week, user_tier, sum(total_price) as total_spend, count() as requests FROM generation_event WHERE start_time >= now() - INTERVAL 60 DAY AND environment = 'production' GROUP BY week, user_tier ORDER BY week DESC FORMAT JSON" | jq '.data'

Analysis Scripts

分析脚本

Weekly Pack Revenue

每周套餐收入

bash
.claude/skills/spending-analysis/scripts/weekly-pack-revenue.sh
Shows weekly breakdown of actual pack purchases (real revenue, not free tier usage).
bash
.claude/skills/spending-analysis/scripts/weekly-pack-revenue.sh
展示每周实际套餐购买的明细(真实收入,非免费层级使用量)。

Pack Purchases by Tier

按层级统计套餐购买情况

bash
.claude/skills/spending-analysis/scripts/pack-purchases-by-tier.sh
Cross-references Polar pack purchasers with Tinybird tier data to show which tiers buy most pollen proportionally.

bash
.claude/skills/spending-analysis/scripts/pack-purchases-by-tier.sh
将Polar套餐购买者与Tinybird层级数据进行交叉关联,展示哪些层级的用户购买花粉的比例最高。

Key Findings (Jan 2026 Analysis)

关键发现(2026年1月分析)

Pack Purchases by Tier (Weighted by User Count)

按层级统计套餐购买情况(按用户数量加权)

TierRevenuePurchasersTotal Users% Who Buy$/User
nectar$146102343.5%$6.37
flower$564182188.3%$2.59
seed$1,173385756.6%$2.04
spore$1,6571066,7571.6%$0.25
Key Insight: Higher tiers buy MORE pollen proportionally, not less.
层级收入购买者数量总用户数购买占比每用户平均消费
nectar$146102343.5%$6.37
flower$564182188.3%$2.59
seed$1,173385756.6%$2.04
spore$1,6571066,7571.6%$0.25
核心洞察:层级越高的用户,购买花粉的比例越高,而非越低。

Revenue Trend (9 Weeks)

收入趋势(9周)

WeekOrdersRevenue
Jan 13-1951$573
Jan 6-1283$928
Dec 30-Jan 559$928
Dec 23-2921$432
Dec 16-2222$276
Dec 9-1516$141
Dec 2-817$293
Nov 25-Dec 110$293
Nov 18-241$10

订单数收入
1月13日-19日51$573
1月6日-12日83$928
12月30日-1月5日59$928
12月23日-29日21$432
12月16日-22日22$276
12月9日-15日16$141
12月2日-8日17$293
11月25日-12月1日10$293
11月18日-24日1$10

Notes

注意事项

  • Free tier spending in Tinybird includes daily pollen allocation - not real revenue
  • Pack purchases in Polar are actual paid revenue
  • Cross-reference by
    external_id
    (Polar) =
    user_id
    (Tinybird)
  • Polar API returns 307 redirects - use
    curl -sL
    to follow
  • Tinybird中的免费层级消费包含每日花粉配额,并非真实收入
  • Polar中的套餐购买是实际付费收入
  • 通过
    external_id
    (Polar)=
    user_id
    (Tinybird)进行交叉关联
  • Polar API会返回307重定向 - 使用
    curl -sL
    跟随重定向