id,product_id,feature_key,feature_value,note,source_page biene:privatkonto:pf:atom_285_counter_example,biene:privatkonto,pricing_condition,Atom #285 second counter-example — bienebank.clientis.ch renders rates statically,"After Clientis Bank Oberaargau (PR #122, atom #285 1st counter-example), Biene Bank is now the SECOND Clientis member to break out of the atom #271 JS-render-gate generalisation. Rendered savings rate table on /privatkunden/konten/sparkonten/ + per-product factsheets reachable via standard fetch. Atom #271 should be further weakened — at least 2 of 12 Clientis members observed do NOT render via JS. Likely the gate is selectively configured per member rather than federation-wide.", biene:privatkonto:pf:clientis_federation,biene:privatkonto,pricing_condition,Clientis-federation member; pricing uses common Clientis framework,"bienebank.ch redirects to bienebank.clientis.ch — same federation as sparcassa, clientis_oberuzwil, ce_courtelary, eb_entlebucher et al. (loaded 2026-05-31). swissbanks_minimal.json does NOT mark biene as parent_group=""Clientis"" — metadata gap, atom #268-style follow-up needed.", biene:privatkonto:pf:js_rendering_gate,biene:privatkonto,pricing_condition,All rate/condition values JS-rendered (atom #271),"Clientis-federation common framework loads rate values dynamically via JS (""Bitte warten… %"" placeholders in static HTML). Affects every Clientis member uniformly — this is atom #271 confirmed at federation scale. Workaround: Playwright + networkidle wait per atom #271 Walid feedback item.",