@wafertools/wafermap 0.32.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/AGENTS.md +7 -7
  2. package/CHANGELOG.md +374 -1
  3. package/README.md +5 -5
  4. package/dist/packages/canvas-adapter/chartPopulation.d.ts +15 -10
  5. package/dist/packages/canvas-adapter/chartPopulation.js +1 -1
  6. package/dist/packages/canvas-adapter/charts/barPanel.d.ts +7 -0
  7. package/dist/packages/canvas-adapter/charts/barPanel.js +1 -1
  8. package/dist/packages/canvas-adapter/charts/binCluster.d.ts +7 -1
  9. package/dist/packages/canvas-adapter/charts/binCluster.js +1 -1
  10. package/dist/packages/canvas-adapter/charts/boxplot.js +1 -1
  11. package/dist/packages/canvas-adapter/charts/capability.js +1 -1
  12. package/dist/packages/canvas-adapter/charts/chartShell.d.ts +57 -15
  13. package/dist/packages/canvas-adapter/charts/chartShell.js +1 -1
  14. package/dist/packages/canvas-adapter/charts/correlation.js +1 -2
  15. package/dist/packages/canvas-adapter/charts/groupedBarPlot.d.ts +2 -0
  16. package/dist/packages/canvas-adapter/charts/groupedBarPlot.js +1 -1
  17. package/dist/packages/canvas-adapter/charts/histogram.d.ts +16 -0
  18. package/dist/packages/canvas-adapter/charts/histogram.js +1 -1
  19. package/dist/packages/canvas-adapter/charts/palette.d.ts +2 -0
  20. package/dist/packages/canvas-adapter/charts/palette.js +1 -1
  21. package/dist/packages/canvas-adapter/charts/plotChart.d.ts +27 -0
  22. package/dist/packages/canvas-adapter/charts/plotChart.js +1 -0
  23. package/dist/packages/canvas-adapter/charts/pointInteractions.d.ts +45 -0
  24. package/dist/packages/canvas-adapter/charts/pointInteractions.js +1 -0
  25. package/dist/packages/canvas-adapter/charts/regionYieldDiagram.d.ts +2 -0
  26. package/dist/packages/canvas-adapter/charts/regionYieldDiagram.js +1 -1
  27. package/dist/packages/canvas-adapter/charts/scatter.d.ts +19 -0
  28. package/dist/packages/canvas-adapter/charts/scatter.js +1 -1
  29. package/dist/packages/canvas-adapter/charts/sweep.d.ts +12 -0
  30. package/dist/packages/canvas-adapter/charts/sweep.js +1 -1
  31. package/dist/packages/canvas-adapter/charts/testPassRate.d.ts +7 -0
  32. package/dist/packages/canvas-adapter/charts/testPassRate.js +1 -1
  33. package/dist/packages/canvas-adapter/charts/trend.d.ts +11 -0
  34. package/dist/packages/canvas-adapter/charts/trend.js +1 -1
  35. package/dist/packages/canvas-adapter/confirmDialog.d.ts +13 -0
  36. package/dist/packages/canvas-adapter/confirmDialog.js +1 -0
  37. package/dist/packages/canvas-adapter/dataTab.d.ts +131 -0
  38. package/dist/packages/canvas-adapter/dataTab.js +1 -0
  39. package/dist/packages/canvas-adapter/dieList.d.ts +39 -4
  40. package/dist/packages/canvas-adapter/dieList.js +6 -7
  41. package/dist/packages/canvas-adapter/drilldown.d.ts +20 -3
  42. package/dist/packages/canvas-adapter/drilldown.js +1 -1
  43. package/dist/packages/canvas-adapter/guideWindow.d.ts +96 -0
  44. package/dist/packages/canvas-adapter/guideWindow.js +1 -0
  45. package/dist/packages/canvas-adapter/identityHeader.d.ts +16 -0
  46. package/dist/packages/canvas-adapter/identityHeader.js +1 -1
  47. package/dist/packages/canvas-adapter/index.d.ts +3 -3
  48. package/dist/packages/canvas-adapter/index.js +1 -1
  49. package/dist/packages/canvas-adapter/insightsTab.d.ts +73 -54
  50. package/dist/packages/canvas-adapter/insightsTab.js +1 -1
  51. package/dist/packages/canvas-adapter/maplessSummary.d.ts +2 -2
  52. package/dist/packages/canvas-adapter/plotEditor.d.ts +29 -0
  53. package/dist/packages/canvas-adapter/plotEditor.js +1 -0
  54. package/dist/packages/canvas-adapter/plotItems.d.ts +32 -0
  55. package/dist/packages/canvas-adapter/plotItems.js +1 -0
  56. package/dist/packages/canvas-adapter/plotModal.d.ts +30 -0
  57. package/dist/packages/canvas-adapter/plotModal.js +1 -0
  58. package/dist/packages/canvas-adapter/plotStore.d.ts +52 -0
  59. package/dist/packages/canvas-adapter/plotStore.js +1 -0
  60. package/dist/packages/canvas-adapter/plotTab.d.ts +30 -0
  61. package/dist/packages/canvas-adapter/plotTab.js +1 -0
  62. package/dist/packages/canvas-adapter/renderWaferGallery.d.ts +3 -2
  63. package/dist/packages/canvas-adapter/renderWaferGallery.js +1 -1
  64. package/dist/packages/canvas-adapter/renderWaferMap.d.ts +51 -2
  65. package/dist/packages/canvas-adapter/renderWaferMap.js +1 -1
  66. package/dist/packages/canvas-adapter/summaryPanel.d.ts +49 -11
  67. package/dist/packages/canvas-adapter/summaryPanel.js +2 -3
  68. package/dist/packages/canvas-adapter/summaryRail.d.ts +7 -0
  69. package/dist/packages/canvas-adapter/summaryRail.js +1 -0
  70. package/dist/packages/canvas-adapter/sweepEditor.d.ts +17 -0
  71. package/dist/packages/canvas-adapter/sweepEditor.js +1 -0
  72. package/dist/packages/canvas-adapter/tableExport.d.ts +22 -0
  73. package/dist/packages/canvas-adapter/tableExport.js +3 -0
  74. package/dist/packages/canvas-adapter/toCanvas.js +1 -1
  75. package/dist/packages/canvas-adapter/toolbar.d.ts +74 -93
  76. package/dist/packages/canvas-adapter/toolbar.js +2 -2
  77. package/dist/packages/canvas-adapter/userGuideHtml.d.ts +1 -1
  78. package/dist/packages/canvas-adapter/userGuideHtml.js +409 -51
  79. package/dist/packages/canvas-adapter/version.d.ts +2 -2
  80. package/dist/packages/canvas-adapter/version.js +1 -1
  81. package/dist/packages/canvas-adapter/viewSwitch.d.ts +13 -0
  82. package/dist/packages/canvas-adapter/viewSwitch.js +1 -0
  83. package/dist/packages/canvas-adapter/virtualTable.d.ts +44 -0
  84. package/dist/packages/canvas-adapter/virtualTable.js +1 -0
  85. package/dist/packages/core/aggregates.d.ts +6 -0
  86. package/dist/packages/core/aggregates.js +1 -1
  87. package/dist/packages/core/classify.d.ts +3 -2
  88. package/dist/packages/core/classify.js +1 -1
  89. package/dist/packages/core/compact.d.ts +205 -0
  90. package/dist/packages/core/compact.js +3 -0
  91. package/dist/packages/core/passBins.d.ts +23 -4
  92. package/dist/packages/core/passBins.js +1 -1
  93. package/dist/packages/core/ringCount.d.ts +22 -0
  94. package/dist/packages/core/ringCount.js +1 -0
  95. package/dist/packages/core/tableCsv.d.ts +43 -0
  96. package/dist/packages/core/tableCsv.js +3 -0
  97. package/dist/packages/renderer/axisTicks.d.ts +14 -0
  98. package/dist/packages/renderer/axisTicks.js +1 -1
  99. package/dist/packages/renderer/binColors.d.ts +6 -6
  100. package/dist/packages/renderer/binColors.js +1 -1
  101. package/dist/packages/renderer/buildView.d.ts +27 -2
  102. package/dist/packages/renderer/buildView.js +1 -1
  103. package/dist/packages/renderer/buildWaferMap.js +1 -1
  104. package/dist/packages/renderer/compactView.d.ts +22 -0
  105. package/dist/packages/renderer/compactView.js +1 -0
  106. package/dist/packages/renderer/xyIndicator.d.ts +27 -0
  107. package/dist/packages/renderer/xyIndicator.js +1 -0
  108. package/dist/packages/stats/analyzeWaferLot.d.ts +28 -0
  109. package/dist/packages/stats/analyzeWaferLot.js +1 -1
  110. package/dist/packages/stats/analyzeWaferMap.d.ts +36 -1
  111. package/dist/packages/stats/analyzeWaferMap.js +1 -1
  112. package/dist/packages/stats/binPareto.d.ts +1 -1
  113. package/dist/packages/stats/binPareto.js +1 -1
  114. package/dist/packages/stats/binRows.d.ts +38 -0
  115. package/dist/packages/stats/binRows.js +1 -0
  116. package/dist/packages/stats/filterFindings.d.ts +25 -0
  117. package/dist/packages/stats/filterFindings.js +1 -1
  118. package/dist/packages/stats/findingText.d.ts +9 -0
  119. package/dist/packages/stats/findingText.js +2 -0
  120. package/dist/packages/stats/histogram.d.ts +27 -0
  121. package/dist/packages/stats/histogram.js +1 -1
  122. package/dist/packages/stats/index.d.ts +2 -0
  123. package/dist/packages/stats/index.js +1 -1
  124. package/dist/packages/stats/lotDrift.d.ts +16 -0
  125. package/dist/packages/stats/lotDrift.js +1 -0
  126. package/dist/packages/stats/lotPattern.d.ts +33 -0
  127. package/dist/packages/stats/lotPattern.js +1 -0
  128. package/dist/packages/stats/math.d.ts +60 -6
  129. package/dist/packages/stats/math.js +1 -1
  130. package/dist/packages/stats/patternClassification.d.ts +32 -1
  131. package/dist/packages/stats/patternClassification.js +1 -1
  132. package/dist/packages/stats/plotData.d.ts +258 -0
  133. package/dist/packages/stats/plotData.js +1 -0
  134. package/dist/packages/stats/plotId.d.ts +3 -0
  135. package/dist/packages/stats/plotId.js +1 -0
  136. package/dist/packages/stats/plotSpec.d.ts +119 -0
  137. package/dist/packages/stats/plotSpec.js +4 -0
  138. package/dist/packages/stats/presentation.d.ts +44 -0
  139. package/dist/packages/stats/presentation.js +1 -0
  140. package/dist/packages/stats/regions.d.ts +15 -0
  141. package/dist/packages/stats/regions.js +1 -1
  142. package/dist/packages/stats/renderSummaryReport.d.ts +23 -5
  143. package/dist/packages/stats/renderSummaryReport.js +32 -27
  144. package/dist/packages/stats/reportHtml.d.ts +54 -9
  145. package/dist/packages/stats/reportHtml.js +145 -55
  146. package/dist/packages/stats/scatter.d.ts +6 -0
  147. package/dist/packages/stats/scatter.js +1 -1
  148. package/dist/packages/stats/sweep.d.ts +37 -1
  149. package/dist/packages/stats/sweep.js +1 -1
  150. package/dist/packages/stats/sweepText.d.ts +14 -0
  151. package/dist/packages/stats/sweepText.js +1 -0
  152. package/dist/packages/stats/sweepXFromName.d.ts +14 -0
  153. package/dist/packages/stats/sweepXFromName.js +1 -1
  154. package/dist/packages/stats/synthesis.d.ts +76 -0
  155. package/dist/packages/stats/synthesis.js +2 -0
  156. package/dist/packages/stats/testPassRate.d.ts +6 -0
  157. package/dist/packages/stats/testPassRate.js +1 -1
  158. package/dist/packages/stats/trend.js +1 -1
  159. package/dist/packages/stats/types.d.ts +2 -2
  160. package/dist/packages/stats/yield.d.ts +15 -6
  161. package/dist/packages/stats/yield.js +1 -1
  162. package/dist/packages/stats/yieldRows.d.ts +31 -0
  163. package/dist/packages/stats/yieldRows.js +1 -0
  164. package/llms.txt +16 -4
  165. package/package.json +3 -3
  166. package/dist/packages/stats/findingsNarrative.d.ts +0 -3
  167. package/dist/packages/stats/findingsNarrative.js +0 -1
@@ -31,7 +31,7 @@ export const USER_GUIDE_HTML=`<div class="wmap-guide">
31
31
  @media print{
32
32
  /* Print only the guide's own content, never the host page, and never a
33
33
  clipped single screenful. The guide window opens one of two ways
34
- (toolbar.ts's openUserGuideWindow) and this must handle both:
34
+ (guideWindow.ts's openUserGuideWindow) and this must handle both:
35
35
  - a real popup (openGuideInPopup): buildGuideContent's content div
36
36
  (class wmap-guide-content) is body's ONLY child directly \u2014 body
37
37
  itself is height:100vh;overflow:hidden for the screen layout, which
@@ -72,7 +72,7 @@ export const USER_GUIDE_HTML=`<div class="wmap-guide">
72
72
  .wmap-guide-toc{display:none!important}
73
73
  }
74
74
  </style>
75
- <h1 id="wafer-map-user-guide">Wafer Map \u2014 User Guide<span class="wmap-guide-version" title="Built 2026-09-27T14:44:40.685Z">v0.32.0</span></h1>
75
+ <h1 id="wafer-map-user-guide">Wafer Map \u2014 User Guide<span class="wmap-guide-version" title="Built 2026-10-06T09:21:15.198Z">v0.34.0</span></h1>
76
76
  <p class="wmap-guide-online-link">This is a quick reference. <a href="https://wafertools.github.io/wafermap/user-guide/" target="_blank" rel="noopener">View the full illustrated guide online \u2197</a></p>
77
77
  <p>This guide describes the display and analysis features of the wafer map viewer.
78
78
  It is written for users who may be semiconductor test engineers, device engineers, and yield engineers
@@ -80,7 +80,7 @@ or anyone else who may use a wafer map application \u2014 not for developers int
80
80
  <p>Some features depend on what data the application has loaded (bin names, test
81
81
  definitions, test limits, reticle geometry). Where this applies it is noted.</p>
82
82
  <p><strong>Getting oriented.</strong> The wafer map is an interactive viewer. A toolbar is always
83
- present at the top-right of the map \u2014 use it to change what the colours represent,
83
+ present above the map, at the right of its title row \u2014 use it to change what the colours represent,
84
84
  toggle overlays, rotate or flip the wafer, zoom, select dies, and open the summary
85
85
  panel. Hover any die for a tooltip; the panels and tooltips always report the
86
86
  original die grid coordinates, never the on-screen position after a rotate or flip.</p>
@@ -97,7 +97,10 @@ display does not change the coordinate labels \u2014 a die at (3, \u22122) alway
97
97
  <h3 id="12-wafer-orientation">1.2 Wafer orientation</h3>
98
98
  <p>The notch (shown as a V-notch or flat edge) marks the physical reference edge of
99
99
  the wafer as configured. Use the <strong>Orientation</strong> toolbar controls to rotate or flip
100
- the display to match your convention; die coordinates are unaffected.</p>
100
+ the display to match your convention; die coordinates are unaffected. The first rotate
101
+ or flip also switches on the <strong>XY indicator</strong> (the +X/+Y arrows in the Overlays menu), so
102
+ you can see which way the die coordinates now run. It stays on until you switch it off
103
+ there; <strong>Reset orientation</strong> leaves it as it is.</p>
101
104
  <div data-wmap-demo="bin-map" class="wmap-demo"></div><p><em>An example wafer bin map above and below the same wafer rotated 90\xB0. The notch has moved, but die coordinates \u2014 shown in tooltips \u2014 remain their original grid/prober values.</em></p>
102
105
  <div data-wmap-demo="orientation" class="wmap-demo"></div><h3 id="13-die-appearance">1.3 Die appearance</h3>
103
106
  <table>
@@ -260,10 +263,10 @@ expression it was computed from, e.g. <code>t[1020] - t[1010]</code>. The number
260
263
  square brackets are the test numbers it reads. In a CSV export the expression
261
264
  appears in a <strong>Derived from</strong> column instead.</p>
262
265
  <h2 id="3-toolbar-controls">3. Toolbar controls</h2>
263
- <p>The toolbar sits at the top-right of the map and is always visible. Controls that
266
+ <p>The toolbar sits above the map, at the right of its title row (each card in a gallery has its own), and is always visible. Controls that
264
267
  are not applicable to the current mode are hidden automatically. (Hovering the map
265
268
  shows die tooltips \u2014 a separate thing from the toolbar, which is always present.)</p>
266
- <p><img src="data:image/png;base64,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" alt="Single-map toolbar"></p>
269
+ <p><img src="data:image/png;base64,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" alt="Single-map toolbar"></p>
267
270
  <h3 id="single-map">Single map</h3>
268
271
  <table>
269
272
  <thead>
@@ -281,7 +284,7 @@ shows die tooltips \u2014 a separate thing from the toolbar, which is always pre
281
284
  <tr>
282
285
  <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yIDEyczMuNi03IDEwLTcgMTAgNyAxMCA3LTMuNiA3LTEwIDctMTAtNy0xMC03eiIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiLz48L3N2Zz4K" width="20" height="20"></td>
283
286
  <td>Overlays</td>
284
- <td>Check-menu of optional display layers: XY axis indicator, ring boundaries, quadrant lines, die coordinate labels, reticle grid (when geometry is configured), Limit pass/fail (Test Value mode with limits), Test pass/fail (Test Value mode, active test is functional or has recorded verdicts), and <strong>Mark failing dies</strong> (bin modes only). <strong>Clear overlays</strong> at the foot turns off everything in the menu at once, and is greyed when nothing is on \u2014 so the menu also answers &quot;is anything active?&quot; without you auditing every row.</td>
287
+ <td>Check-menu of optional display layers: axis labels, XY axis indicator, ring boundaries, quadrant lines, die coordinate labels, reticle grid (when geometry is configured), Limit pass/fail (Test Value mode with limits), Test pass/fail (Test Value mode, active test is functional or has recorded verdicts), and <strong>Mark failing dies</strong> (bin modes only). <strong>Compact layout</strong> and <strong>Layout diagnostics</strong> sit at the top of the menu (see <a href="#compact-layout" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'compact-layout\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Compact layout</a>). <strong>Clear overlays</strong> at the foot turns off everything in the menu at once, and is greyed when nothing is on \u2014 so the menu also answers &quot;is anything active?&quot; without you auditing every row.</td>
285
288
  </tr>
286
289
  <tr>
287
290
  <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Im0xNC42MjIgMTcuODk3LTEwLjY4LTIuOTEzIi8+PHBhdGggZD0iTTE4LjM3NiAyLjYyMmExIDEgMCAxIDEgMy4wMDIgMy4wMDJMMTcuMzYgOS42NDNhLjUuNSAwIDAgMCAwIC43MDdsLjk0NC45NDRhMi40MSAyLjQxIDAgMCAxIDAgMy40MDhsLS45NDQuOTQ0YS41LjUgMCAwIDEtLjcwNyAwTDguMzU0IDcuMzQ4YS41LjUgMCAwIDEgMC0uNzA3bC45NDQtLjk0NGEyLjQxIDIuNDEgMCAwIDEgMy40MDggMGwuOTQ0Ljk0NGEuNS41IDAgMCAwIC43MDcgMHoiLz48cGF0aCBkPSJNOSA4Yy0xLjgwNCAyLjcxLTMuOTcgMy40Ni02LjU4MyAzLjk0OGEuNTA3LjUwNyAwIDAgMC0uMzAyLjgxOWw3LjMyIDguODgzYTEgMSAwIDAgMCAxLjE4NS4yMDRDMTIuNzM1IDIwLjQwNSAxNiAxNi43OTIgMTYgMTUiLz48L3N2Zz4K" width="20" height="20"></td>
@@ -306,7 +309,7 @@ shows die tooltips \u2014 a separate thing from the toolbar, which is always pre
306
309
  <tr>
307
310
  <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBvbHlnb24gcG9pbnRzPSIxNi4yNCA3Ljc2IDE0LjEyIDE0LjEyIDcuNzYgMTYuMjQgOS44OCA5Ljg4IDE2LjI0IDcuNzYiIGZpbGw9IiMzNzQxNTEiIHN0cm9rZT0ibm9uZSIvPjwvc3ZnPgo=" width="20" height="20"></td>
308
311
  <td>Orientation</td>
309
- <td>Menu of display transforms: <strong>Rotate 90\xB0 clockwise</strong> (applies cumulatively), <strong>Flip horizontal</strong>, <strong>Flip vertical</strong>, and <strong>Reset orientation</strong>. These change only how the wafer is drawn \u2014 die coordinates in tooltips and labels are always the original values, whatever the orientation. Reset is worth knowing about: rotation and mirroring do not combine in the order you applied them, so undoing a few clicks by clicking again does not reliably get you back \u2014 Reset does, and is greyed when you are already there.</td>
312
+ <td>Menu of display transforms: <strong>Rotate 90\xB0 clockwise</strong> (applies cumulatively), <strong>Flip horizontal</strong>, <strong>Flip vertical</strong>, and <strong>Reset orientation</strong>. The first rotate or flip also switches on the XY indicator (see Overlays), which stays on until you switch it off. These change only how the wafer is drawn \u2014 die coordinates in tooltips and labels are always the original values, whatever the orientation. Reset is worth knowing about: rotation and mirroring do not combine in the order you applied them, so undoing a few clicks by clicking again does not reliably get you back \u2014 Reset does, and is greyed when you are already there.</td>
310
313
  </tr>
311
314
  <tr>
312
315
  <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Im0xMyAxMy41IDItMi41LTItMi41Ii8+PHBhdGggZD0ibTIxIDIxLTQuMy00LjMiLz48cGF0aCBkPSJNOSA4LjUgNyAxMWwyIDIuNSIvPjxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiLz48L3N2Zz4K" width="20" height="20"></td>
@@ -344,14 +347,9 @@ shows die tooltips \u2014 a separate thing from the toolbar, which is always pre
344
347
  <td>Opens a menu of charts drawn from the selected dies, or from the whole wafer when nothing is selected (see <a href="#44-charting-dies-and-wafers" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'44-charting-dies-and-wafers\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Section 4.4</a>). Only shown when there is something to chart.</td>
345
348
  </tr>
346
349
  <tr>
347
- <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyAzdjE4aDE4Ii8+PHBhdGggZD0iTTE4IDE3VjkiLz48cGF0aCBkPSJNMTMgMTdWNSIvPjxwYXRoIGQ9Ik04IDE3di0zIi8+PC9zdmc+Cg==" width="20" height="20"></td>
348
- <td>Insights</td>
349
- <td>Swaps the map for this wafer&#39;s own chart suite \u2014 yield, bin breakdown, process capability, and more (see <a href="#8-insights-tab" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'8-insights-tab\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Section 8</a>). Only shown when the application has enabled it.</td>
350
- </tr>
351
- <tr>
352
350
  <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xNSAzaDZ2NiIvPjxwYXRoIGQ9Ik05IDIxSDN2LTYiLz48cGF0aCBkPSJNMjEgM2wtNyA3Ii8+PHBhdGggZD0iTTMgMjFsNy03Ii8+PC9zdmc+Cg==" width="20" height="20"></td>
353
351
  <td>Expand</td>
354
- <td>Opens the map in an enlarged modal overlay. A maximise button in the modal grows it to fill the window (or press <strong>F</strong>). Press <strong>Esc</strong> or click outside to close. Useful for detailed inspection without changing the main view. Works in the Insights view too, where it opens the whole chart suite in a wide modal \u2014 useful because those charts interact and are best read side by side. Individual charts also have their own expand button.</td>
352
+ <td>Opens the map in an enlarged modal overlay. Opening the Summary panel in it widens the modal by the panel&#39;s width, so the map keeps its size. A maximise button in the modal grows it to fill the window (or press <strong>F</strong>). Press <strong>Esc</strong> or click outside to close. Useful for detailed inspection without changing the main view. Works in the Insights view too, where it opens the whole chart suite in a wide modal \u2014 useful because those charts interact and are best read side by side. Individual charts also have their own expand button.</td>
355
353
  </tr>
356
354
  <tr>
357
355
  <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMy45OTcgNGEyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgMS43NTktMS4wNDhsLjQ4OS0uOTA0QTIgMiAwIDAgMSAxMC4wMDQgNHoiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSIzIi8+PC9zdmc+Cg==" width="20" height="20"></td>
@@ -396,6 +394,8 @@ highlighting one bin at a time.</p>
396
394
  <h3 id="overlays">Overlays</h3>
397
395
  <p>Use the <strong>Overlays</strong> menu to toggle optional display layers on and off:</p>
398
396
  <ul>
397
+ <li><strong>Axis labels</strong> \u2014 the die coordinates along the bottom and left edges. They appear when you zoom; this row shows
398
+ them all the time, or hides them. <strong>Clear overlays</strong> returns to showing them on zoom</li>
399
399
  <li><strong>XY axis indicator</strong> \u2014 shows X and Y axis lines through the wafer centre</li>
400
400
  <li><strong>Ring boundaries</strong> \u2014 concentric ring divisions that match the spatial analysis zones</li>
401
401
  <li><strong>Quadrant lines</strong> \u2014 divides the wafer into N, S, E, W quadrants</li>
@@ -405,6 +405,33 @@ highlighting one bin at a time.</p>
405
405
  <li><strong>Test pass/fail</strong> \u2014 pass/fail colouring for Test Value mode, coloured by the tester&#39;s recorded verdict; always on for a functional (no measured value) active test</li>
406
406
  </ul>
407
407
  <div data-wmap-demo="overlays" class="wmap-demo"></div><p><em>Ring boundaries, quadrant lines, and XY indicator all active.</em></p>
408
+ <h3 id="compact-layout">Compact layout</h3>
409
+ <p>On a multi-project wafer, each reticle holds only a few of your dies, so the map is mostly empty and the dies you care
410
+ about are small. When the occupied columns and rows repeat at a regular pitch, the Overlays menu offers
411
+ <strong>Compact layout</strong>. Switch it on and the empty rows and columns disappear, so your dies are drawn as one grid at a
412
+ much larger size, with each group of dies outlined so you can still see the reticles they came from.</p>
413
+ <ul>
414
+ <li><strong>Nothing is left out.</strong> Only the arrangement changes. Every die is still drawn and counted, so the legend, yield
415
+ and statistics are the same as in the wafer view. A die that has no bin (for example one that carries metadata only)
416
+ keeps its place, shown in the no-data grey.</li>
417
+ <li><strong>Coordinates stay original.</strong> Hovering a die and the axis labels give its real die coordinates, not its position
418
+ in the compact grid.</li>
419
+ <li><strong>Orientation.</strong> The notch marker shows the wafer orientation and follows rotation and flips. The <strong>XY indicator</strong>
420
+ works as it does on the wafer view, drawn in a margin beside the grid.</li>
421
+ <li><strong>No wafer outline.</strong> The wafer circle, ring boundaries, quadrant lines and reticle grid describe the physical
422
+ wafer, which the compact grid no longer follows, so those rows are greyed out while the layout is on.</li>
423
+ <li><strong>Galleries.</strong> All cards share one layout, built from every wafer shown, so wafers can be compared cell for cell.
424
+ Each card is as tall as its map needs, so more of them fit on screen; a quarter turn swaps a card&#39;s width and height.</li>
425
+ <li><strong>Axis labels.</strong> With the Axis labels row on, the first column of each group of dies is labelled with its real die
426
+ coordinate, which marks the reticle boundaries; zoom in far enough and every die is labelled.</li>
427
+ <li><strong>When it is offered.</strong> The layout is offered when the occupied columns and rows repeat. If you supply
428
+ <code>reticleConfig</code>, it is offered when they repeat at the reticle width and height or a multiple of it (a product on every second reticle repeats at twice the width). Random missing dies do not repeat, so
429
+ a wafer that merely has holes is not offered it. Developers can switch it on regardless with
430
+ <code>viewOptions: { compact: true }</code>.</li>
431
+ </ul>
432
+ <p><strong>Layout diagnostics</strong> (also in the Overlays menu) shows what the detector saw as counts and scores only: it holds no
433
+ die positions, bins, test values or wafer names. If a layout is not recognised the way you expect, copy the text or save
434
+ it as a file and send it to whoever supports this software.</p>
408
435
  <h3 id="keyboard-shortcuts">Keyboard shortcuts</h3>
409
436
  <table>
410
437
  <thead>
@@ -490,6 +517,11 @@ highlighting one bin at a time.</p>
490
517
  <td>Sets the number of columns. <strong>Auto</strong> fits as many cards as stay readable; a number divides the full width between that many columns.</td>
491
518
  </tr>
492
519
  <tr>
520
+ <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik01IDNhMiAyIDAgMCAwLTIgMiIvPjxwYXRoIGQ9Ik0xOSAzYTIgMiAwIDAgMSAyIDIiLz48cGF0aCBkPSJNMjEgMTlhMiAyIDAgMCAxLTIgMiIvPjxwYXRoIGQ9Ik01IDIxYTIgMiAwIDAgMS0yLTIiLz48cGF0aCBkPSJNOSAzaDEiLz48cGF0aCBkPSJNOSAyMWgxIi8+PHBhdGggZD0iTTE0IDNoMSIvPjxwYXRoIGQ9Ik0xNCAyMWgxIi8+PHBhdGggZD0iTTMgOXYxIi8+PHBhdGggZD0iTTIxIDl2MSIvPjxwYXRoIGQ9Ik0zIDE0djEiLz48cGF0aCBkPSJNMjEgMTR2MSIvPjwvc3ZnPgo=" width="20" height="20"></td>
521
+ <td>Select on every wafer</td>
522
+ <td>A toggle. Off (the default), each card selects on its own. A badge counts the selected die positions; clicking the button while something is selected clears it. On, a box, a click or a clear on any card applies to every card at the same die positions, so a region is read lot-wide; right-click then opens charts and tables of those dies across all the wafers (see <a href="#43-box-select" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'43-box-select\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Section 4.3</a>).</td>
523
+ </tr>
524
+ <tr>
493
525
  <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMy45OTcgNGEyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgMS43NTktMS4wNDhsLjQ4OS0uOTA0QTIgMiAwIDAgMSAxMC4wMDQgNHoiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSIzIi8+PGNpcmNsZSBjeD0iNS41IiBjeT0iNC41IiByPSIwLjgiIGZpbGw9IiMzNzQxNTEiIHN0cm9rZT0ibm9uZSIvPjxjaXJjbGUgY3g9IjgiIGN5PSI0LjUiIHI9IjAuOCIgZmlsbD0iIzM3NDE1MSIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iNS41IiBjeT0iNyIgcj0iMC44IiBmaWxsPSIjMzc0MTUxIiBzdHJva2U9Im5vbmUiLz48Y2lyY2xlIGN4PSI4IiBjeT0iNyIgcj0iMC44IiBmaWxsPSIjMzc0MTUxIiBzdHJva2U9Im5vbmUiLz48L3N2Zz4K" width="20" height="20"></td>
494
526
  <td>Save image</td>
495
527
  <td>Downloads the full gallery grid as a single PNG.</td>
@@ -520,11 +552,6 @@ highlighting one bin at a time.</p>
520
552
  <td>Opens or closes the Summary panel covering every wafer in the gallery.</td>
521
553
  </tr>
522
554
  <tr>
523
- <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyAzdjE4aDE4Ii8+PHBhdGggZD0iTTE4IDE3VjkiLz48cGF0aCBkPSJNMTMgMTdWNSIvPjxwYXRoIGQ9Ik04IDE3di0zIi8+PC9zdmc+Cg==" width="20" height="20"></td>
524
- <td>Insights</td>
525
- <td>Swaps the grid for a chart suite covering every wafer \u2014 yield, bin breakdown, process capability, and more (see <a href="#8-insights-tab" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'8-insights-tab\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Section 8</a>). Only shown when the application has enabled it.</td>
526
- </tr>
527
- <tr>
528
555
  <td><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMzNzQxNTEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTAuMjkgMy44NiAxLjgyIDE4YTIgMiAwIDAgMCAxLjcxIDNoMTYuOTRhMiAyIDAgMCAwIDEuNzEtM0wxMy43MSAzLjg2YTIgMiAwIDAgMC0zLjQyIDB6Ii8+PHBhdGggZD0iTTEyIDl2NCIvPjxwYXRoIGQ9Ik0xMiAxN2guMDEiLz48L3N2Zz4K" width="20" height="20"></td>
529
556
  <td>Data warnings</td>
530
557
  <td>Appears only when something is worth reporting about the wafers shown. Collected across every wafer and de-duplicated, so a problem affecting all of them is stated once rather than repeated per card.</td>
@@ -573,22 +600,51 @@ their shape \u2014 a block, a ring or scattered dies. A finding highlighted from
573
600
  Summary panel is shown the same way.</p>
574
601
  <p>Use <strong>Ctrl / Cmd + click</strong> to add or remove individual dies. Press <strong>Esc</strong>, or
575
602
  click outside the wafer, to clear the selection.</p>
603
+ <p><strong>In a gallery</strong>, each card selects on its own unless you turn on <strong>Select on every
604
+ wafer</strong> in the toolbar. Then a selection made on one card is made at the same die
605
+ positions on every card \u2014 draw a box round the edge ring, a scratch zone or a
606
+ reticle corner once, and see that region on all the wafers. Right-click (or use
607
+ the <strong>Chart</strong> menu) and the charts and tables open on those dies across the whole
608
+ lot: <strong>Dies</strong>, <strong>Test statistics</strong> and a <strong>Wafers</strong> table with one row per wafer,
609
+ each stating &quot;selected at the same die positions on N wafers&quot;.</p>
610
+ <p><strong>Pick whole wafers instead</strong> with <strong>Ctrl / Cmd + click</strong> on a card&#39;s header: the card is
611
+ outlined and the toolbar counts &quot;N wafers picked \u2715&quot; (click it to clear). Right-click
612
+ one of the picked cards and the charts and tables open on every die of every picked
613
+ wafer, with a <strong>Wafers</strong> table. Dies selected on a map take precedence over a pick.</p>
614
+ <p>The button shows how many die positions are selected. <strong>Clear it</strong> by clicking an
615
+ empty part of any map, pressing <strong>Esc</strong>, or clicking the button itself (it clears
616
+ the selection and stays on); a second click turns the mode off. Turning it off
617
+ always clears the selection on every card.</p>
576
618
  <div data-wmap-demo="box-select" class="wmap-demo"></div><p><em>A block of dies near the centre is shown pre-selected. Drag on the map to make
577
619
  your own selection, or Ctrl/Cmd + click individual dies.</em></p>
578
620
  <h3 id="44-charting-dies-and-wafers">4.4 Charting dies and wafers</h3>
579
- <p><strong>Right-click</strong> a population to open a menu of charts drawn from just those
580
- dies. Picking one opens it in a window over the map. This is how you look at a
621
+ <p><strong>Right-click</strong> a population to open a menu of charts and tables drawn from just
622
+ those dies. Picking one opens it in a window over the map. This is how you look at a
581
623
  cluster, a scratch or an edge region on its own, or at one wafer out of a lot.</p>
582
624
  <p>What you right-click decides the population:</p>
583
625
  <ul>
584
626
  <li><strong>Selected dies</strong> \u2014 select some dies, then right-click on the map. Right-
585
627
  clicking a die that is <strong>not</strong> selected selects that die alone first;
586
628
  right-clicking a selected die, or empty space, keeps the selection.</li>
629
+ <li><strong>Dies selected on several wafers of a gallery</strong> \u2014 by clicking a finding, or by selecting on more than one card.
630
+ Right-click a selected die on any of those cards and the menu opens on every selected die, with a first row,
631
+ <strong>Only this wafer</strong>, that narrows it to the dies selected on the card you clicked (and <strong>All selected</strong> to go back).</li>
632
+ <li><strong>A bin in the legend</strong> \u2014 right-click its entry, on a map&#39;s legend or the gallery&#39;s lot legend. The menu opens on that
633
+ bin&#39;s dies (on this wafer, or on every wafer for the lot legend), and nothing is selected: the legend only filters what
634
+ is drawn. With several bins filtered in, right-clicking one of them opens on all of them, with an <strong>Only bin N</strong> row to
635
+ narrow it (and <strong>All filtered bins</strong> to go back). On the lot legend the Menu key or Shift + F10 works on a focused entry.</li>
636
+ <li><strong>Plots and sweeps you have saved</strong> \u2014 they open in their editor over just those dies, so you can change one there; the
637
+ change is saved to the plot.</li>
638
+ <li><strong>A finding</strong> \u2014 right-click it in the Summary panel. If it is not already shown, its dies are selected first, then
639
+ the menu opens on them: on all the wafers of a gallery that the finding selects dies on. A finding that is about
640
+ whole wafers and selects no dies (a wafer&#39;s yield) opens the menu on those wafers.</li>
587
641
  <li><strong>A whole wafer</strong> \u2014 right-click empty map space with nothing selected, a
588
642
  gallery card anywhere outside its map (its header, the space around the map),
589
643
  or one wafer&#39;s bar, box or point in an Insights chart (<em>Yield by wafer</em>,
590
644
  <em>Test value distribution</em>, <em>Wafer-to-wafer trend</em> \u2014 their tooltips say
591
645
  &quot;right-click to chart this wafer&quot;).</li>
646
+ <li><strong>Dies dragged out of the Correlation scatter</strong> \u2014 across any number of wafers.
647
+ The menu then also offers a <strong>Wafers</strong> table, one row per wafer the dies fall on.</li>
592
648
  </ul>
593
649
  <p>On the map you can also press the <strong>Menu</strong> key or <strong>Shift + F10</strong>, or use the
594
650
  <strong>Chart</strong> toolbar button, which charts the selection when there is one and the
@@ -596,12 +652,18 @@ wafer otherwise.</p>
596
652
  <p>The menu offers:</p>
597
653
  <ul>
598
654
  <li><strong>Value histogram</strong> \u2014 one test&#39;s distribution, opening on the test the map
599
- is showing.</li>
655
+ is showing. <strong>Edit as new plot</strong> beside its population line closes it and
656
+ opens the same test as a draft plot over the same dies, to change its axes, colour or limits and keep it if you want.</li>
600
657
  <li><strong>Process capability</strong> \u2014 every test normalised to its spec limits, or its
601
658
  test limits when it has none, with its
602
659
  Ppk. Below 30 dies the chart says each Ppk is a rough estimate: a Ppk from a
603
660
  handful of dies can be far from the process&#39;s real capability.</li>
604
- <li><strong>Sweeps</strong> your application has defined (see <a href="#sweep-cards" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'sweep-cards\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Sweep cards</a>).</li>
661
+ <li><strong>Plots</strong> you have saved, sweeps included (see <a href="#plots" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'plots\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Plots</a> and <a href="#sweep-cards" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'sweep-cards\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Sweep cards</a>), and <strong>New plot\u2026</strong> and <strong>New sweep\u2026</strong>.</li>
662
+ <li><strong>Dies</strong> and <strong>Test statistics</strong> \u2014 the same tables as Insights&#39; Data tab (see
663
+ <a href="#data-tables" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'data-tables\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Data tables</a>), over just these dies: every die as a row, or the
664
+ Test Values and Functional Tests tables. Each has Export CSV and Copy, and a
665
+ saved file carries the population (&quot;selected on W03&quot;) in its name and in a
666
+ Wafer column, so it cannot be mistaken for the whole lot.</li>
605
667
  </ul>
606
668
  <p>What every chart opened this way does:</p>
607
669
  <ul>
@@ -616,15 +678,15 @@ with the reason \u2014 for instance when none of the dies has values for its tes
616
678
  or when the map is a lot stack, whose dies are averages across wafers rather
617
679
  than measured dies.</li>
618
680
  </ul>
619
- <p>A map with only bin data and no sweeps has nothing to chart, and right-click
620
- there does what it normally does.</p>
681
+ <p>A map with only bin data has no charts to draw, but its menu still opens with
682
+ <strong>Dies</strong>: the selected dies, or the whole wafer, as a table.</p>
621
683
  <hr>
622
684
  <h2 id="5-findings-panel">5. Findings panel</h2>
623
685
  <p>When spatial analysis has been run, the <strong>Findings</strong> panel lists statistically
624
686
  detected patterns on the wafer. Open it from the toolbar.</p>
625
687
  <p>Each finding shows:</p>
626
688
  <ul>
627
- <li><strong>Severity</strong> \u2014 Unusual, Notable, or Info (ordered most to least significant)</li>
689
+ <li><strong>Severity</strong> \u2014 Unusual, Notable, or Minor (ordered most to least significant)</li>
628
690
  <li><strong>Description</strong> \u2014 plain-language summary of what was detected and where</li>
629
691
  <li><strong>Click to highlight</strong> \u2014 clicking a finding fades the rest of the wafer and outlines the
630
692
  affected dies. A finding about a bin also filters the legend to that bin, so the legend
@@ -689,7 +751,8 @@ supporting detail.</p>
689
751
  <h2 id="6-summary-panel">6. Summary panel</h2>
690
752
  <p>The Summary panel docks next to the map and gives you the wafer or lot at a
691
753
  glance, with findings sitting directly under the headline numbers so a clicked
692
- finding can highlight the affected dies right there. Open it from the toolbar.</p>
754
+ finding can highlight the affected dies right there. Open it from the toolbar, or from
755
+ the <strong>Summary</strong> tab on the edge of the map area, which shows while the panel is closed.</p>
693
756
  <div data-wmap-demo="summary-panel" class="wmap-demo"></div><p><em>The Summary panel open alongside a single wafer. Click any finding to
694
757
  highlight the affected dies.</em></p>
695
758
  <p>Sections, top to bottom:</p>
@@ -698,31 +761,57 @@ highlight the affected dies.</em></p>
698
761
  panel is computed over. For several wafers the heading names them: <strong>Lot
699
762
  LOT123 \xB7 13 wafers</strong> when every wafer comes from that one lot, otherwise
700
763
  <strong>26 wafers from 2 lots</strong> (or just <strong>13 wafers</strong> when the data records no lot).
701
- The panel only says &quot;lot&quot; when it really is one lot. &quot;Mean wafer yield&quot; is an
764
+ The panel only says &quot;lot&quot; when it really is one lot. &quot;Mean per-wafer yield&quot; is an
702
765
  <em>unweighted</em> mean of each wafer&#39;s own yield; it is deliberately not the same
703
766
  statistic as the bin breakdown&#39;s pass-bin share, which weights every die
704
767
  equally. The two agree only when die counts are even across the wafers.</li>
705
- <li><strong>Findings</strong> \u2014 detected anomalies, most severe first. Severity chips narrow
768
+ <li><strong>What stands out</strong> \u2014 the headline (the yield, and for a lot its spread across
769
+ wafers), then the items ranked by how many dies each costs: the largest in a tinted
770
+ box with its full sentence, the others as a compact list (impact, name, and share of the dies).
771
+ Anything costing less than 1% of the dies is left to the findings list. A line says what
772
+ was compared. An item names a region, a wafer or a test and, for a region, the failing bins that make up
773
+ its shortfall; a test is an item when it is outside its limits (or a functional test
774
+ fails) on a share of the dies that clears the same floor. Its three dots and word (High, Moderate or Low impact) say how
775
+ much of the lot it costs: the higher of its share of all the dies (2% moderate, 4% high)
776
+ and its share of the dies that fail (15% moderate, 40% high), so a small area that is most
777
+ of a good lot&#39;s loss still reads as high. Click a name to highlight that finding on the map.
778
+ A <strong>Watch</strong> line (at most two) follows for things that cost no dies yet: a lot of five or more
779
+ wafers whose yield, or a test&#39;s mean, trends up or down across the wafers <em>in the order given</em>
780
+ (said as &quot;input order&quot;: the order is only a physical one if you know it is), and a test whose
781
+ Ppk against its limits is under 1.0.
782
+ A wafer or lot with nothing over a yield point says so: &quot;Nothing stands out&quot;.
783
+ The reports open with the same section, and <strong>Full report</strong> at the foot of it opens the
784
+ report; in a report opened from the panel, clicking a finding&#39;s row shows it on the map.</li>
785
+ <li><strong>Findings</strong> \u2014 detected anomalies, most severe first, each group marked with
786
+ three dots filled by severity (Unusual, Notable, Minor). Severity chips narrow
706
787
  the list; Kind and Region dropdowns appear once there are enough findings to
707
- be worth narrowing.</li>
788
+ be worth narrowing. <strong>Detail</strong> opens the same sentences above a readable list.</li>
708
789
  <li><strong>Bin breakdown</strong> \u2014 bars as a share of dies, pass bins first and then failing
709
790
  bins by descending count, so the dominant failure mode is at the top. It
710
791
  follows the map&#39;s plot mode: a soft-bin map gets a soft-bin breakdown. When a
711
792
  wafer carries both bin types, a <strong>Hard / Soft</strong> selector in the section header
712
793
  overrides that.</li>
713
794
  <li><strong>Region yield</strong> \u2014 ring yield by default, with a <strong>Ring / Quadrant</strong> selector.
795
+ Each row prints its difference from the wafer&#39;s yield in points and is tinted
796
+ when it is 1, 2 or 4 or more points below it (nothing above is tinted).
714
797
  Ring is the default because edge roll-off is the pattern that dominates real
715
798
  wafer maps; a genuinely asymmetric quadrant is reported as a finding above,
716
799
  with a significance test behind it.</li>
717
800
  <li><strong>Wafer yield</strong> (several wafers only) \u2014 one bar per wafer with the median
718
- marked. Wafers are in slot order by default, since that is what makes a
801
+ marked, each row&#39;s difference from the median in points, and a tint when it is
802
+ 1, 2 or 4 or more points below it. Wafers are in slot order by default, since that is what makes a
719
803
  slot-correlated pattern visible; a <strong>Slot / Yield</strong> selector re-sorts. Wafers
720
- far below the rest are labelled &quot;low outlier&quot;.</li>
804
+ well below or above the rest are labelled &quot;low outlier&quot; or &quot;high outlier&quot;
805
+ (3 or more wafers, and at least 3 points from the median \u2014 the same rule as the
806
+ outlier-wafer findings).</li>
721
807
  <li><strong>Test values</strong> \u2014 per test: mean, <strong>Ppk</strong>, and limit yield. Ppk (not Cpk)
722
808
  because it measures against the <em>overall</em> spread, including wafer-to-wafer
723
809
  variation, which is what the dies actually ship against. The full descriptive
724
810
  statistics \u2014 min, quartiles, median, max, \u03C3, both test limits, and all four
725
- capability indices \u2014 are in the summary report and the CSV export.</li>
811
+ capability indices \u2014 are in the CSV export, and the wafer summary report shows
812
+ N, min, quartiles, median, mean, max, \u03C3 and limit yield (a lot&#39;s report has N, min, mean,
813
+ max, \u03C3 and limit yield: quartiles cannot be combined from each wafer&#39;s own). Both reports
814
+ also carry the full Cp, Cpk, Pp and Ppk table.</li>
726
815
  <li><strong>Functional tests</strong> \u2014 pass/fail counts and pass rate per functional test.</li>
727
816
  </ul>
728
817
  <p>Every section header can be collapsed, and stays collapsed as the panel
@@ -730,7 +819,14 @@ re-renders.</p>
730
819
  <p>A <strong>Summary report</strong> button (when present) opens a printable full-detail
731
820
  report \u2014 yield, bin breakdown, ring and quadrant statistics, the full per-test
732
821
  table with Cp/Cpk/Pp/Ppk, and the findings list \u2014 and can be saved as a PDF
733
- from your browser&#39;s print dialog.</p>
822
+ from your browser&#39;s print dialog. It opens with <strong>What stands out</strong>: the yield,
823
+ up to three regions, fail bins or wafers ranked by how many dies each costs, and a
824
+ line saying what was compared. An item is listed only when it costs at least one
825
+ yield point of the dies analysed; a lot with none says so. Each figure links to its
826
+ row in the Findings table below. Severity is drawn as three dots and a word, so it reads in a
827
+ black-and-white print; yields carry a bar, and a wafer or region is tinted only when it is
828
+ at least a point below the rest.</p>
829
+ <p>A <strong>Data tables</strong> button beside it opens the same tables as Insights&#39; Data tab (<a href="#data-tables" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'data-tables\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Data tables</a>) over this wafer, or over the whole lot in a gallery: Statistics, every die, and, for a lot, one row per wafer \u2014 each with Export CSV and Copy. It does not need Insights to be switched on.</p>
734
830
  <h3 id="why-some-findings-name-two-bins">Why some findings name two bins</h3>
735
831
  <p>A finding may read <strong>&quot;hard bin and soft bin 3 (Fail) (same dies)&quot;</strong>. That is one
736
832
  group of dies counted in two bin spaces, not two separate groups added together.
@@ -824,9 +920,9 @@ across all wafers in the gallery.</p>
824
920
  bin 1 (Pass) or bin 2 (Fail) at that location.</em></p>
825
921
  <hr>
826
922
  <h2 id="8-insights-tab">8. Insights tab</h2>
827
- <p>The <strong>Insights</strong> toolbar button (single map or gallery) swaps the wafer view
828
- for a chart suite computed from the same die data \u2014 without leaving the
829
- toolbar. Click it again to return to the map. Independent of the Findings
923
+ <p>The <strong>Insights</strong> side of the <strong>Maps | Insights</strong> switch (at the far right of the toolbar row, single map or
924
+ gallery) swaps the wafer view for a chart suite computed from the same die data \u2014 without leaving the
925
+ toolbar. Choose <strong>Maps</strong> to return to the map; the switch stays where it is. Independent of the Findings
830
926
  sidebar (Section 6) \u2014 the two toggle independently, and opening one never
831
927
  hides the other&#39;s toolbar button, since Findings has nothing to highlight
832
928
  against once the map is replaced.</p>
@@ -834,8 +930,9 @@ against once the map is replaced.</p>
834
930
  <em>Test value distribution</em>, a point in <em>Wafer-to-wafer trend</em> \u2014 can be
835
931
  right-clicked to chart that wafer on its own (see
836
932
  <a href="#44-charting-dies-and-wafers" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'44-charting-dies-and-wafers\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Section 4.4</a>); its tooltip says so.</p>
837
- <p>Insights is organised into three sub-tabs, plus a fourth, <strong>Sweeps</strong>, when
838
- the application has defined any sweeps (see <em>Sweep cards</em> below):</p>
933
+ <p>Insights is organised into three chart sub-tabs, a <strong>Data</strong> sub-tab holding the
934
+ same numbers as tables (see <em>Data tables</em> below), and a <strong>Plot</strong> sub-tab for your
935
+ own charts and sweeps (see <em>Plots</em> and <em>Sweep cards</em> below):</p>
839
936
  <ul>
840
937
  <li><p><strong>Overview</strong> \u2014 a <strong>test pass rate</strong> chart showing which test fails most (and,
841
938
  with &quot;Group by&quot; active, whether it fails more in one split than another). It
@@ -849,7 +946,7 @@ picking one for you. Alongside it, headline tiles stating the population (wafers
849
946
  and for a lot the mean wafer yield \u2014 an <em>unweighted</em> mean of each wafer&#39;s own
850
947
  yield, not the die-weighted figure), a yield bar labelled with the pass bins
851
948
  actually in use and marked with the median, a hard/soft bin pareto, and
852
- ring/quadrant regional yield plus the full per-test statistics table.</p>
949
+ ring/quadrant regional yield.</p>
853
950
  </li>
854
951
  <li><p><strong>Distributions</strong> \u2014 process capability (Cp/Cpk/Pp/Ppk for tests with both a
855
952
  lower and upper limit \u2014 spec limits where given, otherwise test limits; tests
@@ -891,7 +988,12 @@ offer one.</p>
891
988
  <li><p><strong>Correlation</strong> \u2014 a test-to-test correlation matrix and a die-level scatter
892
989
  plot, both stating the sample size the coefficients are computed over.
893
990
  Clicking a matrix cell drives the scatter plot onto that pair, where <code>r</code> and
894
- <code>n</code> for that pair are printed and update as you filter the legend.</p>
991
+ <code>n</code> for that pair are printed and update as you filter the legend. Hover a
992
+ point to see which wafer and die it is; <strong>click</strong> it to open that wafer on the
993
+ X test. <strong>Drag</strong> a rectangle over the plot to select the dies inside it \u2014 across
994
+ as many wafers as they fall on \u2014 and a menu opens with charts and tables of
995
+ just those dies (see <a href="#44-charting-dies-and-wafers" onclick="(function(e){e.preventDefault();var g=e.target.closest('.wmap-guide');var el=g&&g.querySelector('[id=\\'44-charting-dies-and-wafers\\']');if(el)el.scrollIntoView({behavior:'smooth'});})(event)">Section 4.4</a>). The
996
+ selection stays ringed until you change the X or Y test or click empty space.</p>
895
997
  </li>
896
998
  </ul>
897
999
  <p>In a gallery with more than one wafer, a <strong>Group by</strong> control appears whenever
@@ -902,15 +1004,11 @@ Histogram, correlation, and scatter also offer a <strong>Wafer</strong> picker t
902
1004
  from &quot;all wafers pooled&quot; down to one wafer at a time. Clicking a yield bar or
903
1005
  box-plot row for one wafer opens that wafer&#39;s own map \u2014 a box-plot click opens
904
1006
  directly on the test you were looking at.</p>
905
- <div data-wmap-demo="analysis" class="wmap-demo"></div><p><em>Insights tab open on a single wafer, Overview sub-tab: yield and bin pareto,
906
- ring/quadrant yield, and per-test statistics \u2014 all computed from this wafer&#39;s
907
- own dies. The Distributions sub-tab has process capability, a test-value box
1007
+ <div data-wmap-demo="analysis" class="wmap-demo"></div><p><em>Insights tab open on a single wafer, Overview sub-tab: yield and bin pareto and
1008
+ ring/quadrant yield \u2014 all computed from this wafer&#39;s own dies. The Distributions sub-tab has process capability, a test-value box
908
1009
  plot and histogram; Correlation has a correlation matrix with scatter plot.
909
1010
  In a gallery, Overview also gains a &quot;Group by&quot; control and per-wafer
910
1011
  yield/box-plot rows.</em></p>
911
- <p><em>Gallery Insights, Overview sub-tab: lot-wide yield by wafer (click a bar to
912
- open that wafer&#39;s map), hard/soft bin pareto, ring and quadrant yield, and
913
- pooled per-test statistics. The &quot;\u2039 Gallery&quot; tab returns to the card grid.</em></p>
914
1012
  <p><em>Distributions sub-tab: process capability (coloured by Ppk \u2014 green capable,
915
1013
  orange marginal, red poor; tests without limits are muted and dashed), a
916
1014
  per-wafer test-value box plot, and a value histogram. Clicking a capability
@@ -919,9 +1017,242 @@ box drives the box plot and histogram onto that test.</em></p>
919
1017
  positive, orange = negative; intensity = strength) and a die-level scatter
920
1018
  plot coloured by hard bin. Clicking a matrix cell drives the scatter plot
921
1019
  onto that pair.</em></p>
1020
+ <h3 id="what-a-click-does">What a click does</h3>
1021
+ <p>Every mark on an Insights chart stands for something, and a click opens it:</p>
1022
+ <table>
1023
+ <thead>
1024
+ <tr>
1025
+ <th>Click</th>
1026
+ <th>Opens</th>
1027
+ </tr>
1028
+ </thead>
1029
+ <tbody><tr>
1030
+ <td>A wafer&#39;s bar, box or point (Yield by wafer, the box plot, the trend, the scatter, a Plot-tab chart)</td>
1031
+ <td>that wafer&#39;s map, on the test the chart is about (the bins, for Yield by wafer)</td>
1032
+ </tr>
1033
+ <tr>
1034
+ <td>A <strong>bin</strong> in the bin pareto (or a sub-bar of the grouped one)</td>
1035
+ <td>the right-click menu on the dies in that bin</td>
1036
+ </tr>
1037
+ <tr>
1038
+ <td>A <strong>test</strong> in a pass-rate chart</td>
1039
+ <td>the menu on the dies that fail that test, judged as the card is</td>
1040
+ </tr>
1041
+ <tr>
1042
+ <td>A bar of the <strong>value histogram</strong> (with Group by on, a column of it)</td>
1043
+ <td>the menu on the dies whose values fall in that bar, across the groups, or in the one group the legend has emphasised</td>
1044
+ </tr>
1045
+ <tr>
1046
+ <td>A level of a <strong>sweep</strong> curve</td>
1047
+ <td>the menu on the dies measured at that level</td>
1048
+ </tr>
1049
+ <tr>
1050
+ <td>A <strong>drag</strong> across the wafer-to-wafer <strong>trend</strong></td>
1051
+ <td>the menu on the dies of the wafers whose points the drag crossed (a click on a point still opens that wafer)</td>
1052
+ </tr>
1053
+ <tr>
1054
+ <td>A <strong>ring</strong> or <strong>quadrant</strong> of the yield diagrams</td>
1055
+ <td>the menu on the dies it counts</td>
1056
+ </tr>
1057
+ <tr>
1058
+ <td>A cell of the correlation matrix</td>
1059
+ <td>that pair in the scatter</td>
1060
+ </tr>
1061
+ <tr>
1062
+ <td>A test in the process-capability chart</td>
1063
+ <td>that test in the other distribution charts</td>
1064
+ </tr>
1065
+ <tr>
1066
+ <td>A row of the <strong>Wafers</strong> table</td>
1067
+ <td>that wafer&#39;s map</td>
1068
+ </tr>
1069
+ <tr>
1070
+ <td>A row of the <strong>Dies</strong> table</td>
1071
+ <td>that die, ringed on its wafer&#39;s map</td>
1072
+ </tr>
1073
+ </tbody></table>
1074
+ <p>The menu offers the charts and tables for just those dies (and your own plots), and its heading names
1075
+ them, for example &quot;412 dies in hard bin 3, across 13 wafers&quot;. A mark that has no dies behind it does nothing.
1076
+ Right-click on any wafer&#39;s bar, box or point opens the same menu for the whole wafer.</p>
1077
+ <h3 id="data-tables">Data tables</h3>
1078
+ <p>The <strong>Data</strong> sub-tab shows the wafers Insights is scoped to as tables, one at a
1079
+ time, chosen with the <strong>Statistics | Dies | Wafers</strong> control. It follows the
1080
+ same &quot;Group by&quot; and &quot;Show&quot; scope as the charts.</p>
1081
+ <ul>
1082
+ <li><strong>Statistics</strong> \u2014 the <strong>Test Values</strong> table (count, min, quartiles, mean, \u03C3,
1083
+ Ppk, limits and the limit yield for each test, with its N stated) and the
1084
+ <strong>Functional Tests</strong> pass-rate table. With &quot;Group by&quot; active there is one set
1085
+ per group.</li>
1086
+ <li><strong>Dies</strong> \u2014 one row per die: wafer, X, Y, ring, quadrant, site, bins, a column
1087
+ for each test, and the wafer&#39;s metadata. Only the rows in view are drawn, so a
1088
+ lot of hundreds of thousands of dies scrolls smoothly. Click a column heading
1089
+ to sort by it (again to reverse; a die with no value sorts last).</li>
1090
+ <li><strong>Wafers</strong> \u2014 one row per wafer: lot, split and any other metadata, the die
1091
+ counts, the yield (the same figure as the yield chart), and the mean of each
1092
+ test (the first 50).</li>
1093
+ </ul>
1094
+ <p>In the Dies table, <strong>click a row</strong> to show that die on its map: the table steps
1095
+ aside (or Insights closes) and the die is ringed, on its own card in a gallery. The
1096
+ ring goes with the next click on the map, or Esc.</p>
1097
+ <p><strong>Export CSV</strong> saves the table as shown, in the order shown. Numbers are written
1098
+ in full, as plain numbers, not as the formatted text on screen (<code>0.5123457</code>, not
1099
+ <code>512 mV</code>), with the unit in the column heading. <strong>Copy</strong> puts the table on the
1100
+ clipboard as tab-separated text, ready to paste into a spreadsheet; it is offered
1101
+ for tables up to about 200,000 cells. For the Dies table, <strong>Export format</strong> (Wide | Long) chooses
1102
+ the layout of the file: wide has a column per test, long has a row per die per
1103
+ test (a die with no result for a test has no row), the shape statistics tools
1104
+ prefer. The note under the buttons says how many rows the file will have, and
1105
+ warns when that is more than a spreadsheet can open (1,048,576).</p>
1106
+ <h3 id="plots">Plots</h3>
1107
+ <p>The <strong>Plot</strong> sub-tab is where you build your own charts. <strong>+ New plot</strong> starts one,
1108
+ already filled in with the first two tests of the lot, and opens it beside a large
1109
+ copy of the chart. <strong>Add examples</strong> draws one plot of each chart type the lot can
1110
+ show (a scatter of the first two tests, a histogram, a box, a bar of yield by the
1111
+ first lot field that divides the wafers, a line over wafer order, and a sweep of the
1112
+ first tests in test order), to start from
1113
+ or to see what each type is for; pressing it again adds only what is missing. Every change you make there is drawn at once; there is no Apply
1114
+ button, and the plot is kept as you go.</p>
1115
+ <p>In <strong>Setup</strong>, choose the <strong>chart type</strong>, then the field for each role:</p>
1116
+ <table>
1117
+ <thead>
1118
+ <tr>
1119
+ <th>Chart type</th>
1120
+ <th>What it shows</th>
1121
+ <th>Fields</th>
1122
+ </tr>
1123
+ </thead>
1124
+ <tbody><tr>
1125
+ <td><strong>Scatter</strong></td>
1126
+ <td>one point per die (or per wafer)</td>
1127
+ <td>X and Y, both numbers</td>
1128
+ </tr>
1129
+ <tr>
1130
+ <td><strong>Histogram</strong></td>
1131
+ <td>how often each value occurs</td>
1132
+ <td>the values</td>
1133
+ </tr>
1134
+ <tr>
1135
+ <td><strong>Box</strong></td>
1136
+ <td>quartiles, with whiskers to the minimum and maximum, for each category</td>
1137
+ <td>categories (wafer by default), values</td>
1138
+ </tr>
1139
+ <tr>
1140
+ <td><strong>Bar</strong></td>
1141
+ <td>one aggregated value for each category (or a count)</td>
1142
+ <td>categories, values (optional), how to combine them</td>
1143
+ </tr>
1144
+ <tr>
1145
+ <td><strong>Line</strong></td>
1146
+ <td>one aggregated value at each X, joined</td>
1147
+ <td>X, Y, how to combine them</td>
1148
+ </tr>
1149
+ </tbody></table>
1150
+ <ul>
1151
+ <li><strong>X axis</strong> and <strong>Y axis</strong> (a histogram has one <strong>Values</strong> field; a box or bar has
1152
+ <strong>Categories</strong> instead of a numeric X). Any measured test, a die&#39;s X or Y position,
1153
+ a wafer&#39;s yield or die count, or a lot field with numbers in it (slot, temperature).
1154
+ The list is grouped Tests \xB7 Die \xB7 Wafer and filters by name or test number, so with
1155
+ a few hundred tests you type <code>1050</code> or <code>vth</code> rather than scrolling. A field the chart
1156
+ type cannot use is not offered; switching type keeps your fields where they still
1157
+ apply and brings back the ones that did not when you switch back.</li>
1158
+ <li><strong>Colour</strong>: a category such as wafer, split, hard bin, site or ring, or, on a
1159
+ scatter, a measured value or wafer figure drawn on a gradient (a colour bar under
1160
+ the title states its range). <strong>Follow Group by</strong> (the default) takes the colours from
1161
+ the Group by control above, so changing it recolours every plot that follows it;
1162
+ <strong>None</strong> draws one colour.</li>
1163
+ <li><strong>Combine values by</strong> (bar and line, and any plot with one mark per wafer): mean,
1164
+ median, minimum, maximum, sum or count. <strong>Pooled yield</strong> is offered for Yield: it is
1165
+ the passing dies over the judged dies of all the wafers in a bar, not an average of
1166
+ their percentages (the plain mean of Yield is the mean of per-wafer yields, and is
1167
+ labelled so).</li>
1168
+ <li><strong>One mark per</strong>: Automatic uses the finest level the fields allow. <strong>Wafer</strong> makes
1169
+ every mark a wafer, combining its dies&#39; values as chosen above, which is how &quot;mean
1170
+ Idsat per wafer against slot&quot; is drawn. Yield can be split by a per-die field
1171
+ (ring, quadrant, bin, die position) in a <strong>bar</strong> (pooled yield per ring) or a <strong>line</strong>, which take the pass verdict of each die; a box,
1172
+ scatter or histogram of yield cannot, and says why.</li>
1173
+ </ul>
1174
+ <p>When fields do not go together, the list says so before you choose: a field that would leave a plot that cannot be
1175
+ drawn is dimmed in the <strong>X</strong>, <strong>Y</strong> and <strong>Colour</strong> lists with the reason after it, and does nothing when picked. A plot
1176
+ that cannot be drawn says in words what is wrong and what to use instead.</p>
1177
+ <p>In <strong>Customise</strong>, the <strong>title</strong> and each <strong>axis title</strong> are written for you until
1178
+ you type your own (the box shows what it would say, and clearing it brings that
1179
+ back). If you type a title and later change the fields, the plot says when the title
1180
+ still names a test it no longer shows, or names only one of the two it does, with a
1181
+ button to go back to the automatic title; a title that names none of the fields (&quot;Process
1182
+ check&quot;) is yours and is left alone. Each axis can have a <strong>minimum</strong>, a <strong>maximum</strong>, a <strong>log scale</strong> (offered
1183
+ whatever the values, but it stays linear, and says so, if any value is zero or
1184
+ negative) and <strong>reverse direction</strong>. A histogram also has a number of <strong>bins</strong>. A category axis has a title only.</p>
1185
+ <p>When a plotted test has limits they are drawn as dashed lines on the axis that measures it (a histogram&#39;s values, a scatter&#39;s X or
1186
+ Y, a box, bar or line&#39;s values when they are measured values or their mean, median, minimum or maximum): short dashes for the
1187
+ test&#39;s own limits, long for its specification limits, each labelled with its value. The axis widens to include them when that
1188
+ leaves the data at least a third of it, as in Insights, and a limit off the edge is marked there instead of vanishing. Choose
1189
+ which are drawn under <strong>Limits</strong> in Customise. Where the wafers in view disagree about a test&#39;s limits none are drawn, as in
1190
+ Insights: the reconciled test list drops conflicting limits.</p>
1191
+ <p>Under every plot is a line stating what it shows: the wafers and dies, how values
1192
+ were combined (&quot;median of Vth per wafer&quot;), and how many dies were left out for
1193
+ having no value (&quot;12 dies without Idsat not plotted&quot;). A plot never drops a die
1194
+ without saying so.</p>
1195
+ <p><strong>Hover</strong> a point, bar, box or line to see its values and how many dies or wafers it
1196
+ stands for. <strong>Click</strong> a point (or a wafer&#39;s bar or box) to open that wafer, on the plot&#39;s own
1197
+ test, so its map shows the values the plot is about and not the bins (a plot with no test in it,
1198
+ like yield against wafer order, opens the default map). Click any other bar, box, histogram bar or
1199
+ line point to open the right-click menu on the dies it counts, and <strong>drag</strong> a rectangle over a
1200
+ scatter to select the dies (or wafers) inside it. The selection opens the same
1201
+ right-click menu as on a map, so a few dies from a plot can be charted and tabulated
1202
+ in turn.</p>
1203
+ <p><strong>Keeping your plots.</strong> A plot is a recipe, not a picture: it says which fields go
1204
+ where, and nothing about which wafers. It is therefore kept by your application
1205
+ between sessions and drawn again on the next lot. If you open a lot that lacks a
1206
+ test a plot needs, the plot stays in the list, dimmed, with the reason (&quot;Needs test
1207
+ 3001 (Leak), which is not in these dies&quot;); it is not removed. <strong>Export plots\u2026</strong>
1208
+ writes them all to a file, and <strong>Import plots\u2026</strong> adds the plots of such a file to
1209
+ yours, as copies where a plot with the same identity already exists, never
1210
+ replacing one. Each card has <strong>Edit</strong>, <strong>Duplicate</strong> and <strong>Delete</strong>; a deleted plot
1211
+ can be restored with <strong>Undo</strong> for ten seconds. <strong>Delete all plots\u2026</strong> removes every
1212
+ plot, sweeps included, after asking you to confirm (the question says how many, and
1213
+ that <strong>Export plots\u2026</strong> first keeps a copy); <strong>Undo</strong> restores the whole list for ten
1214
+ seconds. It is dimmed while there are no plots.</p>
1215
+ <p><strong>Three different ways to divide the data, kept apart.</strong> A plot divides data in
1216
+ three places, and they do different jobs, so neighbouring plots can ask different
1217
+ questions:</p>
1218
+ <table>
1219
+ <thead>
1220
+ <tr>
1221
+ <th>What it decides</th>
1222
+ <th>Where</th>
1223
+ <th>Kept with the plot?</th>
1224
+ </tr>
1225
+ </thead>
1226
+ <tbody><tr>
1227
+ <td>The categories on an axis</td>
1228
+ <td>the plot&#39;s own <strong>X</strong> field</td>
1229
+ <td>yes</td>
1230
+ </tr>
1231
+ <tr>
1232
+ <td>The colour series within it</td>
1233
+ <td>the plot&#39;s own <strong>Colour</strong> field</td>
1234
+ <td>yes</td>
1235
+ </tr>
1236
+ <tr>
1237
+ <td>Which wafers are in view</td>
1238
+ <td>the <strong>Show</strong> control above</td>
1239
+ <td>no, it is the scope</td>
1240
+ </tr>
1241
+ </tbody></table>
1242
+ <p><strong>Plots in the right-click menu.</strong> Every saved plot is also a row in the menu that
1243
+ opens on a selection or a wafer (<strong>Plots</strong> section), drawn over just those dies and
1244
+ captioned with them.</p>
1245
+ <p><img src="images/guide-plot-drilldown.png" alt="The right-click menu on a selection, with the Plots section"> <strong>New plot\u2026</strong> and <strong>New sweep\u2026</strong> in the same menu start a draft on the selection;
1246
+ a draft is kept only if you press <strong>Add to my plots</strong>.</p>
1247
+ <p>Every change is kept as you make it. If you make a mistake, <strong>Reset</strong> (under the settings) puts the plot back as it was
1248
+ when you opened the editor, and <strong>Cancel</strong> does the same and closes it. Closing the window with its own button keeps what
1249
+ you changed.</p>
922
1250
  <h3 id="sweep-cards">Sweep cards</h3>
923
- <p>A <strong>sweep</strong> appears in its own <strong>Sweeps</strong> sub-tab when your application has
924
- defined one. It exists for a test program that measures the same quantity at a
1251
+ <p>A <strong>sweep</strong> is a card on the <strong>Plot</strong> sub-tab, beside your other plots. <strong>+ New
1252
+ sweep</strong> starts one on the first tests of the lot, and <strong>Edit</strong> opens it beside a
1253
+ live copy of the curve. A sweep is kept, duplicated, deleted, exported and
1254
+ imported like any plot, and is offered in the right-click menu&#39;s <strong>Plots</strong>
1255
+ section. It exists for a test program that measures the same quantity at a
925
1256
  series of drive levels and records each level as its own test number \u2014 often one
926
1257
  block sweeping up and another sweeping down. Read one test at a time that is a
927
1258
  row of unrelated distributions; read as a sweep it is a pair of response curves,
@@ -949,6 +1280,23 @@ would read as &quot;they meet here&quot;.</li>
949
1280
  </ul>
950
1281
  <p>Only the <strong>first two</strong> curves are measured. Any further ones are drawn for
951
1282
  context.</p>
1283
+ <p>:
1284
+ test numbers and ranges, such as <code>1010, 1011, 1020..1030</code> (a range means the
1285
+ tests declared between its ends). Then choose where each test&#39;s X comes from:
1286
+ <strong>Test order</strong> (the position in the run, labelled by test), <strong>Values</strong> (one
1287
+ number per test, in the same order) or <strong>From test name</strong> (a pattern such as
1288
+ <code>LRS_STATS_{x}</code>, for programs that record the swept value only in the test
1289
+ text). The editor lists the first few test names with what your pattern reads
1290
+ from each as you type, and <strong>Pattern examples</strong> shows worked ones: <code>@ {x}</code>
1291
+ reads 0.55 from <code>Fmax @ 0.55 V</code>, and <code>-{x}</code> reads 5 from <code>1234-5</code>). Text that is not a test number or a range is flagged under the box,
1292
+ naming the word, and is not applied, so the curve beside it never shows
1293
+ something you did not mean. <strong>+ Add series</strong> adds a curve and <strong>Remove</strong> drops
1294
+ one; the crossing and widths appear once there are two.</p>
1295
+ <p><strong>A sweep remembers what its tests were called.</strong> The editor and <strong>+ New sweep</strong> record each test&#39;s name
1296
+ alongside its number. Open the sweep on a lot where a number now carries a different name (a test program that
1297
+ reuses numbers for other measurements) and that test is not drawn: the card names it, and the crossing and widths
1298
+ are not measured, rather than presenting another quantity as the original curve. Renaming a test in the selector
1299
+ has the same effect. A sweep written by hand, or imported from a file without names, is not checked.</p>
952
1300
  <p><strong>The x axis is the sweep, not the lot</strong> \u2014 that is what distinguishes this card
953
1301
  from the wafer-to-wafer trend, which walks one test across wafers. If the
954
1302
  application supplied the real swept quantity, the axis is in those units (dBm,
@@ -973,8 +1321,18 @@ at the wrong level, which gives a plausible curve and a wrong crossing.</p>
973
1321
  <p>Every chart panel has a <strong>camera</strong> button that saves the current view as a PNG at the displayed
974
1322
  resolution. To get a clean full-resolution render, use the panel&#39;s expand (corner-arrows)
975
1323
  button first to open it in the fullscreen modal, then click the camera button.</p>
976
- <p>The saved image is the chart as shown, on a white background. It carries no title or
977
- context of its own, but its file name identifies the lot, wafers and chart (see below).</p>
1324
+ <p>The saved image is the chart as shown, under a header that says what it is: its <strong>title</strong>,
1325
+ what its controls are set to (<strong>Test: vth_n_mV \xB7 1001</strong>, <strong>Wafer: W03</strong>, <strong>Sort: yield</strong>), the
1326
+ lines the chart states about itself (the population and N, how values were combined, what
1327
+ the box and whiskers mean, how the bars are normalised), and its colour key (the legend, or
1328
+ the colour bar&#39;s name and range). The instructions that only make sense on screen (&quot;click a
1329
+ point to open this wafer&quot;) are left out. A chart on the <strong>Plot</strong> tab carries the line stating
1330
+ its wafers and dies in the same place. The image takes the card&#39;s own background, so a dark
1331
+ theme saves a dark chart. The file name identifies the lot, wafers and chart (see below).</p>
1332
+ <p><strong>Printing.</strong> The dropdowns, toggles and buttons (camera, expand and, on the Plot tab, New
1333
+ plot, Add examples, Import, Export, Delete all, Edit, Duplicate and Delete) are left off the printed page.
1334
+ In their place each chart prints a small block under its title giving the same settings and
1335
+ lines as the saved image, so a printed histogram says which test it is of.</p>
978
1336
  <h3 id="names-of-saved-files">Names of saved files</h3>
979
1337
  <p>Every image and CSV you save is named for what it shows: the lot, then the wafer (or how many
980
1338
  wafers), then the content. For example, <code>LOT123_W05_hard-bin.png</code>, <code>LOT123_W05_die-list.csv</code> or