Skip to main content

Bifrost — Program Roadmap

Delivery / Program Management — team-level rollup across the team's initiatives.

Portfolio

InitiativeTarget quarterHealthDRIImplementorsQATimeline
Deduction V22026-Q3on-trackaddo.hernando@mekari.comHafriz (BE + modpanel FE); Syafrizal M. (chat FE)Yoddi, Izzultimeline
Meta WhatsApp Pricing — Service-Message Billing2026-Q3backlogpm-group.qontak@mekari.comMadaniYoddi, IzzulREADME
Downgrade Webhook2026-Q3addo.hernando@mekari.comMadaniYoddi, Izzultimeline
Lite Seats2026-Q3pm-group.qontak@mekari.comSatya, Syafrizal M.Yoddi, Izzultimeline
Self-Subs — New Subscription, Renewal & Upgrade2026-Q3at-riskaddo.hernando@mekari.comGrehasta, Syafrizal M.Yoddi, Izzultimeline
Billing Expired Handling2026-Q3addo.hernando@mekari.comHafriz, Syafrizal M.Yoddi, Izzultimeline
Postpaid Usage Scheduler2026-Q3pm-group.qontak@mekari.comHafriz, Syafrizal M.Yoddi, Izzultimeline
Qontak One Team Migration2026-Q3at-riskpm-group.qontak@mekari.comGrehasta, Syafrizal M.Yoddi, Izzultimeline
Meta x Modpanel Call Usage Comparison2026-Q3addo.hernando@mekari.comGrehastaYoddi, Izzultimeline
Qontak Launchpad Audit Logs2026-Q3vinsensius.widhismara@mekari.comSatya, Syafrizal M.Yoddi, Izzultimeline
Quota Management — User Quota Integration2026-Q3addo.hernando@mekari.comMadaniYoddi, Izzultimeline
Downgrade User2026-Q3pausedaddo.hernando@mekari.comSatya, Syafrizal M.Yoddi, Izzultimeline
Self Top-up Improvement2026-Q3at-riskaddo.hernando@mekari.comHafriz, Madani, Syafrizal M.Yoddi, Izzultimeline
Integrate Sales Invoice with Jurnal2026-Q3addo.hernando@mekari.comHafriz, Syafrizal M.Yoddi, Izzultimeline
One CID Multiple WABA2026-Q3at-riskaddo.hernando@mekari.comGrehasta, Syafrizal M.Yoddi, Izzultimeline
Centralized SSO Token (realizes the SSO-token proposal)2026-Q3at-risksyafrizal.abdillah@mekari.comSatya, Syafrizal M.Yoddi, Izzultimeline
26Q3 Adhoc Requests (bucket — 20 self-contained stories)2026-Q3at-riskaddo.hernando@mekari.comGrehasta, Hafriz, Madani, Satya, Syafrizal M.Yoddi, IzzulREADME
Bifrost 26Q3 Engineering Initiatives (bucket — 0 items, scaffolded)2026-Q3TBDTBDREADME

Priority

PriorityInitiativeDepends onNote
P1Deduction V2Meta 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).
P2Meta WhatsApp Pricing — Service-Message BillingHard 2026-10-01 Meta commitment; Phase 2 gated on the pricing decision + hub_core access — see README
P3Self Top-up Improvement90% historical baseline; two fixes + retest remain — see status 2026-07-20
P4Qontak One Team MigrationReopened (General membership + private triggers), added scope TBD — see status 2026-07-20
P5Integrate Sales Invoice with Jurnal[QA] — decrease support ticket; FE resequenced 2026-07-01 ahead of Centralized SSO Token (see Capacity summary)
P6Self-Subs — New Subscription, Renewal & UpgradeNo downgrade in this phase. FE briefly preempted by adhoc A9 (Expedite, ~0.5 md) 2026-07-14 — see status note.
P7Lite Seats[internal] piloting
P8Downgrade WebhookPre-req of downgrade user
P9Quota Management — User Quota IntegrationPre-req of downgrade user
P10Downgrade UserDowngrade Webhook, Quota ManagementPaused, off Sprint 2 on backend + design gates — see status 2026-07-20; QA on Izzul (ADR 0002)
P11One CID Multiple WABAF-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.
P12Centralized SSO TokenChunked: Phase 1 Launchpad Q3 (9.5 md), Phase 2 → Q4 (decision 0002); at-risk on SB-2
P13Meta x Modpanel Call Usage ComparisonPM-confirmed rank (2026-07-01)
P14Billing Expired HandlingPM-confirmed rank (2026-07-01)
P15Qontak Launchpad Audit LogsPM-confirmed rank (2026-07-01)
P16Postpaid Usage SchedulerPM-confirmed rank (2026-07-01)

Adhoc / Interrupt lane

Bucket (Epic)🔴 Expedite (may preempt)📅 Fixed-Date🟡 Standard (pull-in fill)⚪ IntangibleTracker
26Q3 Adhoc Requests (BIF-8695)A1, A2, A3, A7, A9, A11, A21A4, A8, A12, A13, A14, A15, A16, A17, A18, A19, A20, A22A10tracker
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% doneEffort (total man-days)p85 forecastConfidence
Centralized SSO Token0%37.5 (FE 23 · BE 4.5 · QA 10)2026-10-15low
Lite Seats13%22.5 (FE 4 · BE 14 · QA 4.5)2026-10-02medium
Self Top-up90% (historical baseline)22 (FE 12.5 · BE 5 · QA 4.5)2026-09-10high
Self-SubswithheldTBD — scope/task map under reconciliationTBDTBD
Deduction V251%32.5 (BE 23 · FE 3 · QA 6.5)2026-09-04medium
Meta WhatsApp Pricing (service-message billing)33%12 (BE 9.5 · FE 0.5 · QA 2, medium)2026-09-08medium
Meta x Modpanel Call Usage0%15.5 (BE 11.5 · QA 4.0; FE 0)2026-10-23medium
Qontak Launchpad Audit Logs0%10 (FE 3.5 · BE 5 · QA 1.5)2026-11-06medium
Downgrade Webhook0%9 (BE 7 · QA 2; FE 0)2026-10-06high
Qontak One Team Migration81% historical baseline15.5 baseline + Tasks 7–8 TBDexpanded percentage withheld until re-estimatedTBD
Postpaid Usage Scheduler0%21 (FE 4 · BE 12.5 · QA 4.5)2026-11-17medium
Billing Expired Handling0%17.5 (FE 5 · BE 8 · QA 4.5; Mobile TBD)2026-11-04low
Integrate Sales Invoice with Jurnal0%6.5 (FE 2 · BE 2.5 · QA 2)2026-09-16medium
One CID Multiple WABA0%25.5 (FE 7.0 · BE 12.5 · QA 6.0)2026-10-08medium
Downgrade User0%20.5 (BE 10 · FE 5.5 · QA 5)TBD (paused — withheld)medium
26Q3 Adhoc Requests0% (0 of 20 done — tracker)— (unsized bucket)
Bifrost 26Q3 Engineering Initiatives— (0 of 0 items — empty scaffold)
all other bifrost initiatives0%

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

InitiativeLaneBasisAs of
Deduction V2Bmoney-critical: real-time balance hold, deduction & settlement2026-06-26
Meta WhatsApp PricingBmoney-critical: billing reconciliation vs Meta — silent failure = revenue loss/overcharge on ~14–15B IDR/mo newly-billable service traffic2026-07-06
Downgrade WebhookBmoney-critical: downgrade → billing & quota recalculation2026-06-26
Lite SeatsBmoney-critical: tiered quota deduction/refund; security: role & permission model2026-06-26
Self-SubsBmoney-critical: new subscription, renewal & upgrade with payment/invoicing2026-06-26
Billing Expired HandlingBmoney-critical: billing-expiry & subscription state; Mobile in scope (out-of-reach)2026-06-26
Postpaid Usage SchedulerBmoney-critical: scheduled postpaid usage drives the billing charge2026-06-26
Qontak One Team MigrationBsecurity/isolation: team-assignment/access migration; one-time migration (out-of-reach)2026-06-26
Meta x Modpanel Call UsageBmoney-critical: billing reconciliation vs Meta — silent failure = revenue loss/overcharge2026-06-26
Qontak Launchpad Audit LogsBsecurity/isolation: audit trail of permission changes, PII, permission-gated2026-06-26
Quota Management — User Quota IntegrationBmoney-critical: quota check/deduction/refund vs central service2026-06-26
Downgrade UserBmoney-critical: quota-deficit role restriction/restoration after downgrade2026-06-29
Self Top-upBmoney-critical: payment flows & balance top-up with financial impact2026-06-29
One CID Multiple WABABmoney-critical: shared-pool balance deduction, WABI reset & postpaid limits across multiple WABA IDs2026-06-29
Integrate Sales Invoice with JurnalBbilling-document: incorrect document buttons or broken Jurnal SI URLs on a payment flow damage client trust and create Finance support burden2026-06-29
Centralized SSO TokenBsecurity/isolation-sensitive: centralized auth/session + cross-company sync across products2026-06-29
26Q3 Adhoc RequestsBteam-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 gate2026-07-14
Bifrost 26Q3 Engineering InitiativesBteam-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 lands2026-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 (65 eng-days, focus 0.8 → 52 effective); QA defaults to Yoddi (65), Izzul cross-team backup at 15. All implementor rows are fully sized — no TBD lower 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-risk on 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-billing deduction 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 the hub_core touchpoints; 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.

InitiativeBlocking dependencyOwner (squad / vendor)Status
Centralized SSO TokenLive Session Manager service (SB-2) and Infosec CSP whitelist for the SSO SDK iframeAccount & Launchpad (+ infosec)🔴 two remaining hard gates; SDK dependency is resolved
Self-SubsSelf-subscription API + Invoicable list API contracts; Mekari Pay redirect-param convention; CID Billing Settings page pathMekari Billing, Mekari Pay, moderator-be🔴 gates Phase-2 ship
Downgrade Webhooktriggers_downgrade billing-component column + 6-code backfill; Chat inbound-webhook contract; CRM inbound-webhook + pigeon registration; client email template contentbilling-team, chat-squad, crm-squad, content-team🔴 needs contracts
Lite SeatsLite component code strings; lite_seats_enabled flag delivery (Kafka / company_features); Lite-config Figma frameMekari Billing / ModPanel, Platform, Design🟡 needs confirmation
Deduction V2PRD refresh to authorize-at-send (source PRD Non-Goal #4 forbids send-blocking) — internal governance gate before RFC approved; code (T1–T7) is execution-readyBifrost 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 PricingOpen 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 accessBifrost PM (pricing) + Bifrost eng (internal)🔴 blocks Phase 2 — hard 2026-10-01 Meta go-live
Qontak Launchpad Audit Logsinfosec review / sign-off (RFC still at IDEA)infosec🟡 approval gate
Qontak One Team MigrationChat/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_core access; 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 to approved.