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.profileextending 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.applicationrecords 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.breakmodel indf_discover_freshwith 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) tosale.order. - Configure DMAIC transitions: Define → Analyse → Improve → Control (forward only). Require
root_cause+failure_sourcebefore Analyse,fix_descriptionbefore Improve. Auto-populateclosed_dateand 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 Modelfield) 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-29412875remains 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.