Bifrost — Program Roadmap
Delivery / Program Management — team-level rollup across the team's initiatives.
Portfolio
| Initiative | Target quarter | Health | DRI | Implementors | QA | Timeline |
|---|---|---|---|---|---|---|
| Deduction V2 | 2026-Q3 | on-track | addo.hernando@mekari.com | Hafriz (BE + modpanel FE); Syafrizal M. (chat FE) | Yoddi, Izzul | timeline |
| Meta WhatsApp Pricing — Service-Message Billing | 2026-Q3 | backlog | pm-group.qontak@mekari.com | Madani | Yoddi, Izzul | README |
| Downgrade Webhook | 2026-Q3 | — | addo.hernando@mekari.com | Madani | Yoddi, Izzul | timeline |
| Lite Seats | 2026-Q3 | — | pm-group.qontak@mekari.com | Satya, Syafrizal M. | Yoddi, Izzul | timeline |
| Self-Subs — New Subscription, Renewal & Upgrade | 2026-Q3 | at-risk | addo.hernando@mekari.com | Grehasta, Syafrizal M. | Yoddi, Izzul | timeline |
| Billing Expired Handling | 2026-Q3 | — | addo.hernando@mekari.com | Hafriz, Syafrizal M. | Yoddi, Izzul | timeline |
| Postpaid Usage Scheduler | 2026-Q3 | — | pm-group.qontak@mekari.com | Hafriz, Syafrizal M. | Yoddi, Izzul | timeline |
| Qontak One Team Migration | 2026-Q3 | at-risk | pm-group.qontak@mekari.com | Grehasta, Syafrizal M. | Yoddi, Izzul | timeline |
| Meta x Modpanel Call Usage Comparison | 2026-Q3 | — | addo.hernando@mekari.com | Grehasta | Yoddi, Izzul | timeline |
| Qontak Launchpad Audit Logs | 2026-Q3 | — | vinsensius.widhismara@mekari.com | Satya, Syafrizal M. | Yoddi, Izzul | timeline |
| Quota Management — User Quota Integration | 2026-Q3 | — | addo.hernando@mekari.com | Madani | Yoddi, Izzul | timeline |
| Downgrade User | 2026-Q3 | paused | addo.hernando@mekari.com | Satya, Syafrizal M. | Yoddi, Izzul | timeline |
| Self Top-up Improvement | 2026-Q3 | at-risk | addo.hernando@mekari.com | Hafriz, Madani, Syafrizal M. | Yoddi, Izzul | timeline |
| Integrate Sales Invoice with Jurnal | 2026-Q3 | — | addo.hernando@mekari.com | Hafriz, Syafrizal M. | Yoddi, Izzul | timeline |
| One CID Multiple WABA | 2026-Q3 | at-risk | addo.hernando@mekari.com | Grehasta, Syafrizal M. | Yoddi, Izzul | timeline |
| Centralized SSO Token (realizes the SSO-token proposal) | 2026-Q3 | at-risk | syafrizal.abdillah@mekari.com | Satya, Syafrizal M. | Yoddi, Izzul | timeline |
| 26Q3 Adhoc Requests (bucket — 20 self-contained stories) | 2026-Q3 | at-risk | addo.hernando@mekari.com | Grehasta, Hafriz, Madani, Satya, Syafrizal M. | Yoddi, Izzul | README |
| Bifrost 26Q3 Engineering Initiatives (bucket — 0 items, scaffolded) | 2026-Q3 | — | TBD | TBD | — | README |
Priority
| Priority | Initiative | Depends on | Note |
|---|---|---|---|
| P1 | Deduction V2 | — | Meta max price — Part 1 engine (T1–T7) done, Part 2 redesigned off the wa_reconciliation_batches rollup (ADR-0002). 32.5 md · 51% · FE staffed, QA + pilot remain (status 2026-07-24). |
| P2 | Meta WhatsApp Pricing — Service-Message Billing | — | Hard 2026-10-01 Meta commitment; Phase 2 gated on the pricing decision + hub_core access — see README |
| P3 | Self Top-up Improvement | — | 90% historical baseline; two fixes + retest remain — see status 2026-07-20 |
| P4 | Qontak One Team Migration | — | Reopened (General membership + private triggers), added scope TBD — see status 2026-07-20 |
| P5 | Integrate Sales Invoice with Jurnal | — | [QA] — decrease support ticket; FE resequenced 2026-07-01 ahead of Centralized SSO Token (see Capacity summary) |
| P6 | Self-Subs — New Subscription, Renewal & Upgrade | — | No downgrade in this phase. FE briefly preempted by adhoc A9 (Expedite, ~0.5 md) 2026-07-14 — see status note. |
| P7 | Lite Seats | — | [internal] piloting |
| P8 | Downgrade Webhook | — | Pre-req of downgrade user |
| P9 | Quota Management — User Quota Integration | — | Pre-req of downgrade user |
| P10 | Downgrade User | Downgrade Webhook, Quota Management | Paused, off Sprint 2 on backend + design gates — see status 2026-07-20; QA on Izzul (ADR 0002) |
| P11 | One CID Multiple WABA | — | F-1 resolved 2026-07-19: new Epic BIF-8910 owns the 26Q3 remainder — see decision 0001. RFC draft, reviewed 7.0/10 (BE PROCEED / FE HOLD on Detail 2.F); QA on Izzul. |
| P12 | Centralized SSO Token | — | Chunked: Phase 1 Launchpad Q3 (9.5 md), Phase 2 → Q4 (decision 0002); at-risk on SB-2 |
| P13 | Meta x Modpanel Call Usage Comparison | — | PM-confirmed rank (2026-07-01) |
| P14 | Billing Expired Handling | — | PM-confirmed rank (2026-07-01) |
| P15 | Qontak Launchpad Audit Logs | — | PM-confirmed rank (2026-07-01) |
| P16 | Postpaid Usage Scheduler | — | PM-confirmed rank (2026-07-01) |
Adhoc / Interrupt lane
| Bucket (Epic) | 🔴 Expedite (may preempt) | 📅 Fixed-Date | 🟡 Standard (pull-in fill) | ⚪ Intangible | Tracker |
|---|---|---|---|---|---|
| 26Q3 Adhoc Requests (BIF-8695) | A1, A2, A3, A7, A9, A11, A21 | — | A4, A8, A12, A13, A14, A15, A16, A17, A18, A19, A20, A22 | A10 | tracker |
| Bifrost 26Q3 Engineering Initiatives (BIF-8888) | — | — | — | — | tracker |
20 stories, all Lane B. Per-story Class, Status, owners and the Expedite log are
canonical in the tracker —
this lane renders it. Expedite WIP ≤3 (2 in flight: A9 and A11; A21 remains backlog — Expedite
log).
A3 routes to ESCALATE on FE capacity (ADR 0001).
Bifrost 26Q3 Engineering Initiatives is a separate engineering-only bucket — currently
empty, scaffolded; its would-be seed item moved into adhoc-q3-2026 as A11.
Portfolio progress & forecast
| Initiative | % done | Effort (total man-days) | p85 forecast | Confidence |
|---|---|---|---|---|
| Centralized SSO Token | 0% | 37.5 (FE 23 · BE 4.5 · QA 10) | 2026-10-15 | low |
| Lite Seats | 13% | 22.5 (FE 4 · BE 14 · QA 4.5) | 2026-10-02 | medium |
| Self Top-up | 90% (historical baseline) | 22 (FE 12.5 · BE 5 · QA 4.5) | 2026-09-10 | high |
| Self-Subs | withheld | TBD — scope/task map under reconciliation | TBD | TBD |
| Deduction V2 | 51% | 32.5 (BE 23 · FE 3 · QA 6.5) | 2026-09-04 | medium |
| Meta WhatsApp Pricing (service-message billing) | 33% | 12 (BE 9.5 · FE 0.5 · QA 2, medium) | 2026-09-08 | medium |
| Meta x Modpanel Call Usage | 0% | 15.5 (BE 11.5 · QA 4.0; FE 0) | 2026-10-23 | medium |
| Qontak Launchpad Audit Logs | 0% | 10 (FE 3.5 · BE 5 · QA 1.5) | 2026-11-06 | medium |
| Downgrade Webhook | 0% | 9 (BE 7 · QA 2; FE 0) | 2026-10-06 | high |
| Qontak One Team Migration | 81% historical baseline | 15.5 baseline + Tasks 7–8 TBD | expanded percentage withheld until re-estimated | TBD |
| Postpaid Usage Scheduler | 0% | 21 (FE 4 · BE 12.5 · QA 4.5) | 2026-11-17 | medium |
| Billing Expired Handling | 0% | 17.5 (FE 5 · BE 8 · QA 4.5; Mobile TBD) | 2026-11-04 | low |
| Integrate Sales Invoice with Jurnal | 0% | 6.5 (FE 2 · BE 2.5 · QA 2) | 2026-09-16 | medium |
| One CID Multiple WABA | 0% | 25.5 (FE 7.0 · BE 12.5 · QA 6.0) | 2026-10-08 | medium |
| Downgrade User | 0% | 20.5 (BE 10 · FE 5.5 · QA 5) | TBD (paused — withheld) | medium |
| 26Q3 Adhoc Requests | 0% (0 of 20 done — tracker) | — (unsized bucket) | — | — |
| Bifrost 26Q3 Engineering Initiatives | — (0 of 0 items — empty scaffold) | — | — | — |
| all other bifrost initiatives | 0% | — | — | — |
Effort figures are breakdown-sourced (canonical per-discipline values on each initiative README;
TBD until the DRI confirms). Reading qualifiers: Self Top-up's 22 md / 90% is a historical
as-built baseline; SSO Token's 37.5 excludes SSO/Account-owned upstream (the forecast covers the Q3
Launchpad chunk only, 9.5 md). p50/p85 derived 2026-07-23 (initiative-timeline-mapper): remaining
work laid down in Priority order against the remaining Q3 window (~40 effective md/person, 0.8
focus), Lane-B final E2E trailing dev-complete on the serial QA owner, p85 = remaining effort ×
effort_confidence (high ×1.15 · medium ×1.35 · low ×1.6). Qontak One Team and Downgrade User are
withheld (unsized / paused); gated dates (Self-Subs, Downgrade Webhook, SSO, Audit Logs) are
floors assuming the upstream clears now, not commitments.
Systemic capacity finding. Loads are all under 1.0 full-quarter, but against the remaining window the FE lane (Syafrizal M.) and the serial Lane-B E2E lane (Yoddi) are the binding constraints: at p85 P7–P16 finish Oct–Nov, and even at p50 P14 Billing Expired, P15 Audit Logs, and P16 Postpaid miss Q3 — a scope-vs-capacity signal on the priority tail, not a per-initiative failure.
QA Lanes
| Initiative | Lane | Basis | As of |
|---|---|---|---|
| Deduction V2 | B | money-critical: real-time balance hold, deduction & settlement | 2026-06-26 |
| Meta WhatsApp Pricing | B | money-critical: billing reconciliation vs Meta — silent failure = revenue loss/overcharge on ~14–15B IDR/mo newly-billable service traffic | 2026-07-06 |
| Downgrade Webhook | B | money-critical: downgrade → billing & quota recalculation | 2026-06-26 |
| Lite Seats | B | money-critical: tiered quota deduction/refund; security: role & permission model | 2026-06-26 |
| Self-Subs | B | money-critical: new subscription, renewal & upgrade with payment/invoicing | 2026-06-26 |
| Billing Expired Handling | B | money-critical: billing-expiry & subscription state; Mobile in scope (out-of-reach) | 2026-06-26 |
| Postpaid Usage Scheduler | B | money-critical: scheduled postpaid usage drives the billing charge | 2026-06-26 |
| Qontak One Team Migration | B | security/isolation: team-assignment/access migration; one-time migration (out-of-reach) | 2026-06-26 |
| Meta x Modpanel Call Usage | B | money-critical: billing reconciliation vs Meta — silent failure = revenue loss/overcharge | 2026-06-26 |
| Qontak Launchpad Audit Logs | B | security/isolation: audit trail of permission changes, PII, permission-gated | 2026-06-26 |
| Quota Management — User Quota Integration | B | money-critical: quota check/deduction/refund vs central service | 2026-06-26 |
| Downgrade User | B | money-critical: quota-deficit role restriction/restoration after downgrade | 2026-06-29 |
| Self Top-up | B | money-critical: payment flows & balance top-up with financial impact | 2026-06-29 |
| One CID Multiple WABA | B | money-critical: shared-pool balance deduction, WABI reset & postpaid limits across multiple WABA IDs | 2026-06-29 |
| Integrate Sales Invoice with Jurnal | B | billing-document: incorrect document buttons or broken Jurnal SI URLs on a payment flow damage client trust and create Finance support burden | 2026-06-29 |
| Centralized SSO Token | B | security/isolation-sensitive: centralized auth/session + cross-company sync across products | 2026-06-29 |
| 26Q3 Adhoc Requests | B | team-policy default — adhoc items touch billing, SSO/Modpanel access & Self Top-up (money & security adjacent), and cross-product session invalidation (A11); silent failure reaches paying customers. Advisory, set without a full qa-lane-advisor pass — trivial items (A9 UI polish, A10 email removal) may warrant a lighter per-story gate | 2026-07-14 |
| Bifrost 26Q3 Engineering Initiatives | B | team-policy default, scaffolded — currently empty (no items); engineering-owned work here can carry availability or session-integrity risk reaching paying customers once a real item lands | 2026-07-14 |
Lane A: 0 of 18 initiatives (target 20–50% in Lane A). Every Bifrost initiative is money-critical or isolation-sensitive, and none has E2E test specs yet — so the Lane-A entry bar (100% E2E, spec-mapped) is unmet across the board. Lane A becomes reachable only once tests/** specs land and a non-core surface clears the entry bar.
Team policy: every Bifrost initiative is Lane B because it touches revenue-sensitive pricing, deductions, quota, subscriptions or billing where a silent failure hits revenue. Targeted automation is still added for specific testcases (e.g. CRUD in user management, permission validation, UI changes).
Capacity summary
See capacity.md for the full per-implementor table.
- Basis: CDP 2026-Q3 (
65eng-days, focus0.8→ 52 effective); QA defaults to Yoddi (65), Izzul cross-team backup at 15. All implementor rows are fully sized — noTBDlower bounds remain. - Current loads (post SSO chunk, decision 0002, 2026-07-19): Syafrizal M. 46.5/52 = 0.89 (under) · Satya 0.57 · Hafriz 0.69 · Grehasta 0.78 · Madani 0.50 · Yoddi 0.81 · Izzul 0.92 (≈1 effective day of headroom left). Per-implementor detail:
capacity.md. - ✅ The FE over-commit is resolved by chunking Centralized SSO Token Phase 2 → Q4 (decision 0002); health stays
at-riskon SB-2. - 🟡 Izzul has absorbed two QA reassignments and cannot take a third (ADR 0002); 13 md of unsequenced QA needs a sequencing pass — see
capacity.md. - 🟡 The second-FE-engineer question remains open as an ADR (
delivery/decisions/0001-second-fe-engineer-decision.md,proposal) — A3 (Expedite) still routes to ESCALATE on FE capacity and A4's FE has no slot; see the Adhoc / Interrupt lane.
Cross-initiative dependencies
Bifrost-internal edges are sparse — across all 26Q3 RFCs the only dependency between sibling Bifrost initiatives is the downgrade chain:
- Downgrade User (P11) depends on Downgrade Webhook (P9) and Quota Management
(P10) — both are pre-reqs of the downgrade-user logic (mirrors the Priority table's
Depends on). - Deduction V2 and Downgrade Webhook share the Modpanel↔Billing quota-management API surface (sibling RFCs) — a coordination point, not a blocking dependency.
- Deduction V2 (P1) and Meta WhatsApp Pricing (P2) share the
hub_core/qontak-billingdeduction path. Meta's 1 Oct switch makes ~42.85M service messages/mo newly billable — a large new deduction volume flowing through the very real-time balance-hold path Deduction V2 introduces, so Deduction V2's hold/settlement load model should account for service-message volume. A coordination point (sequence thehub_coretouchpoints; don't let the two land conflicting changes on the PMP branch), not a blocking dependency.
Every other initiative's hard blockers point outward at other squads or external Mekari platform contracts, not at sibling Bifrost initiatives — tracked in the next section.
External & cross-squad dependencies
The dominant delivery risk for 26Q3: most initiatives are gated by artifacts owned outside Bifrost. Sourced from each initiative's RFC(s) as of 2026-06-30; none of these appear in the locked seven-column Portfolio table above. Status legend: 🔴 blocking · 🟡 needs confirmation · ✅ resolved.
| Initiative | Blocking dependency | Owner (squad / vendor) | Status |
|---|---|---|---|
| Centralized SSO Token | Live Session Manager service (SB-2) and Infosec CSP whitelist for the SSO SDK iframe | Account & Launchpad (+ infosec) | 🔴 two remaining hard gates; SDK dependency is resolved |
| Self-Subs ⏰ | Self-subscription API + Invoicable list API contracts; Mekari Pay redirect-param convention; CID Billing Settings page path | Mekari Billing, Mekari Pay, moderator-be | 🔴 gates Phase-2 ship |
| Downgrade Webhook | triggers_downgrade billing-component column + 6-code backfill; Chat inbound-webhook contract; CRM inbound-webhook + pigeon registration; client email template content | billing-team, chat-squad, crm-squad, content-team | 🔴 needs contracts |
| Lite Seats | Lite component code strings; lite_seats_enabled flag delivery (Kafka / company_features); Lite-config Figma frame | Mekari Billing / ModPanel, Platform, Design | 🟡 needs confirmation |
| Deduction V2 | PRD refresh to authorize-at-send (source PRD Non-Goal #4 forbids send-blocking) — internal governance gate before RFC approved; code (T1–T7) is execution-ready | Bifrost PM (internal) | 🟡 confirmed cleared 2026-07-06 (team alignment) — engineering resumes; RFC (in-review) / PRD (draft) frontmatter still needs a formal update to approved to close the paper trail |
| Meta WhatsApp Pricing ⏰ | Open pricing decision (absorb / pass-through / bundle → seeds the service rate in v2_wa_conversation_prices); hub_core checkout/access to verify the PMP type=regular branch bills category=service; RFC + PRD drafted 2026-07-06, task-breakdown authored (12 md, Phase 1 actionable) — Phase 2 data values + verification still gated on OQ-2/OQ-5/OQ-9 + hub_core access | Bifrost PM (pricing) + Bifrost eng (internal) | 🔴 blocks Phase 2 — hard 2026-10-01 Meta go-live |
| Qontak Launchpad Audit Logs | infosec review / sign-off (RFC still at IDEA) | infosec | 🟡 approval gate |
| Qontak One Team Migration | Chat/CRM trigger endpoint (path/auth/payload) + TEAM_MIGRATED event/topic sign-off (RFC OQ-1/OQ-9) | chat-squad, crm-squad | ✅ resolved 2026-07-01 — both squads signed off; Task 5 unblocked, full end-to-end migration buildable |
⏰ Self-Subs carries the hard end-of-August commitment (commitment_date: 2026-08-31)
yet is the initiative most exposed to external contracts it does not own — the
deadline-vs-contract risk is recorded in
its 2026-06-30 status report. (The Deduction V2
row is an internal PM-governance gate, listed here for completeness because it blocks RFC
approval rather than being internal task-sequencing.)
⏰ Meta WhatsApp Pricing carries a hard external commitment (commitment_date: 2026-10-01,
commitment_type: partner) — the date Meta begins billing service (non-template) messages. Unlike
Self-Subs, its gates are internal (a PM pricing decision + hub_core access), not cross-squad
contracts, so the deadline risk is decision latency, not a dependency Bifrost doesn't own. The
scope is small (a continuation of the Jul-2025 PMP work) and BE has headroom, so Q3 is reachable
if the pricing decision + RFC unblock soon; the cost of a miss is the ~14–15B IDR/mo of
newly-billable traffic Qontak would be charged by Meta but not bill onward.
Program-level risks
Current open risks only — one line each; narrative lives in the linked home. Superseded and resolved history lives in git and the linked ADRs/status files.
- 🟠 P2 Meta WhatsApp Pricing — decision latency vs the hard 2026-10-01 Meta go-live (~14–15B IDR/mo leakage exposure). Phase 2 gated on the pricing decision +
hub_coreaccess; Phase 1 buildable. See the dependency table and the P2 row above. - 🟡 Second-FE-engineer decision still open (ADR 0001,
proposal, DRI TBD) — the SSO chunk (decision 0002) cleared Syafrizal M.'s over-commit (now 0.89), but A3 (🔴 Expedite) and A4 still have no FE slot — see the Adhoc / Interrupt lane. - 🟡 QA has no absorption capacity left — Izzul at 0.92 (ADR 0002); 13 md of QA remains unsequenced against Yoddi's queue — see the Capacity summary.
- 🟡 Paper-trail gap on P1 Deduction V2 — governance gate confirmed cleared 2026-07-06, but the RFC/PRD frontmatter is still
in-review/draft; PM to move the RFC toapproved.