Your position's matrix — the rollup line on each card counts everyone underneath, all the way down. Click a position to drill into that leg. Open slots are where the next placements land.
✓ qualified (2/2 directs) · P Premium · S Standard · ⬇ everyone below that position (all generations) and the POL they've earned
+
Your team
Your position's matrix — the rollup line on each card counts everyone underneath, all the way down. Click a position to drill into that leg. Open slots are where the next placements land.
✓ qualified (2/2 directs) · P Premium · S Standard · ⬇ everyone below that position (all generations) and the POL they've earned · ↧ spillover = placed there by upline activity; only members who join with a position's own ID count toward its 2/2
Share this position
Payments received
Every payment your position has received, straight from the smart contract.
Your lineage
diff --git a/public/my.js b/public/my.js
index e787d03..ff020fb 100644
--- a/public/my.js
+++ b/public/my.js
@@ -8,12 +8,14 @@
const treeUI={byId:{},parent:{},homeId:0,rootId:0,mode:'pyramid'};
function indexTree(n,par){if(!n)return;treeUI.byId[n.id]=n;if(par)treeUI.parent[n.id]=par.id;indexTree(n.left,n);indexTree(n.right,n)}
+ function isSpill(n){return !!(n&&treeUI.parent[n.id]&&n.referrerId&&n.referrerId!==treeUI.parent[n.id])}
function card(n,focus){
if(!n)return '
`;
};
@@ -71,6 +73,17 @@
treeUI.byId={};treeUI.parent={};treeUI.homeId=d.id;treeUI.rootId=d.id;
indexTree(d.subtree,null);
renderTree();
+ // spillover explainer — shown exactly when the confusing state exists:
+ // positions sitting under you while you're not yet qualified
+ const note=document.getElementById('dSpillNote');
+ if(note){
+ const kids=d.subtree?[d.subtree.left,d.subtree.right].filter(Boolean):[];
+ const spills=kids.filter(k=>k.referrerId&&k.referrerId!==d.id).length;
+ if(d.directCount<2&&kids.length&&spills){
+ note.innerHTML=`
Why am I not qualified when people sit under me? ${spills===kids.length?'The positions':'Some positions'} under you arrived by spillover — when your upline recruits, the contract fills the next open slot downward, which can land members in your matrix. Spillover grows your team and your future level payments, but qualification only counts your directs — people who join using your ID. You have ${d.directCount}/2 directs; share your link above to get ${2-d.directCount===1?'your last one':'your 2'}.