RiskMate is a curated decision-support instrument for emerging risks. It allows an organisation to supply a profile (industry, size, geography) and instantly receive a board-ready emerging-risk outlook. The risks are grouped across time horizons and scored for velocity, impact, and confidence.
- Profile-Driven Insights: Get customized risk outlooks tailored to your specific industry, organization size, and geographical region.
- Deterministic Scoring: The scoring engine uses curated rules to assign horizon, velocity, and impact scores, ensuring transparency and defensibility.
- AI-Assisted Data Ingestion: Uses AI to extract candidate emerging risks from institutional reports (WEF, Allianz, Swiss Re, etc.) while keeping the scoring strictly rule-based.
- Executive Dashboard: A clean, React-based frontend that visualizes the risk landscape through heat maps, radar charts, and executive summaries.
- Role-Based Access: Distinguishes between Risk Leads (view-only) and Administrators (access to data ingestion pipelines).
- Backend: FastAPI (Python), SQLAlchemy, PostgreSQL
- Frontend: React 19, Vite, Tailwind CSS v4, shadcn/ui
- AI/LLM: Configurable support for Gemini, Groq, and OpenRouter (for text extraction and filtering).
You can run RiskMate locally with a few simple steps. No Docker required.
- Python 3.11+
- Node.js 20+
- PostgreSQL (We recommend a free Supabase project. Make sure to use the Transaction pooler connection string on port 6543).
- Navigate to the
backenddirectory. - Copy the environment file:
cp .env.example .env - Edit the
.envfile with your credentials:DATABASE_URL: Your PostgreSQL connection string.JWT_SECRET: A secure random string for authentication. Generate one withpython -c "import secrets; print(secrets.token_urlsafe(48))"GEMINI_API_KEY: Your LLM API key for data ingestion.
cd backend
python -m venv .venv
# On macOS / Linux
source .venv/bin/activate
# On Windows
.venv\Scripts\activate
pip install -r requirements.txt
playwright install chromium # Required for scraping some sources# Run migrations to create tables
alembic upgrade head
# Load curated engine rules (this is required to populate the engine)
python -m riskmate.curated.loaderTo populate the risk library, run the pipeline. This will fetch and extract data from the sources.
python -m riskmate.pipeline.run --allNote: You can also set up the scheduler (python -m riskmate.pipeline.scheduler) to keep data fresh automatically.
Backend:
cd backend
uvicorn riskmate.main:app --reload --port 8000Frontend:
cd frontend
npm install
npm run devOpen your browser and navigate to http://localhost:5173.
The first account you create will automatically be granted Administrator privileges, giving you access to the Ingestion and pipeline dashboard.