1- # Per-library metadata for highcharts implementation of line-retention-cohort
2- # Auto-generated by impl-generate.yml
3-
41library : highcharts
52specification_id : line-retention-cohort
63created : ' 2026-03-16T20:44:42Z'
7- updated : ' 2026-03-16T20:44:42Z '
4+ updated : ' 2026-03-16T20:49:03Z '
85generated_by : claude-opus-4-5-20251101
96workflow_run : 23164943620
107issue : 4572
@@ -13,7 +10,212 @@ library_version: unknown
1310preview_url : https://storage.googleapis.com/pyplots-images/plots/line-retention-cohort/highcharts/plot.png
1411preview_thumb : https://storage.googleapis.com/pyplots-images/plots/line-retention-cohort/highcharts/plot_thumb.png
1512preview_html : https://storage.googleapis.com/pyplots-images/plots/line-retention-cohort/highcharts/plot.html
16- quality_score : null
13+ quality_score : 82
1714review :
18- strengths : []
19- weaknesses : []
15+ strengths :
16+ - Perfect spec compliance - all required features implemented (cohort curves starting
17+ at 100%, legend with sizes, reference line, varying emphasis)
18+ - Good data storytelling through progressive line thickness and color intensity
19+ - Clean, well-structured code with proper seed and Highcharts export pattern
20+ - Realistic, business-relevant data context
21+ weaknesses :
22+ - Monochromatic blue palette makes the lightest cohorts (Jan, Feb) nearly indistinguishable
23+ from each other
24+ - Y-axis gridlines at every 2% increment create excessive visual clutter (~50 gridlines)
25+ - LineSeries imported from wrong module (series.area instead of series.line)
26+ image_description : The plot displays a line chart with 5 retention curves for monthly
27+ signup cohorts (Jan-May 2025). The title reads "line-retention-cohort · highcharts
28+ · pyplots.ai" with a subtitle "User Retention by Monthly Signup Cohort". All curves
29+ start at 100% at Week 0 and exhibit exponential decay over 12 weeks. The Y-axis
30+ shows "Retained Users (%)" from 0% to 100% with gridlines at every 2% increment
31+ (very dense). The X-axis shows "Week 0" through "Week 12" labeled as "Weeks Since
32+ Signup". A dashed horizontal line at 20% marks the "20% Retention Target" with
33+ a label at the right edge. The legend is positioned vertically on the right, listing
34+ each cohort with sample size (e.g., "Jan 2025 (n=1,245)"). Colors use a monochromatic
35+ blue palette from lightest (Jan 2025) to darkest (May 2025). Older cohorts have
36+ thinner lines and smaller markers, newer cohorts are thicker and bolder. The Jan
37+ 2025 cohort drops to approximately 18% by Week 12, while May 2025 retains approximately
38+ 35%.
39+ criteria_checklist :
40+ visual_quality :
41+ score : 25
42+ max : 30
43+ items :
44+ - id : VQ-01
45+ name : Text Legibility
46+ score : 7
47+ max : 8
48+ passed : true
49+ comment : Font sizes explicitly set throughout (title 48px, axis titles 36px,
50+ tick labels 28px, legend 30px). The 20% target label is slightly small.
51+ - id : VQ-02
52+ name : No Overlap
53+ score : 6
54+ max : 6
55+ passed : true
56+ comment : No overlapping text elements
57+ - id : VQ-03
58+ name : Element Visibility
59+ score : 4
60+ max : 6
61+ passed : false
62+ comment : Lines visible but lightest two blue cohorts are nearly indistinguishable
63+ from each other and from the background
64+ - id : VQ-04
65+ name : Color Accessibility
66+ score : 3
67+ max : 4
68+ passed : false
69+ comment : Colorblind-safe but monochromatic palette has insufficient contrast
70+ between adjacent series
71+ - id : VQ-05
72+ name : Layout & Canvas
73+ score : 3
74+ max : 4
75+ passed : true
76+ comment : Good margins but significant empty space below 20% threshold
77+ - id : VQ-06
78+ name : Axis Labels & Title
79+ score : 2
80+ max : 2
81+ passed : true
82+ comment : Descriptive labels with units
83+ design_excellence :
84+ score : 12
85+ max : 20
86+ items :
87+ - id : DE-01
88+ name : Aesthetic Sophistication
89+ score : 5
90+ max : 8
91+ passed : true
92+ comment : Custom blue gradient palette with intentional hierarchy. Above defaults
93+ but not publication-level.
94+ - id : DE-02
95+ name : Visual Refinement
96+ score : 3
97+ max : 6
98+ passed : false
99+ comment : Grid excessively dense at every 2%. Grid color subtle but density
100+ clutters.
101+ - id : DE-03
102+ name : Data Storytelling
103+ score : 4
104+ max : 6
105+ passed : true
106+ comment : Good hierarchy via progressive line thickness and color. Reference
107+ line adds business context.
108+ spec_compliance :
109+ score : 15
110+ max : 15
111+ items :
112+ - id : SC-01
113+ name : Plot Type
114+ score : 5
115+ max : 5
116+ passed : true
117+ comment : Correct line chart with multiple cohort curves
118+ - id : SC-02
119+ name : Required Features
120+ score : 4
121+ max : 4
122+ passed : true
123+ comment : All spec features present
124+ - id : SC-03
125+ name : Data Mapping
126+ score : 3
127+ max : 3
128+ passed : true
129+ comment : X/Y correctly mapped
130+ - id : SC-04
131+ name : Title & Legend
132+ score : 3
133+ max : 3
134+ passed : true
135+ comment : Correct title format and legend labels with cohort sizes
136+ data_quality :
137+ score : 14
138+ max : 15
139+ items :
140+ - id : DQ-01
141+ name : Feature Coverage
142+ score : 5
143+ max : 6
144+ passed : true
145+ comment : 5 cohorts with varying decay rates showing improving retention trend
146+ - id : DQ-02
147+ name : Realistic Context
148+ score : 5
149+ max : 5
150+ passed : true
151+ comment : Realistic SaaS product analytics scenario
152+ - id : DQ-03
153+ name : Appropriate Scale
154+ score : 4
155+ max : 4
156+ passed : true
157+ comment : Realistic retention values and cohort sizes
158+ code_quality :
159+ score : 10
160+ max : 10
161+ items :
162+ - id : CQ-01
163+ name : KISS Structure
164+ score : 3
165+ max : 3
166+ passed : true
167+ comment : Clean linear flow
168+ - id : CQ-02
169+ name : Reproducibility
170+ score : 2
171+ max : 2
172+ passed : true
173+ comment : np.random.seed(42) set
174+ - id : CQ-03
175+ name : Clean Imports
176+ score : 2
177+ max : 2
178+ passed : true
179+ comment : All imports used
180+ - id : CQ-04
181+ name : Code Elegance
182+ score : 2
183+ max : 2
184+ passed : true
185+ comment : Clean loop for series creation
186+ - id : CQ-05
187+ name : Output & API
188+ score : 1
189+ max : 1
190+ passed : true
191+ comment : Saves plot.png via Selenium
192+ library_mastery :
193+ score : 6
194+ max : 10
195+ items :
196+ - id : LM-01
197+ name : Idiomatic Usage
198+ score : 4
199+ max : 5
200+ passed : true
201+ comment : Good use of Chart, HighchartsOptions, plotLines. Could better leverage
202+ tooltip formatting.
203+ - id : LM-02
204+ name : Distinctive Features
205+ score : 2
206+ max : 5
207+ passed : false
208+ comment : Uses plotLines and vertical legend but doesn't leverage more distinctive
209+ Highcharts features
210+ verdict : REJECTED
211+ impl_tags :
212+ dependencies :
213+ - selenium
214+ techniques :
215+ - html-export
216+ patterns :
217+ - data-generation
218+ - iteration-over-groups
219+ dataprep : []
220+ styling :
221+ - grid-styling
0 commit comments