Cross-Tracker Intelligence Rules
How This Works
This file defines the trigger rules used by the daily-tick and weekly-housekeeping scripts. The rules are logic — the data is read live from the tracker files at runtime.
The 📈 Current Snapshot section at the bottom is auto-generated by weekly-housekeeping every Sunday, so it always reflects the latest tracker data.
💰 Cash & Stoozing → General Tasks
| Trigger Condition | Action | Target Task |
|---|---|---|
| RBS balance ≥ £5,000 (at £5k cap) | FLAG | ”At RBS cap — no more adding, surplus → GIA” |
| RBS balance = £5,000 | ADD to 🟡 ACTIVE | ”Move any excess to GIA (no more RBS additions)“ |
| Stoozing debt due within 30 days | ESCALATE to 🔴 | Ensure liquid cash reserved |
| NatWest stoozing balance ≥ £7,400 | ADD to 🟡 ACTIVE | ”Apply for more 0% interest cards” — keeps the chain going |
💳 Stoozing → Cash Flow
| Trigger Condition | Action | Target Task |
|---|---|---|
| Card ≤ 30 days to 0% expiry | ESCALATE to 🔴 | “Reserve £[balance] cash for [card] payoff” |
| Card ≤ 7 days to 0% expiry | ESCALATE to 🔴 URGENT | ”Pay off [card] NOW — £[balance]“ |
| Card cleared / paid off | MOVE to ✅ DONE | Mark payoff complete |
| New 0% offer available | ADD to 🟢 LATER | ”Consider new stoozing opportunity” |
⚖️ Case Portals → Actions
Status: IMPLEMENTED in daily-tick.py as case_portal_rules(), 2 Oct 2026.
Before that, this whole file was documentation — cross_tracker_rules() was a stub
that returned nothing, so no rule in this file fired.
Source of truth is case-status.md, regenerated daily at 9:10am by case-watch.py.
That page is machine-owned; never hand-edit it.
| Trigger Condition | Action | Output |
|---|---|---|
| A case’s State is not “unchanged” this run | FLAG to Focus | ”⚖️ {case} moved ({ref}) — open the case page and update the tracker” |
| A case changed within the last 3 days | ADD to Backlog | ”{case} ({ref}) changed {n}d ago — confirm the tracker reflects it” |
A portal fails to read 3+ runs (fail_streak) | FLAG to Focus | ”⚠️ Case portal unreadable — that case is unmonitored. Treat as a blind spot, not as ‘no change‘“ |
case-status.md missing entirely | FLAG to Focus | ”Case portals are a blind spot until case-watch produces one” |
Per-case rules (applied by hand when a portal reports an outcome)
| Case | Trigger | Action |
|---|---|---|
| AESA 2026/ADR02/018280 | Portal history adds “PENDIENTE DE APORTAR DOCUMENTACIÓN” (26 Oct); headline remains “En trámite” | Joe to sign in to DEHú with Cl@ve, read the requirement and exact deadline, then prepare the response. Do not just wait for ~01 Nov |
| AESA 2026/ADR02/018280 | Revisión granted / decision favourable | ADD “Claim €600 from EgyptAir” then “Invest £520” |
| AESA 2026/ADR02/018280 | Revisión refused (or a month passes in silence) | ADD “Decide: civil action vs EgyptAir, or drop the €520” |
| Rail Ombudsman R175958 | Ladder reaches Complete | ADD “Read the Rail Ombudsman decision on R175958” |
| Rail Ombudsman R175958 | Decision favourable | ADD “Pursue the LNER award” |
| Employment Tribunal 6003560/2026 | ”Date last modified” moves | FLAG “Tribunal record moved — check inbox and ET portal” |
| Tribunal outcome (favourable) | ADD to 🟡 ACTIVE | ”Update CV / consider next role” |
| Tribunal outcome (unfavourable) | ADD to 🟡 ACTIVE | ”Seek legal advice on appeal” |
| FOS PNX-6154478-P3L2 | Any outcome | ADD “Read the FOS decision; decide on BOXT’s £250 offer” |
Known blind spot: the FOS portal is enabled: False in case-watch.py because the
vault password is rejected and the account locks on another failed attempt. Joe must
reset it via “Forgot your password?”. Until then FOS is the one case with no automatic
monitoring.
🏦 Pension / Tax → Admin
| Trigger Condition | Action | Target Task |
|---|---|---|
| Tax code changed (new payslip) | ADD to 🟡 ACTIVE | ”Confirm HMRC extra 20% relief landed” |
| SIPP transfer completes | ADD to 🟡 ACTIVE | ”Set up £420/month SIPP standing order” |
| LISA opened | ADD to 🟡 ACTIVE | ”Set up £333/month LISA standing order” |
| Salary increase confirmed | RECALCULATE | ”Review pension % targets, update Freetrade/employer” |
| ISA allowance resets (April 6) | ADD to 🟢 LATER | ”Consider bed-and-ISA from GIA” |
⏰ Stuck Task Detection
| Rule | Threshold | Action |
|---|---|---|
| Task in 🔴 OVERDUE >14 days | Calculate days | ”STUCK: [task] — [X] days overdue. Blocker?” |
| Task in 🟡 ACTIVE >21 days | Calculate days | ”DRIFTING: [task] — [X] days, no progress. Still relevant?” |
| Task in 🟢 LATER >90 days | Calculate days | ”COLD: [task] — [X] days dormant. Remove or reactivate?” |
🎯 Monday Priority Algorithm
Score each open task:
- 🔴 OVERDUE = +10 points
- Blocking another task = +5 points
- <7 days to deadline = +7 points
- <30 days to deadline = +3 points
- Money on the table (refund/tax relief) = +4 points
- Quick win (<10 min) = +2 points
Highest score = Monday Priority.
📈 Current Snapshot
Auto-generated block — Generated: 2026-11-06; ISA/GIA refreshed daily from HA live
| Tracker | Key Number | Status |
|---|---|---|
| Net cash | £7,336 | 🟢 All cash, net of stoozing debt |
| RBS savings | £5,000 | 🟠 Near £5k cap (gap £0) |
| Santander | £6,086.87 | Ends 30 Aug 2027 |
| Lloyds | £5,716.45 | Ends 24 Jan 2028 |
| Natwest | £7,816.17 | Ends 11 Feb 2028 |
| ISA | £83,140 (T212) | 🟢 On track |
| SIPP (Freetrade) | — est. | 🟢 On track |
| SIPP (T212) | — est. | 🟢 On track |
| GIA | £14,968.33 (T212) | 🟢 Live |