# Module utils/doceoMepAggregator

#### Fileoverview

DOCEO per-MEP voting aggregator.

Aggregates per-MEP roll-call voting statistics from the EP DOCEO XML source. Designed to be shared by OSINT tools (`assess_mep_influence`, `detect_voting_anomalies`, `comparative_intelligence`) that need real RCV-derived voting activity instead of the placeholder zeros returned by `MEPDetails.votingStatistics` when the EP API has no per-MEP data.

Behaviour mirrors `computeCoalitionCohesionFromDoceo` in `src/tools/analyzeCoalitionDynamics.ts`:

- bounded by `withTimeoutAndAbort` (default 2 s)
- results cached for 5 minutes per `${mepId}|${dateFrom}|${dateTo}|${politicalGroup}|${limit}`
- empty/failed results are also cached briefly to avoid storms

Source: `doceoClient.getLatestVotes()` (EP DOCEO XML).

ISMS Policy: SC-002 (Input Validation), AC-003 (Least Privilege), AU-002 (Audit Logging). GDPR Article 5(1)(d) — accuracy principle.

#### Since

1.4.0

## Interfaces

ComputeMepVotingActivityOptions
DoceoMepAggregateResult
MepVotingAggregateStats

## Variables

DOCEO_MEP_AGGREGATOR_CACHE_TTL_MS
DOCEO_MEP_AGGREGATOR_TIMEOUT_MS

## Functions

clearDoceoMepAggregatorCache
computeMepVotingActivityFromDoceo