Business Intelligence – Un cas pràctic - The Mobility Factory, Klimaan i Som Mobilitat

January 19, 2026 by
Business Intelligence – Un cas pràctic - The Mobility Factory, Klimaan i Som Mobilitat
Jordi Isidro

Context

Aquest projecte és un projecte d’intercooperació entre quatre cooperatives, The Mobility Factory, Klimaan, Som Mobilitat i Coopdevs.

The Mobililty Factory (https://themobilityfactory.coop/) (TMF) és una cooperativa europea de segon nivell formada per Comunitats Ciutadanes locals. Gràcies a la plataforma TMF, els membres ofereixen serveis de mobilitat sostenible a les seves comunitats locals.

Klimaan (https://coop.klimaan.be/) és una cooperativa que opera cotxes elèctrics compartits, ofereix participacions en projectes d'energia renovable i assessorament gratuït sobre instal·lacions solars i bateries. També promou la innovació a través de projectes de recerca europeus sobre energies renovables.

Som Mobilitat (https://sommobilitat.coop/) és una cooperativa de consum sense ànim de lucre que ofereix serveis per compartir vehicles elèctrics entre particulars, entitats i empreses, administracions públiques i comunitats energètiques.

Som Mobilitat i Klimaan són cooperatives que formen part de TMF.

Coopdevs (https://coopdevs.coop/) som una cooperativa de treball que ens dediquem a acompanyar projectes de l'economia social i solidària a adoptar les millors solucions tecnològiques amb una visió estratègica. Les nostres principals àrees d’actuació són ERPs amb Odoo, Business Intelligence i Transició digital.

Des del 2022 Coopdevs i Som Mobilitat hem estat treballant conjuntament en un projecte d’explotació de les dades de mobilitat. Inicialment, Som Mobilitat tenia la majoria de dades a Odoo, però ha anat progressivament migrant tot el sistema de reserves al sistema de TMF. El 2025 TMF s’interessa també pel projecte, i, juntament amb l’impuls de Klimaan, es planifica com poder fer un sistema que sigui reutilitzable per a totes les cooperatives de TMF.

Execució del projecte

El projecte va començar amb una reunió a quatre bandes entre TMF, Som Mobilitat, Klimaan i Coopdevs per definir la informació que es volia poder analitzar i entendre bé les necessitats de negoci, definir el model dimensional i els quadres de comandaments a visualitzar per part de les cooperatives de mobilitat.

A partir d’aquests requisits va començar la feina tècnica conjunta entre Coopdevs i Som Mobilitat per dissenyar el model analític i la seva correspondència amb les dades de TMF, qui també es va encarregar de donar-nos accés a tota la informació que necessitàvem de cadascuna de les bases de dades.

Al projecte d’analítica de dades de Som Mobilitat ja s’havia estat treballant amb la base de dades de TMF, extraient informació de reserves, ubicacions, vehicles, etc. cosa que va facilitar el mapatge de la informació.

El projecte s’ha executat de forma iterativa, i, tant TMF com Klimaan, han pogut anar veient els avenços que feiem des de Som Mobilitat i Coopdevs, podent ajustar els canvis de necessitats de forma iterativa.

L’arquitectura tècnica que es va utilitzar és la mateixa que amb la resta de projectes de Business Intelligence implantats per Coopdevs (PostgreSQL + Foreign Data Wrapper per a l’extracció de dades, Apache Aiflow+ DBT + Python per als processos ETL i Apache Superset per a la visualització de dades).

La novetat principal d’aquest projecte és la reorganització dels fitxers DBT en carpetes segons la seva tipologia de dades. Cadascuna de les carpetes correspondria també a un esquema de base de dades diferent.

Les carpetes/esquemes de dades utilitzats són:

  • raw: per a dades crues provinents de fitxers csv.
  • snapshots: per a taules canviants SCD de tipus 1.
  • staging: per a taules temporals per a facilitar la càrrega de dades.
  • dimensional: per a les taules de fets i dimensions en model d’estrella.
  • aggregates: per a taules agregades.
  • marts: per a les taules finals d’usuari.

El procés d’Airflow per a carregar les dades primer validava que les dades a la base de dades de TMF eren completes, per evitar càrregues errònies, a través de la comanda: dbt source freshness on s’havia definit un interval màxim d’hores sense reserves per cada cooperativa.

Després es carregaven les dades raw a través de la comanda dbt seed.

En el tercer pas es carregaven els snapshots a través de la comanda dbt snapshot.

Seguidament, ja es feia el dbt run per a carregar les taules dels esquemes staging, dimensional, aggregates i marts.

I, finalment, es feia un dbt test per a validar que les dades carregades complien els criteris de qualitat definits.



L’accés a les dades de TMF es feia amb un usuari diferent per a cada cooperativa. Es van configurar tantes connexions de foreign data wrapper com usuaris de base de dades. Com que totes les bases de dades eren iguals, es va crear una vista conjunta per cadascuna de les taules, afegint com a camp el nom de la cooperativa. Aquestes vistes conjuntes eren a les que ataquen els processos ETL. En tenir el nom de la cooperativa, aquest es va propagant per tots els models, per, posteriorment poder fer una anàlisi, o bé conjunt de totes les cooperatives de TMF, o bé separat per cada cooperativa.

Pel que fa a la visualització de les dades, s’ha creat un sol quadre de comandament en Superset on, atacant a les taules dissenyades a partir dels requisits conjunts de Klimaan i Som Mobilitat, es poden visualitzar les dades d’usuaris, usos i facturació de cada cooperativa.

A través de la Row Level security de Superset s’ha pogut utilitzar el mateix quadre de comandament, posant com a restricció el filtre de cooperativa. D’aquesta forma cada cooperativa només té accés a les seves dades, cosa que ha permès la reutilització d’aquest quadre de comandament global per a totes les cooperatives de TMF.

El cas particular de Som Mobilitat

Som Mobilitat té algunes dades de funcionament del sistema de reserves que no estan al sistema de TMF, com poden ser els contractes amb entitats o dades de sòcies, que estan a Odoo, o dades dels vehicles que estan a Fleetio. Som Mobilitat, a diferència de la resta de cooperatives de TMF, també té un Superset propi, amb diferents quadres de comandament ja implementats.

En aquest cas, per poder reutilitzar tota la feina feta amb la base de dades de TMF, s’ha fet un fork del projecte i s’ha utilitzat tot el disseny ja realitzat anteriorment, afegint la informació de les noves fonts.

En aquest cas, Som Mobilitat, ha de ressincronitzar els canvis que es fan als scripts de dbt de TMF si vol tenir les darreres novetats també implantades al seu Superset separat.

Conclusió

En aquest cas pràctic hem pogut veure la intercooperació entre una entitat amb un grau de maduresa elevat quant a l’analítica de dades, com és Som Mobilitat, i un conjunt d’entitats que necessitaven aquesta anàlisi, però que per maduresa o per costos no hi podien accedir, com són la majoria de cooperatives integrants a TMF.

Aquesta intercooperació ha permès que totes les entitats de TMF puguin tenir un quadre de comandament analític amb les mètriques principals de negoci, també ha permès enriquir el model de les dades de TMF amb nous camps i ha ajudat a reorgantizar i reordenar les estructures de dades que hi havia a Som Mobilitat.

Des de Coopdevs hem posat la nostra expertesa en l’arquitectura i enginyeria de dades i hem donat suport a la creació i configuració dels quadres de comandament i usuaris a Superset.

Com sempre, podeu trobar el codi implementat a https://git.coopdevs.org/coopdevs/bi/tmf/