Skip to content

Discover Fresh — Task Breakdown

Two parallel tracks of work. Both share the same Odoo instance and converge in joint UAT before cutover.

Track Definitions

  • Track A — Finance Foundation. Payment logging, supplier debt model, BNPL pricing, reconciliation, finance reporting dashboards.
  • Track B — Credit Operations & Integrations. Credit profile and Two-Track Credit Framework, repayment tracking, Google Form intake, WhatsApp + Odoo integration, BNPL health dashboard, Process Break Log.

Track A — Finance Foundation

A1. Payment Data Logging (Process 1)

  • Extend Vendor Bills / Payments with a payment-type tag: Supplier, Logistics, Payroll, Consultant.
  • Add department and originating Sales Order / Purchase Order link to every payment entry.
  • Define COGS account mapping rules so payouts tie back to inventory valuation and revenue inflows.
  • Build payout dashboard: tiles for Total Payables, Paid This Week, Outstanding Invoices, Payroll Burn % of Revenue.
  • Build the Revenue → Supplier → Logistics → Payroll waterfall and the payouts vs collected revenue trend line.
  • Add supplier-level drill-down (invoices, payments, AP aging history).

A2. Supplier Debt Tracking (Process 2)

  • Add Debt Model (Old / New) field to supplier records.
  • Tag outstanding invoices with their Debt Model.
  • Build AP aging filters by Old vs New.
  • Dashboard tiles: Outstanding Old Model Debt, Outstanding New Model Debt, % of Payables in Old vs New.
  • Bar chart of supplier balances by model and trend line of Old Model debt reduction.
  • Red flag any supplier invoice >7 days overdue.

A3. BNPL SKU Pricing

  • Configure Pricelists with tenor markups: +1.4% (7d), +2.8% (14d), +4.2% (21d), +6.0% (30d).
  • Create Payment Terms BNPL 7 / 14 / 21 / 30 with the 3-day grace period.
  • Create the "Late Payment Interest" service product (1.4% of outstanding per 7-day cycle after grace).
  • Configure Odoo Follow-up Levels: courtesy at 50% term, stronger reminder at 75%, final notice at 100%, daily during grace, weekly with penalty cycles after.
  • Server actions / scheduled jobs to compute % of term elapsed and trigger the right reminder.
  • Internal Activities so the assurance lead is alerted when penalty charges are due to be applied.

A4. Reconciliation Flow

  • Bank statement import.
  • Auto-matching for customer payments → sales invoices, vendor bills → supplier payouts, logistics fees → delivery expense, payroll → payroll expense.
  • BNPL clearing account wired up; BNPL disbursement journal posting from partner bank.
  • Exception handling: any over/underpayment or timing mismatch is flagged and routed to Internal Audit via analytic tag; resolved exceptions marked "Revenue Captured".
  • Reconciliation dashboard tiles (Sales vs Payments, AR aging, AP aging, Exceptions) and matched-vs-unmatched trend.

A5. Finance Reporting Dashboard

  • P&L assembled from journals (Revenue, COGS, Logistics, OpEx, Depreciation, Finance Costs).
  • Balance Sheet from Cash, AR, Inventory, AP, Debt, Equity sources.
  • Cash Flow from Net Profit + depreciation + changes in AR/Inventory/AP + investing + financing.
  • KPI tiles: Gross Margin %, Operating Margin %, Cash Runway (months).
  • Trend lines for Revenue / COGS / OpEx, Beginning → Ending Cash waterfall, Balance Sheet snapshot.
  • Confirm AR/AP aging accuracy, lock inventory valuation method (FIFO vs weighted average), tag journals correctly, set up fixed asset register with depreciation schedules.

Track B — Credit Operations & Integrations

B1. Customer Credit Profile + Two-Track Data Model

  • Create customer.credit.profile extending the Customer record with: merchant name, director contact, credit amount, tenor, start date, repayment frequency, status (Ongoing, Paid, Missed, Defaulted), tenor preference, current stage/tier.
  • Track 1 stages: Entry → Stage 1 Consistent → Stage 2 Reliable → Stage 3 Established → Global / Partnership, with credit limits ₦1M / ₦2M / ₦5M / ₦10M / no ceiling.
  • Track 2 tiers: Tier 1 Verified (₦50M, 7d only) → Tier 2 Established (₦100M, 7 or 14d) → Tier 3 Strategic (no ceiling, 7 or 14d). 25% deposit hard rule on every order.
  • Per-stage / per-tier metric storage (frequency, gap, GMV trend, repayment punctuality, communication events, ghost period, deposit compliance, etc.).
  • Dashboard tile baseline: Active BNPL customers, Total Outstanding Credit, % Recovery Rate.

B2. Repayment Tracking + Status Automation

  • Link invoices to repayment schedules; auto-calc outstanding balance.
  • Payment logs updated weekly (auto via bank feed if connected, manual otherwise).
  • Status rules: Ongoing within tenor, Paid at zero balance, Missed on overdue installment, Defaulted on 30+ days past due or unreachable.
  • Two consecutive missed payments → auto-tag Defaulted; defaulted customers escalated to Finance for provisioning.
  • Aging buckets: Current, 1–7d overdue, 8–30d, 30d+.
  • Alerts: yellow flag on Missed, red flag on Defaulted; auto-notify Credit Ops Lead via Slack/email.
  • Regression triggers per stage and tier wired into the status engine (BVN adverse, missed payment without communication, ghost period, deposit failure, loyalty breach, expansion abandonment, etc.).
  • "Proactive communication holds the stage" rule respected — communication events tracked and weighted in the rating.

B3. Google Form → Odoo Intake

  • Build the Google Form for credit applications (KYB + BNPL interest): business name, director contact, requested credit limit, tenor, insurance fee confirmation.
  • Pipe Form responses through Google Sheet → Zapier/Make scenario, or push directly via Odoo REST API on row insert.
  • Create customer.credit.application records with status Pending.
  • Approval workflow inside Odoo: Approve → enters BNPL workflow with disbursement and repayment tracking; Reject → archived with reason.
  • Dashboard tiles: Applications Submitted, Applications Approved, Applications Pending Review.
  • Pending >48h → flagged for Credit Ops Lead.

B4. WhatsApp + Odoo Integration Layer

  • WhatsApp returns tenor options and a priced invoice on order, using Track A pricelists.
  • Credit profile (tenor preference, credit limit, current stage/tier) read from Odoo on every interaction so the merchant is never asked twice.
  • Stage advance / regression writes back to the merchant profile; WhatsApp picks up the updated profile on the next interaction.
  • Repayment events from Odoo feed dynamic rating automatically.
  • Defaulter process: missed payment triggers Odoo workflow → reminder sequence activates, Credit Ops alerted, regression assessed.

B5. BNPL Health Dashboard

  • Tiles: % BNPL Recovery Rate (rolling 14d / 30d), Total Outstanding Credit, Customers in Default, AR aging buckets, Upcoming installments this week.
  • Repayment trend vs due installments line.
  • Pie chart of customer statuses (Ongoing, Paid, Missed, Defaulted).
  • Bar chart of outstanding balances by region.
  • Drill-downs: by SKU (which products are most financed), by Customer (top debtors, repayment behaviour), by Region (Lagos vs others, default concentration).
  • Aging-bucket drill-down to a list of customers, amounts, and notes.

B6. Process Break Log

  • Create process.break model in df_discover_fresh with all fields: identification (break_id, customer, date_logged, issue_description); root cause (root_cause, failure_source, owner_department); DMAIC workflow (dmaic_stage, stage_entered_date, fix_description, closed_date, days_to_close); impact (recurrence_yn, financial_impact_ngn, affected_orders); sigma tracking (sigma_points, week_logged, week_closed, poogi_status).
  • Link affected_orders (Many2one) to sale.order.
  • Configure DMAIC transitions: Define → Analyse → Improve → Control (forward only). Require root_cause + failure_source before Analyse, fix_description before Improve. Auto-populate closed_date and award Sigma point at Control.
  • Cron job (Sunday 18:00): mark uncleared breaks as Carried Over, deduct Sigma point.
  • Reports: Failure Source Summary, Weekly POOGI Tracking, Sigma Points Leaderboard, 4-Week Failure Source Pattern Analysis.
  • Views: My Open Breaks (department owner), Weekly Carryover Watch (Internal Control), Closed This Week.
  • Combined dashboard joining the Process Break Log, Pattern Analysis, and Weekly POOGI panels.
  • Automation: carryover flag, Sigma point generation on Control, escalation alert on open >7 days, Working Backwards feed for closed-same-week breaks.
  • Notifications to department owners and Internal Control via Slack/email.

Cross-Track Convergence Points

  • Shared data model on supplier records (the Debt Model field) must be agreed before either track ships its dashboards.
  • Payment-type tagging (Track A) and the credit-status engine (Track B) must agree on how a BNPL invoice surfaces in both AP-aging and AR-aging views.
  • End-to-end demo across both tracks: a test merchant applies via Google Form, is approved in Odoo, places an order on WhatsApp at +2.8% (14-day BNPL), the invoice flows through reconciliation, the repayment posts, and the BNPL Health Dashboard updates.
  • Joint UAT: both tracks frozen for testing.
  • Joint cutover.

Out of Scope

The following are intentionally excluded and tracked for a follow-on phase:

  • Co-investment / Partnership-tier facility integration with the bank-backed line.
  • Survival activation playbook and Earth Kitchens-level operational support workflow.
  • Multi-region BNPL routing logic beyond Lagos (region drill-down is in scope; routing rules per region come later).
  • Bureau report API automation beyond the existing BVN check used at Entry / Tier 1.

Assumptions

  • Production Odoo instance packetclouds-vendease-discoverfresh-29412875 remains the target environment.
  • Finance is available for chart-of-accounts decisions before A1 starts and inventory valuation decisions before A5 starts.
  • WhatsApp Business API credentials and Google Form access are provisioned before B3 and B4 begin.
  • Bank statement format for the reconciliation step is consistent across the test period.
  • The two production fixes already shipped (BNPL receivable typing, delivery fee propagation — see the Odoo runbook) remain in their fixed state. No rollback during the build.