21 KiB
Decisions Mailing List Routing Report
Date: 2026-07-04
Source: decisions.json
Purpose: interpret decisions.json as the user intent for mailing-list handling and translate it into mailbox structure proposals.
Summary
decisions.json contains 185 sender/list decision entries:
h("houden"): 95 entries, 2,762 messages.a("afmelden"): 89 entries, 2,683 messages.s: 1 entry, 26 messages.
The sorter still does not read decisions.json directly. The decisions have been normalized into mailinglist_routes.json, which is now loaded by mail_routes.py for routing and destination-folder generation.
The normalized policy contains 153 grouped rules and covers every key in decisions.json through source_decision_keys.
Interpretation
Recommended interpretation:
keuze: "h"means keep the list and route it to a normal functional mailbox.keuze: "a"means isolate it underAfmelden, so it can be reviewed/unsubscribed without polluting normal destination folders.keuze: "s"is ambiguous. Treat it as "separate/review" until confirmed; for now it should be kept in a functional mailbox or a review mailbox, not underAfmelden.
For Afmelden, use a separate top-level tree:
INBOX.Afmelden.<Category>.<Organization>
Do not place final folders under Archief.
Combined Groups
The following entries should be combined because they appear to come from the same organization/person even when domains differ:
- Coursera:
coursera.org,email.coursera.org,m.mail.coursera.org,m.learn.coursera.org. - MIT Technology Review:
technologyreview.com,fulfillment.technologyreview.com. - Eva Keiffenheim:
evakeiffenheim.com,eva keiffenheim s lifelong learning club,eva keiffenheim from the learn letter, and theirsubstack.comtransport. - KPN:
kpn.com,campagnes.kpn.com. - PostNL:
postnl.nl,notificatie.postnl.nl,edm.postnl.nl. - STRATO:
strato.com,news.strato.com,marketingradar.strato.com. - Unive:
nieuwsbrief.unive.nland any futureunive.nl. - ICS:
icsmarketing.icscards.nland any futureicscards.nl/service.icscards.nl. - Viking:
delivery.vikingdirect.nl,online.vikingdirect.nl, and any futurevikingdirect.nl. - bol:
bol.com,feedback.bol.com. - Coolblue:
coolblue.nl,coolblue.eu. - Vodafone: split by intent: keep
zakelijk.vodafone.nlin normal telecom, but placevodafone.nlunderAfmeldenbecause it is markeda. - Sophos/Cleverbridge:
home.sophos.com,cleverbridge.com. - Forte Labs/BASB:
fortelabs.co,fortelabs.com. - CIONET:
mn.co,cionet.com. - Gusti:
gusti-leer.nl,gusti-leder.de,gusti-pelle.it. - Nord:
nordvpn.com,nordpass.com. - DHL: split by intent: keep
dhlparcel.nl, but placedhlecommerce.nlunderAfmeldenbecause it is markeda;proxy.privault.rpip.nlshould be treated as DHL if retained. - Proton:
proton.me,notify.proton.me,mail.proton.me. - Vonage/Nexmo:
vonage.com,insights.vonage.com,nexmo.com. - Visme:
accounts.visme.com,visme.co. - ClickUp:
clickup.com,team.wrike.comare not the same organization; keep separate. - Pleio/IBDS:
pleio.nl,mail.pleio.nl.
Keep: Proposed Functional Mailboxes
These h entries should be routed to normal destination folders.
| Proposed mailbox | Entries/domains | Count | Notes |
|---|---|---|---|
INBOX.Nieuwsbrieven.Leren.Coursera |
coursera.org, email.coursera.org, m.mail.coursera.org, m.learn.coursera.org |
492 | Already mostly represented in mail_routes.py; zero-count aliases should remain aliases. |
INBOX.Nieuwsbrieven.Leren.Storytelling with Data |
storytellingwithdata.com |
319 | Already represented. |
INBOX.Nieuwsbrieven.Leren.MIT Technology Review |
technologyreview.com, fulfillment.technologyreview.com |
287 | Already represented. |
INBOX.Nieuwsbrieven.Overig.Lendahand |
lendahand.com |
256 | Already represented. |
INBOX.Nieuwsbrieven.Leren.Eva Keiffenheim |
evakeiffenheim.com, Keiffenheim Substack entries via substack.com |
204 | Needs sender-name or List-ID handling for Substack; domain-only routing is insufficient. |
INBOX.Nieuwsbrieven.Overig.The Good Roll |
thegoodroll.nl |
89 | Already represented. |
INBOX.Mobiliteit.EV.Eneco eMobility |
eneco-emobility.com, eneco.nl |
96 | Already represented. |
INBOX.Nieuwsbrieven.Leren.Nick Milo |
linkingyourthinking.com |
76 | Already represented. |
INBOX.Mobiliteit.OV & Reizen.NS |
ns.nl, email.ns.nl |
63 | Already represented. |
INBOX.Werk.Opdrachten.OneStopSourcing |
onestopsourcing.nl |
51 | Already represented. |
INBOX.Nieuwsbrieven.Leren.AI Report |
beehiiv.com, mail.beehiiv.com |
39 | Already represented by domain aliases. |
INBOX.Werk.Opdrachten.Flextender |
flextender.nl |
37 | Already represented. |
INBOX.Financieel.Verzekering.Unive |
nieuwsbrief.unive.nl |
37 | Existing route uses Univé; prefer ASCII folder spelling if normalizing new folder names. |
INBOX.Financieel.Bank.ICS |
icsmarketing.icscards.nl |
36 | Already represented with aliases. |
INBOX.Nieuwsbrieven.Nieuws & Vakbladen.Vakblad Crisismanager |
crisismanager.nl |
35 | Already represented. |
INBOX.Diensten.Software.CogSci Apps |
cogsciapps.com |
33 | Already represented. |
INBOX.Nieuwsbrieven.Leren.Ben Tiggelaar |
tiggelaar.nl |
31 | Already represented. |
INBOX.Werk.Opdrachten.IMMENS |
immens.nu |
30 | Already represented. |
INBOX.Financieel.Bank.ABN AMRO |
nl.abnamro.com |
26 | Already represented; include abnamro.nl alias. |
INBOX.Bestellingen.PostNL |
postnl.nl, notificatie.postnl.nl, edm.postnl.nl |
48 | Already represented; zero-count alias should remain. |
INBOX.Bestellingen.123inkt |
123inkt.nl, m.123inkt.nl |
24 | Already represented; zero-count alias should remain. |
INBOX.Bestellingen.DHL |
dhlparcel.nl, proxy.privault.rpip.nl |
25 | Keep parcel notifications; do not merge with dhlecommerce.nl because that entry is marked a. |
INBOX.Diensten.Hosting.STRATO |
strato.com, news.strato.com, marketingradar.strato.com |
27 | Already represented. |
INBOX.Diensten.Telecom.Vodafone |
zakelijk.vodafone.nl |
20 | Keep business Vodafone; consumer vodafone.nl is marked a. |
INBOX.Diensten.Software.Formspree |
formspree.io |
19 | New functional folder. |
INBOX.Diensten.Telecom.KPN |
campagnes.kpn.com, kpn.com |
22 | Already represented. |
INBOX.Diensten.Hosting.Lets Encrypt |
letsencrypt.org |
16 | Already represented. |
INBOX.Diensten.Backup.Backblaze |
backblaze.com |
14 | Existing route is Diensten.Hosting.Backblaze; consider Diensten.Backup.Backblaze. |
INBOX.Nieuwsbrieven.Leren.Brian Keating |
briankeating.com |
14 | Already represented. |
INBOX.Werk.Opdrachten.Get There |
getthere.nl |
13 | Already represented. |
INBOX.Werk.Opdrachten.Jamie |
hey.meetjamie.ai |
13 | Already represented. |
INBOX.Werk.Opdrachten.Huckr |
huckr.ai |
13 | Already represented. |
INBOX.Nieuwsbrieven.Leren.MIT Open Learning |
mit.edu |
13 | Already represented. |
INBOX.Bestellingen.Allekabels |
allekabels.nl |
10 | Already represented. |
INBOX.Mobiliteit.OV & Reizen.Booking |
booking.com |
10 | Already represented. |
INBOX.Diensten.Software.Sophos |
cleverbridge.com, home.sophos.com |
12 | Already represented. |
INBOX.Mobiliteit.EV.FastNed |
fastned.nl |
9 | Already represented. |
INBOX.Mobiliteit.EV.OPnGO |
opngo.com |
9 | Already represented. |
INBOX.Mobiliteit.EV.Tesla |
tesla.com |
9 | Already represented. |
INBOX.Diensten.Software.Cursor |
cursor.com |
8 | Already represented. |
INBOX.Diensten.Software.1Password |
1password.com |
7 | Already represented. |
INBOX.Bestellingen.Viking |
delivery.vikingdirect.nl, online.vikingdirect.nl |
13 | Already represented; include vikingdirect.nl alias. |
INBOX.Diensten.Software.Matter |
getmatter.com |
7 | Already represented. |
INBOX.Werk.Overig.Gemeente Groningen |
groningen.nl, groningenbereikbaar.nl |
10 | Already represented. |
INBOX.Financieel.Verzekering.VEZA |
heinenoord.nl |
7 | Already represented. |
INBOX.Diensten.Software.Kahoot |
team.kahoot.com |
7 | Already represented. |
INBOX.Diensten.Hosting.TransIP |
transip.nl |
7 | Already represented. |
INBOX.Diensten.Software.Indigo Neo |
indigoneo.com |
6 | New functional folder. |
INBOX.Bestellingen.Office Centre |
officecentre.nl |
6 | Already represented. |
INBOX.Mobiliteit.EV.Shell Recharge |
shellrecharge.com |
6 | Already represented. |
INBOX.Bestellingen.Smartphonehoesjes |
smartphonehoesjes.nl |
6 | Already represented. |
INBOX.Werk.Overig.BOIP |
boip.int |
5 | Already represented. |
INBOX.Nieuwsbrieven.Leren.Elizabeth Butler |
elizabethbutlermd.com |
5 | Already represented. |
INBOX.Bestellingen.bol |
bol.com, feedback.bol.com |
9 | Already represented. |
INBOX.Mobiliteit.OV & Reizen.Flitsmeister |
flitsmeister.nl |
5 | Already represented. |
INBOX.Werk.Opdrachten.FutureXL |
futurexl.nl |
5 | Already represented. |
INBOX.Financieel.Bank.NPEX |
npex.nl |
5 | Already represented. |
INBOX.Nieuwsbrieven.Nieuws & Vakbladen.The Presentation Guru |
presentation-guru.com |
5 | Already represented. |
INBOX.Bestellingen.Sligro |
sligro.nl |
5 | Already represented. |
INBOX.Financieel.Bank.SnelStart |
snelstart.nl |
5 | Already represented. |
INBOX.Financieel.Bank.Tellow |
tellow.nl |
5 | Already represented. |
INBOX.Bestellingen.Coolblue |
coolblue.nl, coolblue.eu |
7 | Already represented. |
INBOX.Nieuwsbrieven.Nieuws & Vakbladen.Computable |
jaarbeurs.nl |
4 | Already represented. |
INBOX.Diensten.Software.Microsoft Teams |
microsoft365.com |
4 | Already represented. |
INBOX.Mobiliteit.EV.Mitsubishi |
mmsn.nl |
4 | Already represented. |
INBOX.Diensten.Software.Claude |
claude.com |
3 | Already represented. |
INBOX.Bestellingen.Makro |
makro.nl |
3 | Already represented. |
INBOX.Diensten.Software.MindNode |
mindnode.com |
3 | Already represented. |
INBOX.Diensten.Netwerk.Netherfind |
netherfind.com |
3 | New functional folder. |
INBOX.Diensten.Software.Papers |
papersapp.com |
3 | Already represented. |
INBOX.Diensten.Software.Perplexity |
perplexity.ai |
3 | Already represented. |
INBOX.Diensten.Email.Proton |
mail.proton.me |
0 | Zero-count keep alias; useful only if future Proton keep-routing is desired. |
Afmelden: Proposed Mailboxes
These a entries should be routed below INBOX.Afmelden.
| Proposed mailbox | Entries/domains | Count | Notes |
|---|---|---|---|
INBOX.Afmelden.Netwerken.ResearchGate |
researchgatemail.net |
674 | Highest-volume unsubscribe candidate. |
INBOX.Afmelden.Fitness.STARS Personal Training |
virtuagym.com |
413 | Includes S.T.A.R.S via Virtuagym. |
INBOX.Afmelden.Netwerken.LinkedIn |
linkedin.com |
363 | High-volume unsubscribe candidate. |
INBOX.Afmelden.Nieuws.Het Financieele Dagblad |
messagent.fdmediagroep.nl |
108 | FD Techzaken/news. |
INBOX.Afmelden.Werk.FixedToday |
fixedtoday.nl |
97 | Armand/FixedToday. |
INBOX.Afmelden.Werk.Centre of Excellence Data Sharing Cloud |
coe-dsc.nl |
78 | Combine spelling variants. |
INBOX.Afmelden.Netwerken.CIONET |
mn.co, cionet.com |
83 | Same organization. |
INBOX.Afmelden.Winkels.Gusti |
gusti-leer.nl, gusti-leder.de, gusti-pelle.it |
88 | Same brand across country domains. |
INBOX.Afmelden.Leren.Forte Labs |
fortelabs.co, fortelabs.com |
76 | Same organization; current old folder BASB should be treated as source if unsubscribing. |
INBOX.Afmelden.Telecom.Vonage |
vonage.com, insights.vonage.com, nexmo.com |
50 | Same company/product family. |
INBOX.Afmelden.Beveiliging.Nord |
nordvpn.com, nordpass.com |
40 | Same vendor. |
INBOX.Afmelden.Bestellingen.DHL eCommerce |
dhlecommerce.nl |
29 | Do not merge with kept dhlparcel.nl unless user changes decision. |
INBOX.Afmelden.Leren.Taproot |
taproot.com |
27 | Anne Roberts/Taproot. |
INBOX.Afmelden.Productiviteit.Readwise |
readwise.io |
22 | Note historical overlap with Eva Keiffenheim sender names. |
INBOX.Afmelden.Leren.Scrimba |
scrimba.com |
21 | Coding education. |
INBOX.Afmelden.Software.Kilo Code |
kilocode.ai |
18 | Development tool. |
INBOX.Afmelden.Werk.Jooble |
nl.jooble.org |
18 | Job alerts. |
INBOX.Afmelden.Werk.Pleio IBDS |
pleio.nl, mail.pleio.nl |
18 | Combine real and alias domain. |
INBOX.Afmelden.Leren.FUN MOOC |
fun-mooc.fr |
17 | Course platform. |
INBOX.Afmelden.Software.Stackfield |
stackfield.help |
17 | Collaboration software. |
INBOX.Afmelden.Werk.De Staffing Groep |
destaffinggroep.nl |
16 | Work/recruitment. |
INBOX.Afmelden.Leren.Kaggle |
kaggle.com |
16 | Learning/data platform. |
INBOX.Afmelden.Diensten.Proton |
proton.me, notify.proton.me |
19 | Do not merge with zero-count keep alias without clarification. |
INBOX.Afmelden.Software.Genially |
genially.com |
14 | Presentation/creative software. |
INBOX.Afmelden.Backup.IDrive |
idrive.com |
14 | Backup service. |
INBOX.Afmelden.Projectmanagement.PMRGI |
oppmi.com |
14 | Project management resource group. |
INBOX.Afmelden.Energie.Zelf Energie Produceren |
zelfenergieproduceren.nl |
13 | Energy. |
INBOX.Afmelden.Software.Nuclino |
nuclino.com |
12 | Knowledge base software. |
INBOX.Afmelden.Apparaten.reMarkable |
remarkable.com |
12 | Device/vendor. |
INBOX.Afmelden.Software.Olares |
olares.com |
11 | Software/service. |
INBOX.Afmelden.Schrijven.Schrijf.be |
schrijf.be |
11 | Writing/training. |
INBOX.Afmelden.Software.VMware |
connect.vmware.com |
10 | VMware marketing. |
INBOX.Afmelden.Software.Audiogest |
loops.audiogest.app |
10 | Software/service. |
INBOX.Afmelden.Software.SmallCubed |
smallcubed.com |
10 | Software vendor. |
INBOX.Afmelden.Energie.Energie Collectief Nederland |
titanomon.com |
10 | Energy. |
INBOX.Afmelden.Telecom.Vodafone |
vodafone.nl |
10 | Consumer Vodafone; separate from kept business Vodafone. |
INBOX.Afmelden.Mobiliteit.Fulli |
fulli.com |
9 | Travel/toll service. |
INBOX.Afmelden.Advertenties.Google Ads |
google.com |
9 | Ads/marketing. |
INBOX.Afmelden.Software.Saga |
saga.so |
9 | Software/service. |
INBOX.Afmelden.Financieel.Triodos |
triodos.nl |
9 | Bank marketing. |
INBOX.Afmelden.Software.TurboScribe |
turboscribe.ai |
9 | Transcription service. |
INBOX.Afmelden.Financieel.bunq |
bunq.com |
8 | Bank marketing. |
INBOX.Afmelden.Winkels.Airo Paradise |
ekwb.nl |
8 | Retail/vendor. |
INBOX.Afmelden.Software.Parallels |
parallels-universe.com |
8 | Software vendor. |
INBOX.Afmelden.Leren.OReilly |
et.oreilly.com |
7 | Learning/publisher. |
INBOX.Afmelden.Software.Visme |
accounts.visme.com, visme.co |
9 | Same vendor. |
INBOX.Afmelden.Winkels.De Vulpenwereld |
devulpenwereld.nl |
6 | Retail. |
INBOX.Afmelden.Privacy.Incogni |
incogni.com |
6 | Privacy service. |
INBOX.Afmelden.Software.Smartsheet |
smartsheet.com |
6 | Software. |
INBOX.Afmelden.Netwerken.YourConnector |
yourconnector.nl |
6 | Networking/business. |
INBOX.Afmelden.Software.Zapier |
zapier.com |
6 | Software. |
INBOX.Afmelden.Software.ClickUp |
clickup.com |
5 | Software. |
INBOX.Afmelden.Presenteren.Duarte |
duarte.com |
5 | Presentation/training. |
INBOX.Afmelden.Winkels.PrintAbout |
printabout.nl |
5 | Retail. |
INBOX.Afmelden.Cloud.Microsoft Azure |
promomail.microsoft.com |
5 | Azure promotions. |
INBOX.Afmelden.Productiviteit.Tana |
tana.inc |
5 | Productivity software. |
INBOX.Afmelden.Leren.TIAS |
tias.edu |
5 | Education. |
INBOX.Afmelden.Media.VALUE IPTV VOD |
weblinux.de |
5 | Media/service. |
INBOX.Afmelden.Productiviteit.Capacities |
capacities.io |
4 | Productivity software. |
INBOX.Afmelden.Nieuws.Computable Enigma Research |
enigmaresearch.nl |
4 | Related to Computable but marked unsubscribe. |
INBOX.Afmelden.Winkels.Euroflorist |
euroflorist.nl |
4 | Retail. |
INBOX.Afmelden.Financieel.IEX Cloud |
iexcloud.io |
4 | Finance/API. |
INBOX.Afmelden.Diensten.Jetpack |
jetpack.com |
4 | WordPress/Automattic service. |
INBOX.Afmelden.Software.Linearity |
linearity.io |
4 | Design software. |
INBOX.Afmelden.Software.LiquidText |
liquidtext.net |
4 | Software. |
INBOX.Afmelden.Software.MURAL |
mural.co |
4 | Software. |
INBOX.Afmelden.Winkels.Office Noord |
officenoord.nl |
4 | Office retail. |
INBOX.Afmelden.Presenteren.Prezent |
prezent.ai |
4 | Presentation software. |
INBOX.Afmelden.Projectmanagement.Wrike |
team.wrike.com |
4 | Software. |
INBOX.Afmelden.Mobiliteit.Alfen |
alfen.com |
3 | Marked unsubscribe, despite current active route keeping Alfen under EV. Needs policy decision. |
INBOX.Afmelden.Productiviteit.GRID |
gridnewsletter.com |
3 | Productivity/newsletter. |
INBOX.Afmelden.Legal.Henchman |
henchman.io |
3 | Legal software. |
INBOX.Afmelden.Presenteren.Pitch |
hi.pitch.com |
3 | Presentation software. |
INBOX.Afmelden.Wonen.How To Buy A Home |
howtobuyahome.com |
3 | Real estate/education. |
INBOX.Afmelden.Leren.Kodeco |
kodeco.com |
3 | Learning platform. |
INBOX.Afmelden.Nieuws.Medium |
medium.com |
3 | Publishing platform. |
INBOX.Afmelden.Productiviteit.MindMeister |
mindmeister.com |
3 | Productivity software. |
INBOX.Afmelden.Fitness.NEXT Personal Gym |
next-sports.nl |
3 | Fitness. |
INBOX.Afmelden.Projectmanagement.TeamGantt |
teamgantt.com |
3 | Project management software. |
Separate/Review
circle8.nl is marked s with 26 messages.
Recommended temporary mailbox:
INBOX.Werk.Opdrachten.Circle8
Reason: Circle8 is already present as a work/opportunity route in mail_routes.py. The meaning of s should be confirmed before moving it under Afmelden.
Conflicts With Current Routes
These decisions conflict with the current hardcoded route table or expose incomplete routing:
researchgatemail.netis a high-volumeadecision but has no active route, so it currently remains in place.- Keiffenheim Substack messages are
hbut cannot be routed by domain alone becausesubstack.comis shared. Need List-ID, sender address, or display-name matching. fortelabs.co/fortelabs.comare markeda, but old mailbox naming suggests they may currently live underINBOX.Mailinglists.BASB; they should not become a normal final folder if the decision is to unsubscribe.alfen.comis in the current active EV route but is markedaindecisions.json. This should be resolved before applying generated routes.vodafone.nlis markeda, whilezakelijk.vodafone.nlis markedh. The route table currently maps both consumer and business Vodafone intoDiensten.Telecom.Vodafone; this should be split.dhlecommerce.nlis markeda, whiledhlparcel.nlis markedh. The route table currently maps both toBestellingen.DHL; this should be split.proton.meandnotify.proton.meare markeda, butmail.proton.meis a zero-counthplaceholder. Keep these separate until the user clarifies.
Plan To Add This Structure
-
Introduce a structured policy file generated from
decisions.json. Done.- Suggested file:
mailinglist_routes.json. - Fields:
action,mailbox,domains,from_contains,source_decision_keys,notes. - Do not make
decisions.jsonitself the runtime file; it contains unsubscribe URLs and analysis artifacts.
- Suggested file:
-
Extend
mail_routes.pyto load mailing-list policy. Done for domain andFromsubstring matching.- Keep
DOMAIN_ROUTESfor stable functional/business mail. - Add a runtime lookup for generated mailing-list rules.
- Support domain matching, exact sender address matching, display-name matching, and List-ID/header matching.
- Keep
-
Add
Afmeldento destination folder creation. Done throughdestination_folders().maak_mappen.pyshould create allINBOX.Afmelden.*folders from the generated policy.- Existing
destination_folders()should include both functional keep folders and unsubscribe review folders.
-
Update routing precedence. Done for invoice, mailing-list policy, then legacy domain fallback.
- Invoice keyword routing should remain first.
- Exact/list-specific mailing-list rules should run before broad domain rules, especially for shared senders such as
substack.com. - Domain rules should remain the fallback for normal service/vendor mail.
-
Add audit output before moving.
- Dry-run should report counts per proposed destination, including
Afmelden. - It should also report unmatched
decisions.jsonentries and current-route conflicts.
- Dry-run should report counts per proposed destination, including
-
Resolve conflicts before actual execution.
- Confirm
circle8.nlmeaning fors. - Confirm
alfen.com,vodafone.nl,dhlecommerce.nl, and Proton split behavior. - Confirm whether zero-count aliases should be kept as future aliases.
- Confirm
-
Test only on
backup@australius.nl.- Create the new folder structure in backup.
- Run dry-run sorter on backup.
- Review planned moves.
- Run actual sorter only after explicit confirmation.