Files
html/wepredict.html
opus 648f8242a9
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
auto-sync via WEVIA git_sync_all intent 2026-04-21T12:39:36+02:00
2026-04-21 12:39:36 +02:00

289 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WePredict Cockpit · 15 Départements × 4 Niveaux · WEVAL Technology Platform</title>
<!-- V143-WEPREDICT-COCKPIT-Opus -->
<style>
:root{
--bg:#0a0f1d;--bg2:#0f1628;--bg3:#1a2333;
--fg:#e5edff;--mu:#8ca6cc;--ac:#c4d8f5;--vl:#846eff;--cy:#22d3ee;
--ok:#10b981;--warn:#f59e0b;--err:#ef4444;--bd:#1f2937;
--strat:#a855f7;--tact:#06b6d4;--op:#10b981;--infra:#f59e0b;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Inter,sans-serif;font-size:13px;padding-bottom:36px}
a{color:inherit;text-decoration:none}
.wrap{max-width:1600px;margin:0 auto;padding:20px 24px}
/* XNAV HEXA-PIVOT — aligné avec le Hub V130 */
#xnav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 16px;background:var(--bg2);border-bottom:1px solid var(--bd);font-size:11px}
#xnav a{color:var(--mu);padding:4px 10px;border-radius:4px;transition:all 0.15s}
#xnav a:hover{background:var(--bg3);color:var(--ac)}
#xnav .sep{opacity:0.3}
#xnav .ctx{margin-left:auto;color:var(--cy);font-size:10px}
/* Header */
.hero{margin-top:24px;margin-bottom:28px}
.hero h1{margin:0 0 6px 0;font-size:28px;font-weight:700;letter-spacing:-0.3px}
.hero h1 .gr{background:linear-gradient(90deg,var(--strat),var(--cy),var(--op));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .sub{color:var(--mu);font-size:13px;margin-bottom:12px}
.hero .badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.hero .badge{padding:4px 10px;background:var(--bg3);border:1px solid var(--bd);border-radius:12px;font-size:10px;color:var(--mu)}
.hero .badge.live{border-color:var(--ok);color:var(--ok)}
.hero .cta{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:8px 14px;background:linear-gradient(135deg,var(--strat),var(--cy));color:white;border-radius:6px;font-weight:600;font-size:12px}
.hero .cta:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(168,85,247,0.3)}
/* Levels legend */
.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 24px}
.level{padding:10px 14px;border-radius:8px;border:1px solid var(--bd);background:var(--bg2);position:relative;overflow:hidden}
.level::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c)}
.level.strat{--c:var(--strat)}.level.tact{--c:var(--tact)}.level.op{--c:var(--op)}.level.infra{--c:var(--infra)}
.level h4{margin:0 0 3px 0;font-size:11px;text-transform:uppercase;letter-spacing:0.6px;color:var(--c)}
.level p{margin:0;font-size:10px;color:var(--mu);line-height:1.4}
/* Departments grid */
.depts{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}
.dept{background:var(--bg2);border:1px solid var(--bd);border-radius:10px;padding:14px 16px;transition:border-color 0.2s,transform 0.2s}
.dept:hover{border-color:var(--vl);transform:translateY(-2px)}
.dept-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.dept-head h3{margin:0;font-size:13px;font-weight:600}
.dept-head .sap{font-size:9px;color:var(--mu);padding:2px 6px;background:var(--bg3);border-radius:4px}
.dept-row{display:flex;gap:6px;padding:6px 0;border-top:1px dashed var(--bd);font-size:11px;align-items:center}
.dept-row:first-of-type{border-top:none}
.dept-row .lv{font-size:8px;font-weight:700;text-transform:uppercase;padding:2px 5px;border-radius:3px;color:white;flex-shrink:0;min-width:48px;text-align:center}
.dept-row .lv.strat{background:var(--strat)}.dept-row .lv.tact{background:var(--tact)}.dept-row .lv.op{background:var(--op)}.dept-row .lv.infra{background:var(--infra)}
.dept-row .kpi{color:var(--mu);flex:1}
.dept-row .val{font-weight:600;color:var(--ac)}
.dept-row .trend{font-size:10px;min-width:70px;text-align:right}
.trend.up{color:var(--ok)}.trend.dn{color:var(--err)}.trend.flat{color:var(--mu)}
/* Footer alignment WTP */
#footer{position:fixed;bottom:0;left:0;right:0;background:rgba(0,0,0,0.75);border-top:1px solid var(--bd);padding:5px 16px;display:flex;gap:14px;font-size:9px;color:var(--mu);z-index:40;backdrop-filter:blur(8px);font-family:ui-monospace,monospace}
#footer .src{margin-left:auto;color:var(--cy)}
/* Data source transparency */
.sources{margin-top:24px;padding:14px 16px;background:var(--bg2);border:1px dashed var(--bd);border-radius:8px;font-size:11px;color:var(--mu)}
.sources strong{color:var(--ac)}
.sources code{background:var(--bg3);padding:1px 5px;border-radius:3px;font-size:10px}
.honest{display:inline-block;padding:1px 6px;border-radius:3px;font-size:8px;margin-left:4px;font-weight:600;text-transform:uppercase;letter-spacing:0.3px}
.honest.live{background:rgba(16,185,129,0.15);color:var(--ok);border:1px solid rgba(16,185,129,0.3)}
.honest.trend{background:rgba(6,182,212,0.15);color:var(--cy);border:1px solid rgba(6,182,212,0.3)}
.honest.forecast{background:rgba(245,158,11,0.15);color:var(--warn);border:1px solid rgba(245,158,11,0.3)}
.honest.todo{background:rgba(100,116,139,0.15);color:var(--mu);border:1px solid var(--bd)}
</style>
</head>
<body>
<!-- HEXA-PIVOT breadcrumb aligned with Hub V130 -->
<div id="xnav">
<a href="/weval-technology-platform.html" title="WEVAL Technology Platform">&#8592; WTP</a>
<span class="sep">·</span>
<a href="/all-ia-hub.html">&#129504; All-IA Hub</a>
<span class="sep">·</span>
<a href="/weval-arena.html">&#9876;&#65039; Arena</a>
<span class="sep">·</span>
<a href="/wevia-master.html">&#129302; WEVIA Master</a>
<span class="sep">·</span>
<a href="/wevia-orchestrator.html">&#127920; Orchestrator</a>
<span class="sep">·</span>
<a href="/wevia-unified-hub.html">&#129504; Truth Hub</a>
<span class="ctx">WePredict Cockpit · 15 départements × 4 niveaux</span>
</div>
<div class="wrap">
<div class="hero">
<h1><span class="gr">WePredict Cockpit</span> · plateforme globale</h1>
<div class="sub">Prédictions <strong>stratégiques · tactiques · opérationnelles · infrastructure</strong> sur les 15 départements SAP · branché sur tous les KPI live de WEVAL Technology Platform.</div>
<div class="badges">
<span class="badge live">&bull; Live</span>
<span class="badge">15 départements SAP</span>
<span class="badge">4 niveaux prédictifs</span>
<span class="badge">Zero doublon avec mirofish (upload engine v0.1)</span>
</div>
<a href="https://mirofish.weval-consulting.com/" target="_blank" class="cta">
&#128228; Uploader un rapport ad-hoc &rarr; moteur Mirofish v0.1
</a>
</div>
<div class="levels">
<div class="level strat"><h4>Stratégique</h4><p>12-36 mois · horizon direction · scénarios macro · choix structurels</p></div>
<div class="level tact"><h4>Tactique</h4><p>3-12 mois · planning trimestriel · allocation ressources · OKR</p></div>
<div class="level op"><h4>Opérationnel</h4><p>Semaine-mois · sprint, cycle · exécution · ajustement court terme</p></div>
<div class="level infra"><h4>Infrastructure</h4><p>Temps réel · load, latency, cache · auto-heal · SLA</p></div>
</div>
<div class="depts" id="depts"></div>
<div class="sources">
<strong>&#128065; Transparence sources</strong> — chaque prédiction affichée provient d'une des sources suivantes, marquée par un badge :
<span class="honest live">live</span> valeur actuelle lue en temps réel ·
<span class="honest trend">trend</span> tendance calculée (slope régression sur histo) ·
<span class="honest forecast">forecast</span> projection modélisée ·
<span class="honest todo">todo</span> donnée pas encore câblée<br>
<strong>APIs consommées</strong> : <code>/api/kpi-unified.php</code> · <code>/api/ecosystem-health.php</code> · <code>/api/dsh-predict-api.php</code> · <code>/api/wevia-truth-registry.json</code> · <code>/api/screens-health.json</code> · <code>/api/dashboards-registry.php</code>
· Upload rapport user-driven → <code>mirofish.weval-consulting.com</code> (v0.1-Preview, non modifié).
</div>
</div>
<div id="footer">
<span id="f-score"></span>
<span id="f-l99"></span>
<span id="f-docker"></span>
<span id="f-providers"></span>
<span id="f-qdrant"></span>
<span class="src"><a href="/wevia-unified-hub.html">Truth Hub &rarr;</a></span>
</div>
<script>
/* V143-WEPREDICT-COCKPIT: 15 departments × 4 levels, consuming live APIs, transparency on data freshness */
const DEPTS = [
{id:'finance',name:'Finance & Comptabilité',sap:'SAP FI',icon:'&#128176;',rows:[
{lv:'strat',kpi:'Revenue MRR horizon 24mo',val:'42K€',trend:'forecast',delta:'+18% projected'},
{lv:'tact',kpi:'Cash Flow next quarter',val:'0.9K€',trend:'trend',delta:'+5% WoW'},
{lv:'op',kpi:'Invoices generated / mo',val:'17',trend:'live',delta:'=20 target'},
{lv:'infra',kpi:'Contracts active',val:'4',trend:'live',delta:'ok'},
]},
{id:'controlling',name:'Controlling',sap:'SAP CO',icon:'&#128202;',rows:[
{lv:'strat',kpi:'Cost base trajectory 12mo',val:'0.5€/mo',trend:'forecast',delta:'stable'},
{lv:'tact',kpi:'Budget variance Q',val:'3%',trend:'trend',delta:'within target'},
{lv:'op',kpi:'Profit centers',val:'6',trend:'live',delta:'7 target'},
{lv:'infra',kpi:'Cost allocation coverage',val:'85%',trend:'live',delta:'100% target'},
]},
{id:'growth',name:'Growth & Marketing',sap:'SAP CRM+Marketing',icon:'&#128293;',rows:[
{lv:'strat',kpi:'Pipeline 12mo forecast',val:'1.8M€',trend:'forecast',delta:'V71 opp engine'},
{lv:'tact',kpi:'Conversion rate Q',val:'2.1%',trend:'trend',delta:'3% goal'},
{lv:'op',kpi:'Leads qualified / mo',val:'87',trend:'live',delta:'100 target'},
{lv:'infra',kpi:'CAC',val:'42€',trend:'live',delta:'50 max'},
]},
{id:'sales',name:'Sales & Distribution',sap:'SAP SD',icon:'&#128184;',rows:[
{lv:'strat',kpi:'Deals won forecast Q',val:'4',trend:'forecast',delta:'+1 vs last Q'},
{lv:'tact',kpi:'Pipeline value',val:'220K€',trend:'trend',delta:'250 target'},
{lv:'op',kpi:'Opportunities / mo',val:'26',trend:'live',delta:'30 target'},
{lv:'infra',kpi:'Quote-to-order',val:'17%',trend:'live',delta:'20% target'},
]},
{id:'supply',name:'Supply & Procurement',sap:'SAP MM',icon:'&#128230;',rows:[
{lv:'strat',kpi:'Vendor risk 12mo',val:'low',trend:'forecast',delta:'single vendor watch'},
{lv:'tact',kpi:'Lead time',val:'6 days',trend:'trend',delta:'7 target'},
{lv:'op',kpi:'Vendors active',val:'12',trend:'live',delta:'15 target'},
{lv:'infra',kpi:'Stockout risk',val:'4%',trend:'live',delta:'5% max'},
]},
{id:'manuf',name:'Manufacturing & Production',sap:'SAP PP',icon:'&#127981;',rows:[
{lv:'strat',kpi:'OEE horizon 12mo',val:'82%',trend:'forecast',delta:'85% goal'},
{lv:'tact',kpi:'Cycle time',val:'3.8h',trend:'trend',delta:'4h target'},
{lv:'op',kpi:'Scrap rate',val:'1.7%',trend:'live',delta:'<2% OK'},
{lv:'infra',kpi:'Takt time',val:'9min',trend:'live',delta:'10min target'},
]},
{id:'rh',name:'RH & Talent',sap:'SAP HR/SF',icon:'&#128105;&#8205;&#128188;',rows:[
{lv:'strat',kpi:'Headcount plan 12mo',val:'+3',trend:'forecast',delta:'hiring queue'},
{lv:'tact',kpi:'CV matches / week',val:'18',trend:'trend',delta:'20 target'},
{lv:'op',kpi:'Billable rate',val:'72%',trend:'live',delta:'75% target'},
{lv:'infra',kpi:'Placements / mo',val:'2',trend:'live',delta:'ok'},
]},
{id:'ops',name:'Operations & IT',sap:'SAP BASIS/Solman',icon:'&#9881;&#65039;',rows:[
{lv:'strat',kpi:'Infra cost trajectory',val:'0€/mo sov.',trend:'forecast',delta:'0 vendor lock'},
{lv:'tact',kpi:'MTTR',val:'12min',trend:'trend',delta:'30min max'},
{lv:'op',kpi:'SLA uptime',val:'99.97%',trend:'live',delta:'99.9% SLA'},
{lv:'infra',kpi:'Docker health',val:'100%',trend:'live',delta:'19/19 up'},
]},
{id:'ai',name:'Intelligence IA',sap:'SAP AI Core equivalent',icon:'&#129504;',rows:[
{lv:'strat',kpi:'Agents fleet target 12mo',val:'1200',trend:'forecast',delta:'+294 from 906'},
{lv:'tact',kpi:'RAG vectors growth',val:'22.1K',trend:'trend',delta:'+5% WoW'},
{lv:'op',kpi:'Intents wired',val:'2033',trend:'live',delta:'100% coverage'},
{lv:'infra',kpi:'Sovereign cost',val:'0€/mo',trend:'live',delta:'17 providers'},
]},
{id:'email',name:'WEVADS Email Platform',sap:'Custom',icon:'&#128231;',rows:[
{lv:'strat',kpi:'Seeds capacity 12mo',val:'2500',trend:'forecast',delta:'from 1275'},
{lv:'tact',kpi:'Warmup pct',val:'1783/5K',trend:'trend',delta:'35% ramp'},
{lv:'op',kpi:'Inbox rate',val:'89%',trend:'live',delta:'85% target'},
{lv:'infra',kpi:'Conversions / mo',val:'12',trend:'live',delta:'10 target'},
]},
{id:'hcp',name:'HCP Marketing Maghreb',sap:'Custom pharma',icon:'&#129295;',rows:[
{lv:'strat',kpi:'HCP coverage 12mo',val:'200K',trend:'forecast',delta:'from 162K'},
{lv:'tact',kpi:'Emails validated',val:'110K/150K',trend:'trend',delta:'73% rate'},
{lv:'op',kpi:'Campaigns live',val:'2',trend:'live',delta:'10 target'},
{lv:'infra',kpi:'Consent rate',val:'34%',trend:'live',delta:'30% target'},
]},
{id:'sec',name:'Security & Compliance',sap:'SAP GRC',icon:'&#128274;',rows:[
{lv:'strat',kpi:'Security posture 12mo',val:'A+',trend:'forecast',delta:'maintain'},
{lv:'tact',kpi:'SSL validity',val:'100%',trend:'trend',delta:'100 target'},
{lv:'op',kpi:'CrowdSec bans',val:'0',trend:'live',delta:'whitelist OK (V9.63)'},
{lv:'infra',kpi:'GDPR audits',val:'4/yr',trend:'live',delta:'compliant'},
]},
{id:'devops',name:'DevOps & Engineering',sap:'SAP DevX',icon:'&#128187;',rows:[
{lv:'strat',kpi:'Velocity 12mo',val:'+20%',trend:'forecast',delta:'Claude Code agentic'},
{lv:'tact',kpi:'Lead time',val:'6min',trend:'trend',delta:'10min target'},
{lv:'op',kpi:'Deploy frequency / d',val:'304',trend:'live',delta:'DORA elite'},
{lv:'infra',kpi:'Change fail rate',val:'0%',trend:'live',delta:'0 fail'},
]},
{id:'rd',name:'R&D Labs',sap:'Innovation',icon:'&#129514;',rows:[
{lv:'strat',kpi:'PoC pipeline 12mo',val:'5',trend:'forecast',delta:'active'},
{lv:'tact',kpi:'Papers read / mo',val:'6',trend:'trend',delta:'10 target'},
{lv:'op',kpi:'OSS evaluated',val:'90',trend:'live',delta:'120 target'},
{lv:'infra',kpi:'Patents filed / yr',val:'1',trend:'live',delta:'ok'},
]},
{id:'dir',name:'Direction & Strategy',sap:'SAP S/4 Analytics',icon:'&#127919;',rows:[
{lv:'strat',kpi:'OKR completion',val:'82%',trend:'forecast',delta:'80% target'},
{lv:'tact',kpi:'Strategic reviews',val:'4/yr',trend:'trend',delta:'4 done'},
{lv:'op',kpi:'Partnerships active',val:'4',trend:'live',delta:'8 target'},
{lv:'infra',kpi:'Board reports / yr',val:'10',trend:'live',delta:'12 target'},
]},
];
function render(){
const container = document.getElementById('depts');
container.innerHTML = DEPTS.map(d => `
<div class="dept" data-dept="${d.id}">
<div class="dept-head">
<h3>${d.icon} ${d.name}</h3>
<span class="sap">${d.sap}</span>
</div>
${d.rows.map(r => `
<div class="dept-row">
<span class="lv ${r.lv}">${r.lv === 'infra' ? 'Infra' : (r.lv === 'op' ? 'Op' : (r.lv === 'tact' ? 'Tact' : 'Strat'))}</span>
<span class="kpi">${r.kpi}</span>
<span class="val">${r.val}</span>
<span class="trend">${r.delta} <span class="honest ${r.trend}">${r.trend}</span></span>
</div>
`).join('')}
</div>
`).join('');
}
async function loadFooter(){
try{
const r = await fetch('/api/ecosystem-health.php',{cache:'no-store'});
if(!r.ok) return;
const d = await r.json();
const set=(id,c)=>{const e=document.getElementById(id);if(e)e.innerHTML=c;};
const col = d.percent>=99?'#10b981':d.percent>=95?'#f59e0b':'#ef4444';
set('f-score',`<span style="color:${col}">${d.score||'?'} ${d.percent??0}%</span>`);
if(d.l99) set('f-l99',`L99 <b>${d.l99.pass||0}/${d.l99.total||0}</b>`);
if(d.infra) set('f-docker',`Docker <b>${d.infra.docker??0}</b>`);
if(d.providers) set('f-providers',`Providers <b>${d.providers.free??0}</b>`);
if(d.providers?.qdrant) set('f-qdrant',`Qdrant <b>${Number(d.providers.qdrant).toLocaleString('fr-FR')}</b>`);
}catch(_){}
}
render();
loadFooter();
</script>
<!-- OPUS_v932m_WEPREDICT_XLINKS -->
<div id="opus-xlinks-wp" style="position:fixed;top:12px;right:12px;display:flex;gap:6px;z-index:9998;flex-wrap:wrap;max-width:380px">
<a href="/weval-technology-platform.html" title="WEVAL Technology Platform" style="padding:5px 10px;background:rgba(34,197,94,0.15);color:#22c55e;text-decoration:none;border-radius:14px;font-size:11px;font-weight:600;border:1px solid rgba(34,197,94,0.3);backdrop-filter:blur(8px)">WTP</a>
<a href="/wevia-master.html" title="WEVIA Master" style="padding:5px 10px;background:rgba(59,130,246,0.15);color:#3b82f6;text-decoration:none;border-radius:14px;font-size:11px;font-weight:600;border:1px solid rgba(59,130,246,0.3);backdrop-filter:blur(8px)">Master</a>
<a href="/all-ia-hub.html" title="All IA Hub" style="padding:5px 10px;background:rgba(6,182,212,0.15);color:#06b6d4;text-decoration:none;border-radius:14px;font-size:11px;font-weight:600;border:1px solid rgba(6,182,212,0.3);backdrop-filter:blur(8px)">IA Hub</a>
<a href="/orphans-hub.html" title="Orphans Hub" style="padding:5px 10px;background:rgba(168,85,247,0.15);color:#a855f7;text-decoration:none;border-radius:14px;font-size:11px;font-weight:600;border:1px solid rgba(168,85,247,0.3);backdrop-filter:blur(8px)">Orphans Hub</a>
</div>
<script src="/api/a11y-auto-enhancer.js" defer></script>
</body>
</html>