Mayowa

ayowa

Risk Intelligence PlatformQ3 2026

RIOS

RIOS is a multi-tenant ESG and risk intelligence platform designed around the needs of Nigerian companies. It brings ESG assessment, risk intelligence, and audience-specific reporting into one workspace, helping teams turn scattered sustainability data into clearer, more actionable reporting.

Demo coming soon
Stable Production Release

Project Screenshots

01 — The Challenge

ESG Reporting Was Fragmented

Many ESG workflows still depend on scattered spreadsheets, disconnected reporting processes, and tools designed around larger international organisations. RIOS needed to make ESG assessment more practical for Nigerian companies while supporting recognised frameworks such as GRI, TCFD, and IFRS S1/S2. The challenge was not simply collecting data, but bringing assessment, risk visibility, and reporting into one coherent workflow.

02 — The Strategy

One Platform, Multiple Workflows

RIOS was structured as a multi-tenant SaaS with independently deployed web, dashboard, and API applications. Company-level routing keeps workspaces isolated, while a cross-origin authentication flow connects the public site to the authenticated dashboard. The platform also centralises scoring and report generation so the same underlying data can power dashboards and branded reports without duplicating business logic.

03 — The Impact

A Unified ESG Workflow

The finished platform brings ESG assessment, risk visibility, and reporting into a single workflow instead of treating them as separate processes. Teams can configure their organisation, assess indicators against recognised frameworks, review performance through dashboards, and generate branded reports for different audiences. The result is a more practical foundation for communicating ESG performance without relying on disconnected tools and manual reporting workflows.

System Architecture

Multi-Tenant Data Isolation

RIOS uses a shared PostgreSQL database while isolating company workspaces through company-scoped routing and queries. This keeps the infrastructure relatively simple while allowing multiple organisations to operate within the same platform.

Cross-Domain Authentication

The public website and authenticated dashboard are deployed separately, so authentication required a secure handoff between domains. A short-lived token bridges the login flow before the dashboard establishes its own session.

Intelligence & Processing Layer

The API acts as the orchestration layer for data processing, risk classification, scheduled collection, and other intelligence workflows. This keeps the browser focused on presentation while business logic remains centralised on the server.

Branded Report Generation

Report generation uses the same underlying assessment data as the dashboard and applies each company's branding. This allows the platform to produce audience-specific reports without maintaining separate versions of the underlying information.

Lessons & Trade-offs

Share Scoring Logic Across the Product

An earlier implementation allowed dashboard scores and date-range reports to diverge because they relied on different representations of the score. The scoring calculation was extracted into a shared function and reused wherever the value is needed. This made the result consistent across the dashboard, reports, and stored score.

Move Notifications Beyond the Browser

The first notification implementation relied on browser storage, which made the state difficult to share across sessions and devices. Moving notifications into the database added some server-side work but made the feature persistent and auditable.

Choose Reporting Tools Around the Output

The original PDF approach handled document generation but made richer visual reporting difficult. The reporting layer was changed to support chart rendering and branded output, trading a simpler dependency setup for much stronger report presentation.

Ready for the next deep dive?

Check out Citygates Food bank, a Cooperative and Trift System project.

mayowa.dev