How bishoy-mokhless/agentic-engineering-assessment works
Retention combines workforce records with external labour-market indicators, builds curated analytical data, and serves retention measures and signal comparisons through an API and interactive dashboard. The documented user path is dashboard filters and tabs → API routes → dashboard queries → curated data → cohort, turnover, association, and trust results. The CLI also runs an offline or refresh pipeline. Sampled source confirms ingestion fallback and snapshot storage, API wiring, and query ownership; some pipeline internals and other documented-but-unsampled wiring are represented only at the subsystem level.
Main entry points: ingest.py Ingestion · job.py Pipeline job · curate.py Curation · app.py API application
Components 25
Data pipeline
- CLI
src/retention/cli.py - Pipeline job
src/retention/pipeline/job.py - Ingestion
src/retention/pipeline/ingest.py - Eurostat client
src/retention/client/eurostat.py - World Bank client
src/retention/client/worldbank.py - HR file client
src/retention/client/hr_files.py
Curation and analysis
- Curation
src/retention/pipeline/curate.py - HR curation
src/retention/service/hr_curation.py - Indicator curation
src/retention/service/indicator_curation.py - Metrics
src/retention/pipeline/metrics.py - Analysis
src/retention/pipeline/analyse.py - Signal association
src/retention/service/association.py
API and dashboard
- API application
src/retention/api/app.py - Retention routes
src/retention/api/routers/objectives.py - Signal routes
src/retention/api/routers/signals.py - Trust routes
src/retention/api/routers/trust.py - Dashboard queries
src/retention/service/dashboard_queries.py - Interactive dashboard
dashboard/app.js
Data storage
- Raw snapshots
src/retention/repository/raw_repository.py - Curated repository
src/retention/repository/curated_repository.py - Curated data store
src/retention/repository/curated_store.py
Other components
- Operator
- Dashboard user
- External data providers
- Delivered HR pack
Connections 35
- Operator → CLI: runs commands
- CLI → Pipeline job: starts pipeline
- Pipeline job → Ingestion: runs ingest
- Pipeline job → Curation: runs curation
- Pipeline job → Metrics: runs metrics
- Pipeline job → Analysis: runs analysis
- Ingestion → Eurostat client: fetches indicators
- Ingestion → World Bank client: fetches indicators
- Ingestion → HR file client: checks HR pack
- Eurostat client → External data providers: requests data
- World Bank client → External data providers: requests data
- HR file client → Delivered HR pack: reads files
- Ingestion → Raw snapshots: saves snapshots
- Ingestion → Raw snapshots: reads latest
- Curation → Raw snapshots: reads snapshots
- Curation → HR curation: curates workforce
- Curation → Indicator curation: curates indicators
- Curation → Curated repository: writes layers
- Metrics → Curated repository: writes metrics
- Analysis → Curated repository: writes analysis
- Analysis → Signal association: computes association
- Operator → CLI: serves application
- CLI → API application: starts server
- API application → Curated data store: creates store
- API application → Retention routes: registers routes
- API application → Signal routes: registers routes
- API application → Trust routes: registers routes
- Dashboard user → Interactive dashboard: selects filters
- Interactive dashboard → Retention routes: requests retention
- Interactive dashboard → Signal routes: requests signals
- Interactive dashboard → Trust routes: requests trust
- Retention routes → Dashboard queries: calls queries
- Signal routes → Dashboard queries: calls queries
- Trust routes → Dashboard queries: calls queries
- Dashboard queries → Curated data store: reads curated data