|
1 | | -## Q1 2026 Objectives |
2 | | - |
3 | | -1. **Implement and switch to the new revenue model (eng leads: <TeamMember name="Patricio Tarantino" />, <TeamMember name="Marce Coll" />, revops lead: <TeamMember name="Mine Kansu" />)** |
4 | | - - New model implemented, understood and trusted across the team, and easy to work with |
5 | | - - Differences vs old model expected and explained |
6 | | - - All internal dashboards and investor reports re-implemented based on the new model |
7 | | - |
8 | | -2. **Make billing the source of truth (leads: <TeamMember name="Pawel Cebula" />, <TeamMember name="Marce Coll" />)** |
9 | | - - Write an RFC on this and alternative directions and decide |
10 | | - - Implement the chosen direction |
11 | | - |
12 | | -3. **Ship all expected pricing launches and changes (lead:<TeamMember name="Pawel Cebula" />)** |
13 | | - - Expected |
14 | | - - Workflows (push, sms) |
15 | | - - Logs |
16 | | - - Data warehouse (storage) |
17 | | - - Array |
| 1 | +## Q2 2026 Objectives |
| 2 | + |
| 3 | +1. **Complete the transition to the new revenue model (eng lead: <TeamMember name="Marce Coll" />, revops lead: <TeamMember name="Mine Kansu" />)** |
| 4 | + - Initial implementation |
| 5 | + - Discrepancy hunting and fixing - all understood and fixed or explicitly accepted |
| 6 | + - All internal dashboards re-implemented on the new model |
| 7 | + - Investor reporting migrated |
| 8 | + - Model understood and trusted across the team |
| 9 | + - Finance signs off on model documentation |
| 10 | + - Zero revops escalations for routine ARR/MRR questions for 4 weeks after launch |
| 11 | + - Bonus: self-serve (finance can pull monthly data they need to close the books without billing/revops in the loop) |
| 12 | + - Stretch goal: revenue model data flowing into Campfire |
| 13 | + |
| 14 | +2. **Migrate all credits to an in-house ledger (lead: <TeamMember name="Pawel Cebula" />)** |
| 15 | + - Implement a double-entry credit ledger |
| 16 | + - Deploy and run the shadow ledger |
| 17 | + - Fix unexpected discrepancies |
| 18 | + - Migrate from customer balance to the ledger |
| 19 | + |
| 20 | +3. **Ship all expected pricing launches and changes (lead: <TeamMember name="Pawel Cebula" />)** |
| 21 | + - **PostHog Code** |
| 22 | + - Seat-based subscriptions (free and paid) |
| 23 | + - Seat-based subscriptions (free and multiple paid) |
| 24 | + - Overages and background agents |
| 25 | + - **Storage and compute** |
| 26 | + - Data warehouse |
18 | 27 | - Endpoints |
19 | | - - Blockers |
20 | | - - Implement solution to the limit of max 20 subscription items |
21 | | - - Enable support for non-incremental usage metrics (e.g. storage for data warehouse, endpoints) |
22 | | - |
23 | | -4. **Integrate billing and revenue data with Campfire (lead: <TeamMember name="Patricio Tarantino" />)** |
24 | | - - Decide on the architecture |
25 | | - - Implement API connections |
26 | | - - Push data needed for accounting (Stripe objects) |
27 | | - - Push data from revenue model |
28 | | - |
29 | | -5. **Improve quota limiting stability and accuracy (lead: <TeamMember name="Marce Coll" />)** |
30 | | - - Deploy money domain limiting strategy |
31 | | - - Align usage and limit calculations in `/billing` API response with money domain limit strategy |
32 | | - |
33 | | -6. **Reduce tech debt and improve developer experience (lead: <TeamMember name="Marce Coll" />)** |
| 28 | + - **Workflows** |
| 29 | + - Channels: Push, SMS |
| 30 | + - Per-workflow limit exclusion |
| 31 | + - **Batch exports** |
| 32 | + - Higher frequency exports |
| 33 | + - **Logs** |
| 34 | + - 30 and 90 day retention |
| 35 | + |
| 36 | +4. **Reduce tech debt and improve developer experience (lead: <TeamMember name="Marce Coll" />)** |
| 37 | + - Improve async task observability and reliability |
| 38 | + - Upgrade to PostgreSQL 17/18 |
34 | 39 | - Switch from Nginx to Granian |
35 | | - - Improve observability and tracing |
36 | | - - Migrate PostgreSQL |
37 | | - - Upgrade Stripe API version |
38 | | - |
39 | | -7. **Roll out the custom PostHog Org object in Salesforce and update all integrations and lead triggers for smooth transition (lead: <TeamMember name="Mine Kansu" />)** |
40 | 40 |
|
41 | | -8. **Launch an engineering-led outbound motion for high signal leads (lead: <TeamMember name="Abhischek Thottakara" />)** |
42 | | - - Source and curate datasets of Entities (Company) and Contacts (Person) (i.e the leads) |
43 | | - - Automate qualification of leads based on signals |
44 | | - - Automate sequencing and outreach for high signal leads |
45 | | - - Improve how we identify and prioritize self-serve orgs & persona's using intent based signals (high potential accounts and high response rate persona) |
| 41 | +5. **Complete the Salesforce org object rollout (lead: <TeamMember name="Abhischek Thottakara" />)** |
| 42 | + - Deploy deduplication workflow and scripts to production |
| 43 | + - Complete historical migration to custom org object |
| 44 | + - Migrate all integrations and lead triggers to new object |
| 45 | + - Confirm Vitally and Salesforce sync works under the new setup |
| 46 | + - Document all scripts and workflows in PostHog-owned GitHub repo |
| 47 | + |
| 48 | +6. **Build customer health score v1 in Vitally (lead: <TeamMember name="Mine Kansu" />)** |
| 49 | + - Define "active user" per product |
| 50 | + - Define org-level "active customer" rollup logic |
| 51 | + - Validate definitions against known accounts (healthy, churned, at-risk) |
| 52 | + - Implement health scores in Vitally |
| 53 | + |
| 54 | +7. **Implement fully automated outbound pipelines (lead: <TeamMember name="Abhischek Thottakara" />)** |
| 55 | + - Source and score additional leads (LinkedIn followers, Appfigures.com targets, Stripe Propensity Leads) |
| 56 | + - Generate outbound sequence content using LLM in Clay |
| 57 | + - Sequence highest scoring targets automatically using Lemlist |
0 commit comments