| V1.9 | 2026-06-11 | Harrison Zumbrun | Percent inputs everywhere; header | The remaining probability inputs are now percent-style for consistency with Risk Calc: Cost Model Max Allowable PFA (2 instead of 0.02) and In-Tolerance Probability (98 instead of 0.98), and Reliability Target / Confidence Level (95 instead of 0.95), each with a visible % suffix; the recompute divides by 100, so the engine still receives the workbook's decimals and no calculated value changed. Saved-session JSONs from V1.8.1 and earlier carry decimals for these four fields and are not auto-migrated (testing-phase break); the autosave key was bumped again. The Morehouse logo in the letterhead now links to mhforce.com, and the subtitle reads simply Morehouse Instrument Company. |
| V1.8.1 | 2026-06-11 | Harrison Zumbrun | Risk Calc layout | Risk Calc tab restructured for a faster what-if loop: the dropdown-driven Specific Risk chart now sits directly beside the Inputs card, with a colored verdict banner (active rule, PASS / POSSIBLE PASS / FAIL, total specific PFA) under the rule selector; charts are paired two-across on desktop and co-located with the tables they illustrate (Guard-Band table beside its stacked bar; UKAS worked example beside the PFA-vs-position curve; TUR-impact beside the PFA sensitivity table). The right-side legends on the Global Risk curves and the two JCGM charts drop to the bottom on narrow screens. The percent inputs' boxes now align with the other input fields. Presentation only - no calculation changes. |
| V1.8 | 2026-06-11 | Harrison Zumbrun | Chart visual parity; percent inputs; workbook comments | Full visual-parity pass over all 9 charts against the workbook's rendered charts (exported from Excel): the Specific Risk chart now uses the workbook's dropdown-driven dynamic title (Q2: the active rule name) and its exact series set and colors (blue PDF; red LSL/USL, gray Nominal, green LAL/UAL limit lines); the Guard Band chart is now the workbook's horizontal stacked bar with the full rule names; the Global Risk distribution chart gained the workbook's red TL/TU limit lines (new D92:G93 marker cells, validated cell-by-cell) and plots the product pdf on its workbook grid; the JCGM risk-curve dash semantics were corrected (RC dashed, RP solid - previously inverted); titles, series names, colors, dash patterns, axis titles, axis bounds (0-55 PFA clamp), legend positions, and percent tick formats now follow the workbook chart definitions throughout. Maximum Allowable Risk (PFA) and In-Tolerance Probability (ITP) are now percent-style inputs (2 / 95 instead of 0.02 / 0.95, with a visible % suffix); the engine still receives the workbook's decimals, so no calculated value changed. Saved-session JSONs from V1.7 and earlier carry decimals for these two fields and are not auto-migrated (testing-phase break); the autosave key was bumped so stale autosaves are not restored. The workbook's cell comments (the red triangles) are now hover help on the Risk Calc and Cost inputs, the Guard-Band method table, and the UKAS worked-example rows. No calculation changes. |
| V1.7 | 2026-06-10 | Harrison Zumbrun | All workbook charts | Added the six workbook charts missing from the port - Risk Calc: Specific Risk PFA vs measurement position, Guard Band Width & Usable Range by Decision Rule, TUR Impact on Measurement Distribution; Method tab: Acceptance Limit Method 5 vs Method 6; JCGM tab: the global-risk-curve and specific-risk-curve charts (the 241-node Simpson integration ported operation-for-operation; Excel's 15-significant-digit fuzzy comparison reproduced at the mask boundary via a new engine helper). All 9 workbook charts are now present, with every underlying data array validated cell-by-cell (248 new cells). |
| V1.6 | 2026-06-10 | Harrison Zumbrun | Authorship; E = mc3 Solutions | Added Dilip Shah - E = mc3 Solutions to the workbook authors: logo in the letterhead and share card, credit in Workbook Metadata and the validation report. No calculation changes. |
| V1.5 | 2026-06-10 | Harrison Zumbrun | SEO head; share card | Added the SEO head block: canonical URL, meta description, Open Graph tags, a descriptive page title, and a favicon (Morehouse compass mark, inlined). No calculation changes. |
| V1.4.2 | 2026-06-10 | Harrison Zumbrun | CSV templates; italic k | Added Download CSV Template buttons next to the Method readings and Cost equipment importers - each template is pre-filled from the current inputs in exactly the format the importer parses, so it round-trips losslessly. Italicized the remaining upright k in the Guard-Band Width by Method (k=2 U) heading. No calculation changes. |
| V1.4.1 | 2026-06-10 | Harrison Zumbrun | Charts on mobile; italic k | Charts now keep a sensible height at every viewport (fixed-height responsive containers with maintainAspectRatio:false - previously the aspect ratio locked at first render and collapsed the charts to ~40 px tall on phones, in every browser). Coverage-factor k italicized everywhere it appears as a symbol (k-value column, Method summaries, the k=2 Subtraction rows, Changes Log). No calculation changes. |
| V1.4 | 2026-06-10 | Harrison Zumbrun | Mobile layout | Responsive fixes for phones: the letterhead wraps (logos centered on one row, title beneath; long subtitle hidden), logos scale down, tab pills and table type tighten, inputs narrow, the guide banner goes full-width, and wide tables scroll horizontally inside their cards instead of stretching the page. No calculation changes. |
| V1.3.1 | 2026-06-10 | Harrison Zumbrun | Guide banner correction | The toolbar banner and the top Explore Further entry now link the Decision Rule Guidance document (the companion guide behind this tool); Start With the End in Mind remains listed as an additional resource. No calculation changes. |
| V1.3 | 2026-06-10 | Harrison Zumbrun | About; resources; guide banner | About This Tool: removed the EndInMind cross-reference and added an Explore Further section (Start With the End in Mind guide, the Quality Magazine decision-rules article, the free Force Calibration eBook, and the Morehouse technical blog). Added a site-wide banner in the toolbar linking the Start With the End in Mind guide. No calculation changes. |
| V1.2 | 2026-06-10 | Harrison Zumbrun | UI; authorship | Moved the title and subtitle into the letterhead, centered between the Morehouse and IndySoft logos; the navigation is now a full-width green strip. Fixed table header/column misalignment on all results tables (the table class name collided with Tailwind's .grid utility, which set display:grid; display:table restored). Workbook authorship corrected: authors Henry Zumbrun (Morehouse Instrument Company) and Greg Cenker (IndySoft); web port by Harrison Zumbrun (Morehouse Instrument Company). No calculation changes. |
| V1.1 | 2026-06-10 | Harrison Zumbrun | Risk Calc sheet complete; tab scenario gates | Ported the last Risk Calc regions: the specific-risk chart scaffolding (D2:E82 measurement-pdf grid, R/S product pdfs, TL/TU/NV/AL markers, P/Q TEXT labels) rendered as a new Specific Risk chart, and the UKAS LAB 48 worked-example table (exact strings incl. the workbook's verdict glyphs). Risk Calc Layer 2 now 957 cells, 593 bit-identical. Added Excel-COM alternate-input scenario gates for Method/Cost/Reliability (layer2_excel_scenarios_tabs.py): 11 scenarios, 2,588 cells, zero failures. |
| V1.0.1 | 2026-06-10 | Harrison Zumbrun | Single-sourcing; verifier pass | Two-independent-verifier adversarial pass (both PASS; each tab's gate confirmed to catch a 1 % corruption). Routed the two UI Dobbert-M sites that match the engine formula through E.dobbertM() (bit-identical; Method 6 keeps its distinct clamped-TUR/no-max variant, documented). Tightened the check_engine.js smoke floor to 1e-12. |
| V1.0 | 2026-06-09 | Harrison Zumbrun | IO layer; all tabs complete | Added the import/export/session layer: per-tab CSV export, CSV import for the Method reading grid and Cost equipment list, session JSON save/load, continuous localStorage autosave, and chart PNG export (graceful offline fallback). Validated by validators/test_io.py (12/12). All six workbook tabs now ported and exactly validated. |
| V0.9 | 2026-06-09 | Harrison Zumbrun | JCGM 106 Validation | Ported the JCGM 106 Validation report tab: the resistor worked-example global risk (PFA_L/PFR_L vs exact analytic vs JCGM published), identity checks, specific-risk example, engine-vs-Risk-Calc identity, and the guard-band-width-vs-TUR risk-curve table. Layer 2 (layer2_jcgm.py): 81 cells, 70 numeric within 1e-12 + 11 string-exact, 69 bit-identical. The 40,000 Halton NORM.S.INV grid samples are covered by Layer 0. |
| V0.8 | 2026-06-09 | Harrison Zumbrun | Guidance Summary | Ported the Guidance Summary reference tab: definitions, ISO 17025 requirements, the 7-method decision-rule comparison, the 3-outcome model, the sizing-rules table with the Required-U = Tolerance/4.6 formulas + custom-sizing input, the selection framework, and the five rules. Layer 2 (layer2_guidance.py): 6/6 sizing cells bit-exact. |
| V0.7 | 2026-06-09 | Harrison Zumbrun | Reliability | Ported the Reliability tab: zero-failure sample size (CEILING(ln(1-conf)/ln(reliability))), Clopper-Pearson exact bounds (BETA.INV), observed EOPR / failure rate, additional-samples-needed (AdditionalSamplesNeeded), the zero-failure reference grid, the EOPR sensitivity grid, and the coverage-factor k table. Layer 2 (layer2_reliability.py): 74 cells, all within 1e-12, 65 bit-identical. |
| V0.6 | 2026-06-09 | Harrison Zumbrun | Cost Model | Ported the Cost Model tab: production inputs, the 7-DMM equipment comparison (guard band sized by PFA_GB_SOLVER_ASYM to the PFA target, global PFA/PFR via PFA_L/PFR_L, ROUND-based false-reject/accept costs), total-cost analysis with budget-vs-baseline and payback, key-insight figures, and cumulative-cost projections. Layer 2 (layer2_cost.py): 192 cells, 173 numeric within 1e-12 + 19 string-exact, 161 bit-identical; the guard-band bisection solver reproduced exactly. |
| V0.5 | 2026-06-09 | Harrison Zumbrun | Method 5 & 6 & TL | Ported the full Method 5 & 6 & TL tab: config + editable 10-point reading grid, per-reading Method 5 (RSS, NORM.INV acceptance) and Method 6 (Dobbert, TUR clamped to 4) tables with summaries, the M5-vs-M6 comparison, and the inlined Method-6 acceptance-limit diagram. Layer 2 (layer2_methods.py): 429 cells, 389 numeric within 1e-12 + 40 string-exact, 374 bit-identical. |
| V0.4 | 2026-06-09 | Harrison Zumbrun | Risk Calc - methods/sensitivity/reference/bias | Added the 7-method Accept-± column, the PFA sensitivity-by-TUR table, the conformance→guard-band-multiplier reference table, and the bias-impact analysis block (all derived from the main inputs). Layer 2 extended to 592 cells, all within 1e-12, 353 bit-identical. |
| V0.3 | 2026-06-09 | Harrison Zumbrun | Risk Calc - curves & charts | Wired the distribution chart-data arrays (A92:A171 product/measurement/biased pdfs) and the Global Risk Curves (PFA vs ITP at TUR 1:1-4.6:1 via PFA_SYMMETRIC); rendered both with Chart.js (graceful offline). Layer 2 extended to 460 cells (44 scalar + 416 array), all within 1e-12, 244 bit-identical. |
| V0.2 | 2026-06-09 | Harrison Zumbrun | Branding | Added the Morehouse and IndySoft logos (extracted from the workbook) as an inlined base64 letterhead in the app header, matching the spreadsheet's top-of-sheet placement. |
| V0.1 | 2026-06-09 | Harrison Zumbrun | Engine, Risk Calc core | v1 scaffold: single-sourced engine on window.DRG (Cephes-grade normal CDF/inverse, incomplete-beta inverse, both bivariate-normal quadratures, the 11 reachable LAMBDAs, Excel-faithful ROUND/INT/CEILING/TEXT); Risk Calc & Curves scalar calculator wired with cell-keyed instrumentation. |