MinuteFile Portfolio Metrics handoff
MinuteFile Portfolio Metrics handoff
MinuteFile sells one perpetual licence for US$39 through the active live Stripe
Payment Link used on the product page. The price is one_time, so active paying
subscriptions are not applicable. MinuteFile also has no account service,
backend, or product user database, so total product subscribers/users is not an
available product-defined population and is not applicable. These terminal
decisions are recorded in metric-applicability.json; neither is represented
as zero.
The only applicable Portfolio Metrics business metric is Stripe net revenue.
The project-owned collector uses the already-authorized local Stripe CLI in
live, read-only mode. It explicitly selects the existing default CLI project,
verifies that /v1/account is the intended MotionObj account, then verifies the
exact Payment Link and one-time USD price before computing one completed
Asia/Singapore source-local day:
- gross revenue: sum of
amount_totalfor completed, paid Checkout Sessions created through the exact MinuteFile Payment Link; - refund amount: sum of successful Refunds created in the same window whose payment intent resolves to a Checkout Session for that Payment Link;
- net revenue: gross minus refunds, in USD cents. Stripe fees and taxes are not deducted.
Raw Stripe responses remain only in process memory. The collector writes only canonical aggregate JSON and a canonical Portfolio Metrics KPI envelope. No customer rows, emails, names, payment objects, customer/payment identifiers, credentials, URLs, or raw provider payloads are written or printed.
Run an exact completed source day:
bun run analytics/portfolio-metrics/src/minutefile-stripe.ts collect \
--date YYYY-MM-DD --recorded-at ISO_INSTANT \
--repo /Users/hboon/p/motionobj.com/motionobj.com
The coordinator supplies one stable --recorded-at instant for the run so an
exact retry has identical canonical bytes. Outputs are content addressed beneath analytics/portfolio-metrics/aggregates/
and analytics/portfolio-metrics/outbox/stripe/. Exact reruns are byte-identical
and report idempotent: true; conflicting bytes fail closed. The aggregate
contains only the three currency-minor totals and bounded request metadata. The
outbox envelope follows Portfolio Metrics KPI contract 1.0.0 and contribution
contract 2.0.0. Central must add the MinuteFile Stripe binding to its KPI
registry before staging; central never invokes this collector or Stripe.
Recommended scheduling boundary: the MotionObj Loop Coordinator runs the exact command once daily at 17:45 Asia/Singapore for the previous Singapore calendar day, then hands the contribution path and SHA-256 to the approved Portfolio Metrics inbox manifest. A failed provider request or validation writes nothing, returns nonzero, and remains unavailable/not-collected rather than zero. This repository creates no loop, cron job, reminder, deployment, or retry.