The subscription platform is being reused for a new project. Until February 20, 2026, the page was generating traffic under Project LEGACY. From February 21, 2026, the page has been transferred to another team and operates as Project NEW.
Feature of the platform: subscribers acquired during the first project continue to generate revenue (recurring charges, content purchases, donations) for another 3–6 months after the transfer. Therefore, when distributing revenue, it is critically important to consider the date of the subscriber's first subscription, not the transaction date — otherwise, the effectiveness of the new project will be distorted.
Main principle
The subscriber's project is determined once — by the date of the first subscription:
- until 20.02.2026 inclusive → LEGACY
- from 21.02.2026 → NEW
After assignment, the project does not change. All transactions of the subscriber always relate to their project.
What to count
Only NET revenue by types: subscriptions, recurring charges (rebills), content purchases (PPV), donations (tips). Refunds/chargebacks — in a separate monthly report, without recalculating previous reports.
Data source
Parsing the statistics page of the subscription platform (web, Statements page). The parser retrieves transactions and the date of the first subscription for each subscriber. Launch — on a Windows server with a stable session.
Database structure
Table fans: fan_id, username, join_date, project (LEGACY/NEW), first_seen_at.
Table transactions: tx_datetime, tx_date, fan_id/username, project, type (subscription/rebill/ppv/tip/refund), net_amount.
Requirements: no duplicates, re-launch does not change history, only new transactions are added.
Reports in Telegram (launch every hour)
Two separate channels: reports_channel and logs_channel.
Reports for each project separately:
- Daily: subscriptions / rebills / PPV / tips / total / number of transactions
- Weekly: calendar week (Mon–Sun) showing the date range
- Monthly: breakdown by types + total
- Lifetime: overall totals with breakdown
- Refunds: separate monthly report
Logs: confirmation of launch, number of new transactions, errors, alerts (failed to retrieve net_amount, join_date, layout changed).
Edge cases
If join_date is not defined → project = UNKNOWN, transactions are not included in reports, the system retries on the next launch.
Security
All credentials are stored only on the server. Only aggregates are transmitted in Telegram.
Acceptance criteria
- All subscribers until 20.02.2026 → LEGACY forever
- All subscribers from 21.02.2026 → NEW forever
- Transactions are tied to the subscriber's project, not by transaction date
- NET is used, not gross
- Weekly = Mon–Sun with date range
- No duplicate transactions
- Refunds separately once a month
- Logs and alerts are functioning