<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Shao-Peng Chen on Medium]]></title>
        <description><![CDATA[Stories by Shao-Peng Chen on Medium]]></description>
        <link>https://medium.com/@shaopp?source=rss-58af2f437be------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*7v8JaZ8Yp17yR3IJ</url>
            <title>Stories by Shao-Peng Chen on Medium</title>
            <link>https://medium.com/@shaopp?source=rss-58af2f437be------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 19:07:22 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@shaopp/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[What the F? (F is for FRACAS)]]></title>
            <link>https://medium.com/@shaopp/what-the-f-f-is-for-fracas-1cc769186fdb?source=rss-58af2f437be------2</link>
            <guid isPermaLink="false">https://medium.com/p/1cc769186fdb</guid>
            <category><![CDATA[reliability-engineering]]></category>
            <dc:creator><![CDATA[Shao-Peng Chen]]></dc:creator>
            <pubDate>Fri, 17 Apr 2026 20:46:39 GMT</pubDate>
            <atom:updated>2026-04-17T20:46:39.935Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/735/0*oYqb1FuPcpiM4VUj.jpg" /><figcaption>source: <a href="https://www.reddit.com/r/memes/comments/7a0gvo/does_it_move/#lightbox">https://www.reddit.com/r/memes/comments/7a0gvo/does_it_move/#lightbox</a></figcaption></figure><p>Failures are everywhere:</p><p>-A robot shuts down in the field.<br>-You miss the bus on your way to work.<br>-Your hip starts hurting right before a volleyball game.</p><p>Some failures are minor. Some are costly. Some are painful — literally.</p><p>The real question isn’t <em>whether</em> failures happen (they always do), but:</p><ul><li>How do we respond when they happen?</li><li>How do we understand <em>why</em> they happened?</li><li>And most importantly, how do we prevent them from happening again?</li></ul><p>That’s where <strong>FRACAS</strong> comes in.</p><h3>What Is FRACAS?</h3><p><strong>FRACAS</strong> stands for <strong>Failure Reporting, Analysis, and Corrective Action System</strong>.</p><p>At its core, FRACAS is a <strong>structured way to deal with real-world failures</strong> — failures that have already happened in the field. It’s not a tool or software by itself, but a <strong>process</strong> that organizations use to:</p><ol><li>Capture failures</li><li>Understand root causes</li><li>Define and implement corrective actions to prevent recurrence</li></ol><p>A key point is: FRACAS focuses on <strong>actual failures</strong>, not hypothetical ones.</p><p>This is what differentiates it from methods like <strong>FMEA (Failure Modes and Effects Analysis)</strong>, which are typically used during design phases to <em>anticipate</em> how a system <em>might</em> fail in the future. FRACAS, on the other hand, starts when reality strikes.</p><p>The ultimate goal of FRACAS is simple:</p><blockquote><strong><em>Reduce repeat failures by learning from what already went wrong.</em></strong></blockquote><h3>The Core Phases of FRACAS</h3><p>Although different organizations may use different terminology, FRACAS generally follows a consistent flow from failure occurrence to resolution.</p><p><strong>1. Failure Occurrence: </strong>Something goes wrong. A system fails. A requirement isn’t met. An expectation is violated. This is the trigger — without a failure, there is no FRACAS.</p><p><strong>2. Immediate Response (Containment): </strong>What do we do <em>right now</em> to: Stop the problem from getting worse? Limit impact to customers, operations, or safety? This step is about <strong>containment</strong>, not root cause.</p><p><strong>3. Failure Analysis:</strong> Now we slow down and ask: What happened? How did it happen? What was the chain of events that led to the failure? This is where root cause analysis lives.</p><p><strong>4. Corrective and Preventive Action: </strong>Based on what we learned, we define actions to: Prevent the same failure from happening again and reduce the likelihood or impact of recurrence</p><p>This is the step that turns failure into learning.</p><h3>FRACAS in Everyday Life</h3><p>Here’s the interesting part: Most of us already <em>use</em> FRACAS in daily life — just informally.</p><h3>Example: Being Late to Work</h3><p><strong>Failure:</strong> I failed to arrive at the office at 8:00 a.m.</p><p><strong>Immediate Response:</strong> I message my manager to let them know I’ll be late.</p><p><strong>Analysis:</strong><br> I missed the bus →<br> because I woke up late →<br> because I stayed up too late the night before.</p><p>That’s a failure event chain.</p><p><strong>Corrective Action: <br>1.</strong>Set an additional alarm. 2. Commit to going to bed before midnight</p><p>That’s FRACAS without the acronym.</p><p>What FRACAS does is <strong>formalize this thinking</strong>, so individuals and organizations do it consistently and systematically.</p><h3>FRACAS in an Industry Context</h3><p>Now let’s look at a simplified industrial example.</p><p><strong>Failure:</strong> A customer reports that a system cannot be powered on.</p><p><strong>Immediate Response: </strong>A Field Service Engineer (FSE) goes on-site and restores functionality by replacing a broken cable. The system works again — but the story shouldn’t end here.</p><p><strong>Failure Analysis:</strong><br> Engineering investigation finds:</p><ul><li>The broken component was an Ethernet cable</li><li>The cable design is prone to mechanical damage in real-world use</li></ul><p><strong>Corrective Action:</strong><br> R&amp;D proposes a design change:</p><ul><li>Use a stronger cable</li><li>Improve strain relief</li><li>Reduce the likelihood of similar field failures in the future</li></ul><p>Now the same failure isn’t just <em>fixed</em> — it’s <strong>less likely to happen again</strong>.</p><p>That’s FRACAS working as intended.</p><h3>Why FRACAS Matters</h3><p>The value of FRACAS isn’t that it defines failures — we already know failures happen.</p><p>Its value is that it provides:</p><ul><li>A <strong>structured, closed-loop process</strong></li><li>A shared language across functions (Service, Quality, R&amp;D)</li><li>A mechanism to convert failures into measurable reliability improvement</li></ul><p>There’s no single universal way to name or implement FRACAS steps, but the core principles remain the same:</p><blockquote><em>Failures should be </em><strong><em>reported</em></strong><em>, </em><strong><em>analyzed</em></strong><em>, and followed by </em><strong><em>meaningful corrective action</em></strong><em>.</em></blockquote><p>When done well, FRACAS isn’t about blaming mistakes — <br> it’s about <strong>learning fast, fixing smart, and failing less often</strong>.</p><p>And honestly, that’s something worth doing — whether you’re designing robots or just trying to catch the bus on time.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1cc769186fdb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Reliability Engineer’s Perspective on a Horrible Physical Therapy Experience]]></title>
            <link>https://medium.com/@shaopp/a-reliability-engineers-perspective-on-a-horrible-physical-therapy-experience-4fce0158a4b8?source=rss-58af2f437be------2</link>
            <guid isPermaLink="false">https://medium.com/p/4fce0158a4b8</guid>
            <category><![CDATA[reliability-engineering]]></category>
            <category><![CDATA[volleyball]]></category>
            <category><![CDATA[physical-therapy]]></category>
            <dc:creator><![CDATA[Shao-Peng Chen]]></dc:creator>
            <pubDate>Fri, 06 Mar 2026 02:51:29 GMT</pubDate>
            <atom:updated>2026-03-06T02:51:29.502Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/778/1*DhHn2ESpy0pYQHOG053Q3w.png" /><figcaption>My hip hurt after this play</figcaption></figure><p>I had a horrible physical therapy (PT) experience — and my background as a reliability engineer helped me understand <em>why</em> it failed.</p><h3>The Problem Statement</h3><p>Since last December, I’ve been dealing with persistent pain along the lateral side of my hip and leg. I’m a volleyball maniac, and this injury hit me both physically and mentally.</p><p>-It hurt every time I jumped.<br>-My vertical dropped.<br>-I subconsciously avoided using full power.<br>-Some nights, the pain was bad enough to wake me up.</p><p>I tried resting for a couple of weeks, hoping it would resolve itself. It didn’t. So I did what most people would do: I searched for an in‑network physical therapist and booked an appointment.</p><p>Because of scheduling delays, I finally saw the PT <strong>one month later</strong>.</p><h3>The Diagnosis (or So I Thought)</h3><p>During the first visit, the PT asked a few questions and ran some range‑of‑motion and strength tests around my right hip joint. Based on that, the conclusion was:</p><ul><li>Limited hip joint space</li><li>Pinching during movement</li><li>Possible scar tissue</li><li>Weak glutes</li></ul><p>The prescription: <strong>High‑rep, low‑load exercises</strong> to “remove scar tissue” and strengthen the glutes. At the time, this sounded reasonable.</p><h3>The Execution</h3><p>Each session followed a similar pattern:</p><ul><li>The PT showed me a few exercises</li><li>Unless it was a brand‑new movement, I was mostly left on my own</li><li>There was very little 1:1 observation or adjustment</li></ul><p>Week after week, I reported the same thing:</p><blockquote><em>“Daily life is mostly fine, but it hurts a lot during and after volleyball — especially jumping.”</em></blockquote><p>I kept going, hoping improvement would eventually show up.</p><p>It didn’t.</p><p>What <em>did</em> show up was the bill:<br> Thanks to my insurance, each visit cost <strong>$80 out of pocket</strong>.</p><p>That’s when I quit.</p><p>And that’s when I got mad.</p><h3>Then I Asked: Why Did It Fail?</h3><p>Once the frustration settled, my reliability engineer brain kicked in.</p><p>Physical therapy, at its core, is <strong>failure investigation and mitigation</strong>. The “system” is the human body. Pain is a failure signal. Treatment is a corrective action.</p><p>And looking back, there were several red flags — very familiar ones. In this specific PT experience,</p><h3>1. The User Profile Was Ignored</h3><p>In reliability engineering, understanding <strong>operating conditions</strong> is fundamental.</p><p>My failure mode occurred during:</p><ul><li>Jumping</li><li>High‑impact</li><li>High‑cycle loading (volleyball)</li></ul><p>Yet:</p><ul><li>My jump mechanics were never assessed</li><li>Single‑leg landing or stabilization was never evaluated</li><li>Fatigue and repetitive stress were not considered</li></ul><p>This is equivalent to analyzing a component failure without ever testing it under its real load profile.</p><h3>2. Module Testing Instead of System‑Level Testing</h3><p>What was tested:</p><ul><li>Local hip strength</li><li>Local range of motion</li></ul><p>What was <em>not</em> tested:</p><ul><li>Kinetic chain behavior</li><li>Ankle stability</li><li>Alignment during dynamic movement</li><li>Load transfer across joints</li></ul><p>In engineering terms, this was <strong>module‑level validation</strong> without <strong>system‑level integration testing</strong>.</p><p>A system can pass every local test and still fail catastrophically in real operation.</p><h3>3. No Failure Event Chain</h3><p>In reliability analysis, we don’t stop at “what broke.” We ask:</p><ul><li>What initiated the failure?</li><li>What propagated it?</li><li>What secondary stresses were introduced?</li></ul><p>There was no clear <strong>failure event chain</strong> built here.</p><p>For example:</p><ul><li>Could lateral hip pain be compensatory?</li><li>Could ankle weakness or alignment issues overload the hip?</li><li>Could asymmetrical landing mechanics be driving fatigue damage?</li></ul><p>Without understanding the chain, corrective actions become guesswork.</p><h3>Final Thoughts</h3><p>This post isn’t about blaming one PT. It’s about recognizing that <strong>methodology matters</strong>, regardless of the domain.</p><p>As reliability engineers, we know:</p><ul><li>Context matters</li><li>Load matters</li><li>Systems matter</li><li>And failures rarely exist in isolation</li></ul><p>When those principles are ignored, even well‑intentioned solutions can fail.</p><p>Ironically, this experience didn’t just teach me about my body — it reinforced why structured failure analysis exists in the first place.</p><p>Sometimes, the problem isn’t lack of effort. It’s lack of system thinking.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4fce0158a4b8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Son of B…ayesian (part 2)]]></title>
            <link>https://medium.com/@shaopp/son-of-b-ayesian-part-2-3e978aa0f204?source=rss-58af2f437be------2</link>
            <guid isPermaLink="false">https://medium.com/p/3e978aa0f204</guid>
            <dc:creator><![CDATA[Shao-Peng Chen]]></dc:creator>
            <pubDate>Fri, 27 Feb 2026 21:59:03 GMT</pubDate>
            <atom:updated>2026-02-27T21:59:03.358Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/776/1*BUXV9IN30Ykto_XatDSqTQ.png" /></figure><p>In the previous article, we walked through the philosophical concept behind Bayesian inference and used a reliability example to show how we can obtain reliability parameters — such as the shape and scale parameters in a Weibull model — from a posterior distribution. In this note, I want to focus a bit more on the <strong>math</strong> behind Bayesian inference.</p><p>This is a self‑therapy article, meant to prove (or at least convince myself) that I’ve finally overcome something.</p><h3>Why this post exists</h3><p>I used to be afraid of this equation:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/975/1*3PrzIA83f8-fVtyljJrWLw.png" /></figure><p>What I struggled with wasn’t Bayesian thinking itself, but Bayesian inference written in <strong>probability density function (PDF) form</strong>.</p><p>In statistics class, a classic Bayesian example is the disease test problem:<br> <em>What is the probability that you are actually sick given a positive COVID test?</em></p><p>That example made sense. It was discrete, intuitive, and easy to reason about. But once things became more complicated: moving from discrete scenarios to <strong>continuous variables</strong>, from probability to <strong>probability density</strong>, from numbers to full distributions. I always felt like something important was missing. Specifically, I couldn’t see clearly where those equations came from, or how they connected back to simple probability ideas. So, I’m going to start from a <strong>basic probability framework</strong>, then carefully move forward into continuous variables and distributions.</p><h3>Bayes’ rule in discrete probability</h3><p>There are already many resources available on the internet explaining the Bayesian inference. Part of the notation, intuition, and geometric interpretation used in this article comes from a YouTube video by <strong>3Blue1Brown</strong>. I strongly recommend watching it first if you’re not already comfortable with Bayesian inference. The video does an excellent job visualizing the relationships between the prior, likelihood, evidence, and posterior using geometry, which makes the notation, graphs, and ideas in this post much easier to follow.</p><p><a href="https://www.youtube.com/watch?v=HZGCoVF3YvM">https://www.youtube.com/watch?v=HZGCoVF3YvM</a></p><p>Here is a short summary of the math</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/752/1*cUOCqWkncSa7_c3dPRM0Gg.png" /></figure><p>For the Steve example, the notation becomes:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/783/1*w9zCutgIn9wlAxrTBdX6KA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/768/1*eyQEM5U-XRsiZcp0re1V9A.png" /></figure><h3>From probability to probability density (one important rule)</h3><p>Before going further, here’s one rule I’ll use throughout this article:</p><p>Even when a variable is continuous, I’ll keep using probability language.</p><p>Whenever I say “the probability that λ equals some value,” what I really mean is: <strong>PDF value × a very small interval</strong></p><p>Mathematically: <em>probability =g(λ)dλ</em></p><p>where <em>g(λ)</em> is the PDF(probability density function) of the variable. With this rule in place, the transition from discrete to continuous becomes much less scary.</p><h3>A Reliability Example</h3><p>Now we can move to a reliability example and face my fear for continuous variables and distributions.</p><p>Suppose we know that the product’s time‑to‑failure follows an exponential distribution, and we have observed two failures: one at 0.3 years and another at 1.2 years.</p><p>The goal here is to understand the <strong>posterior distribution of the failure rate λ</strong>, which is the single parameter in the exponential model. Then we can use it to generate the reliability distribution at given time t.</p><p><em>Note that there are two different distributions involved in this problem: one is the distribution of the parameter λ, and the other is the distribution of time‑to‑failure given λ. More details about this concept can be found in the previous note.</em></p><p>Let’s begin with the probability concept by using the Steve visualization and probability framework. The question we want to answer is:</p><blockquote>what is the probability that the product failure rate is equal to 10/year given 2 time-to-failure samples 0.3 and 1.2 year</blockquote><p>Geometrically, this corresponds to the ratio:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/436/1*htvpN2MYP0-5Z3MOYZxRfw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/942/1*kg1VtUzua0U08sH23aZceg.png" /></figure><h3>Model Assumption</h3><p><strong>H (Hypothesis)</strong>: the product failure rate λ is equal to 10 failures per year</p><p><strong>E (Evidence):</strong> two time‑to‑failure samples, 0.3 and 1.2 years</p><p>We also need some math models to tell us how to determine the fraction of the blue/green and light/dark area. Therefore, we introduce:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1017/1*ahqvCiGL_HjTWjfqJpWB5A.png" /></figure><p>Now we can put the math into the equation:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/975/1*ASm60BfldzjtAiQlWccYAw.png" /></figure><p>Note that for demonstration purposes, the plot shows λ = 1, 2, 3… but since λ is a continuous variable, this is actually the sum for the infinity slice of λ. At the end it can be written as an integral form.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/434/1*7xt3vhuCspjdmyP2ApFx1Q.png" /></figure><h3>Frome Posterior Probability to Posterior Distribution</h3><p>With all the required pieces in place, we can now calculate the probability that the failure rate λ equals 10 given the observed evidence:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/380/1*WK2QXrMI1LPph4uPI9oI6A.png" /></figure><p>Dividing both sides by dλ, we obtain the <strong>posterior PDF value</strong> at λ=10:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/440/1*4jb4SpWmXqSDRpO8UhtIuA.png" /></figure><p>Finally, replacing the specific value<em> λ=10</em> with a general <em>λ</em>, we obtain the <strong>posterior distribution of λ</strong>:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/455/1*iGattn62FMldbrMVOKS8Kw.png" /></figure><p>This expression is exactly the standard Bayesian posterior form: the posterior distribution is proportional to the likelihood multiplied by the prior, with the evidence acting as the normalization constant.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3e978aa0f204" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Son of B…ayesian]]></title>
            <link>https://medium.com/@shaopp/son-of-b-ayesian-d0e08f0e7a62?source=rss-58af2f437be------2</link>
            <guid isPermaLink="false">https://medium.com/p/d0e08f0e7a62</guid>
            <category><![CDATA[bayesian]]></category>
            <category><![CDATA[reliability-engineering]]></category>
            <category><![CDATA[frequentists]]></category>
            <dc:creator><![CDATA[Shao-Peng Chen]]></dc:creator>
            <pubDate>Sat, 31 Jan 2026 22:35:00 GMT</pubDate>
            <atom:updated>2026-01-31T22:37:36.177Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/810/1*1CdBBrpGw4xbkgB7rjqz_w.png" /></figure><p>This article is a note on my understanding of Frequentist and Bayesian.</p><p>For me the Bayesian mindset is:</p><blockquote>We don’t know what the truth looks like, and we can’t access it directly. All we ever have is a belief about uncertainty.</blockquote><p>On the other hand, the Frequentist (the one we are more used to ) mindset is:</p><blockquote>There is a true value out there. Our job is to design procedures that, over repeated experiments, will reliably land close to it.</blockquote><p>The core difference between Bayesian and frequentist inference is less about formulas and more about how we think about truth and uncertainty. They are both a way of reasoning about the world when outcomes vary and information is incomplete.</p><h3>Reliability Example</h3><p>Here is a reliability analysis example to illustrate the difference.</p><p>Suppose we collect 16 time‑to‑failure samples and assume the data follow a Weibull distribution. Our goal is to estimate the shape (beta) and scale (alpha) parameters so that we can calculate the reliability at 50 days.</p><h3>The Frequentist Perspective: An ultimate truth seeker</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yIccZt2rcRIqEYZm3EzV9g.png" /><figcaption>Frequentist Logic Flow</figcaption></figure><p>From a frequentist perspective,</p><ul><li>There exists a true but unknown Weibull shape and scale parameter.</li><li>The observed failure samples are realizations drawn from this true time‑to‑failure distribution.</li><li>Using model‑fitting methods, we obtain estimators of the shape and scale parameters.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/447/1*Yd7ghSiEN024WBt4r4pTGQ.png" /><figcaption>Weibull Analysis Results</figcaption></figure><p>Are these estimators the true values? We do not know. Instead, frequentist statistics use tools such as, variance, covariance ,confidence intervals to describe how well the estimation process would perform if we repeated the experiment many times.</p><p>At the end, we typically obtain a reliability curve with confidence bounds. In this example, at t=50 days: Estimated reliability: 20.6%, 90% confidence interval: [6.3%, 40.5%]</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xBL9VmKXHV3_w1T_vBvpkA.png" /><figcaption>Weibull Plot with Confidence Intervals</figcaption></figure><h3>The Bayesian Perspective: Belief from an observer</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*a_xGOnTpBrIJ9x63ggEf5Q.png" /><figcaption>Bayesian Logic Flow</figcaption></figure><p>In Bayesian inference, everything starts with prior belief.</p><p>Before observing data, we express our belief about the parameters. For example, shape (beta) between 0.1 and 3, scale (alpha) between 0 and 200 days. This belief may be subjective or informed by prior experience.</p><p>Once the 16 time‑to‑failure samples are collected, we combine the prior belief and the observed data and throw them into a Bayesian inference algorithm, such as MCMC (Markov Chain Monte Carlo).</p><p>The output of MCMC is thousands of sampled parameter values for shape and scale. These samples represent the posterior distribution, i.e., our updated belief after seeing the data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RebQwzOk4AmKgRWirz8PXg.png" /><figcaption>Posterior of the Parameters</figcaption></figure><p>To compute reliability at t=50 days, Each posterior sample of shape and scale produces one reliability value. Together, these values form a <strong>posterior distribution of reliability</strong></p><p>From this posterior <strong>reliability</strong> distribution, we can obtain:</p><ul><li>Posterior mean reliability: <strong>17.4%</strong></li><li>90% credible interval: <strong>[5.9%, 32.7%]</strong>, obtained from the 5% and 95% posterior quantiles</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/811/1*iCECgIyqyhrIkjxazk1WlQ.png" /></figure><h3>Two Ways of Thinking About the Same Uncertainty</h3><p>In this example, Both approaches attempt to estimate reliability at t=50 days using the same data:</p><ul><li><strong>Frequentist</strong>:<br> Reliability = 20.6%<br> 90% confidence interval = [6.3%, 40.5%]</li><li><strong>Bayesian</strong>:<br> Reliability = 17.4%<br> 90% credible interval = [5.9%, 32.7%]</li></ul><p>Both provide a point estimate and a range to describe uncertainty. (We are not focused on which number is “correct” because we will never know the true value.) However, their core philosophies for interpreting uncertainty are fundamentally different.</p><ul><li><strong>Frequentist view:</strong><br>A confidence interval represents how often this interval‑construction process can capture the true value if the experiment were repeated many times.</li><li><strong>Bayesian view:</strong><br>A credible interval is based on the posterior distribution and is obtained by taking quantiles (e.g., the 5% and 95% quantiles) of the posterior samples.</li></ul><p>I also made a meme for frequentist. I don’t know where to put it so I will just leave it here.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/812/1*4OL5IIzTRLaki47rzqGzFw.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d0e08f0e7a62" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Just Another Reliability Spreadsheet (JARS)]]></title>
            <link>https://medium.com/@shaopp/just-another-reliability-spreadsheet-jars-28943fb9e06a?source=rss-58af2f437be------2</link>
            <guid isPermaLink="false">https://medium.com/p/28943fb9e06a</guid>
            <category><![CDATA[reliability]]></category>
            <category><![CDATA[reliability-engineering]]></category>
            <dc:creator><![CDATA[Shao-Peng Chen]]></dc:creator>
            <pubDate>Tue, 30 Dec 2025 20:32:10 GMT</pubDate>
            <atom:updated>2025-12-30T20:32:10.568Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8p4WArFITrK_DVYw8JnCbw.png" /><figcaption>Snapshot of JARS</figcaption></figure><p>When it comes to complex systems, reliability isn’t just a metric — it’s a mission-critical requirement. Yet, understanding where and why a system becomes “unreliable” can feel like searching for a needle in a haystack. Enter <strong>JARS (Just Another Reliability Spreadsheet)</strong>: a powerful, Excel-based tool designed to simplify reliability analysis without sacrificing depth.</p><h4>What is JARS?</h4><p>JARS is a structured reliability calculation tool that transforms raw failure data into actionable insights. At its core, it requires two key inputs:</p><ul><li><strong>Failure Modes</strong>: Each component’s potential ways of failing.</li><li><strong>Time-to-Failure Distributions</strong>: Statistical parameters (e.g., Weibull shape and scale) that define how and when failures occur.</li></ul><p>With these inputs, JARS computes <strong>system-level reliability</strong> and allows you to drill down into <strong>subsystem, assembly, and module-level reliability</strong>. This hierarchical approach means you can pinpoint weak links in your design with precision.</p><h4>Why Use JARS?</h4><ul><li><strong>Comprehensive Analysis</strong>: From top-level system reliability to granular failure modes, JARS provides a clear picture of performance.</li><li><strong>Easy Breakdown</strong>: Navigate through subsystems and assemblies effortlessly to identify which part is dragging down overall reliability.</li><li><strong>Data-Driven Decisions</strong>: By highlighting critical failure contributors, JARS empowers engineers to prioritize design improvements and maintenance strategies.</li><li><strong>Cost &amp; Spare Planning</strong>: Beyond reliability, JARS integrates failure resolution cost and spare demand calculations, bridging the gap between engineering and logistics.</li></ul><h4>How It Works</h4><ol><li><strong>Input Your Data</strong>: Populate the spreadsheet with failure modes, Weibull parameters, and expected usage.</li><li><strong>Run Calculations</strong>: JARS computes reliability for each component and aggregates results up the hierarchy.</li><li><strong>Analyze Results</strong>: Visualize system reliability, identify high-risk modules, and plan corrective actions.</li></ol><h4>Who Benefits?</h4><ul><li><strong>Reliability Engineers</strong>: Gain clarity on system weaknesses and optimize design.</li><li><strong>Maintenance Teams</strong>: Forecast spare parts demand and reduce downtime.</li><li><strong>Program Managers</strong>: Make informed decisions on cost, risk, and lifecycle planning.</li></ul><h4>Bottom Line</h4><p>JARS isn’t just another spreadsheet — it’s a strategic tool for anyone serious about reliability engineering. By turning complex reliability modeling into an intuitive process, JARS helps you answer the most important question: <em>What’s making my system unreliable, and how do I fix it?</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=28943fb9e06a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What the F is Going On? (F is for Failure)]]></title>
            <link>https://medium.com/@shaopp/what-the-f-is-going-on-f-is-for-failure-2fcdb335a8a9?source=rss-58af2f437be------2</link>
            <guid isPermaLink="false">https://medium.com/p/2fcdb335a8a9</guid>
            <category><![CDATA[reliability-engineering]]></category>
            <category><![CDATA[reliability]]></category>
            <category><![CDATA[failure]]></category>
            <dc:creator><![CDATA[Shao-Peng Chen]]></dc:creator>
            <pubDate>Fri, 26 Dec 2025 21:57:40 GMT</pubDate>
            <atom:updated>2026-01-19T19:01:25.006Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iipWLMnr8nFtZDzp980Qvw.png" /></figure><h3>My experience</h3><p>When I first studied reliability engineering, one term kept popping up: <strong>“failure mode.”</strong> It was introduced in my very first class. I remember the professor explaining its definition, but honestly, I didn’t pay much attention. Back then, I was more interested in calculations such as fitting Weibull distributions, estimating acceleration factors, and crunching numbers. To me, <strong>failure mode</strong> and <strong>failure mechanism</strong> were just fancy synonyms for “failure.”</p><blockquote>A failure mode is simply any event that causes a functional failure.</blockquote><p>I didn’t realize how critical these terms were until I started my first job as a reliability engineer.</p><p>My first role was working on surgical robots. One of my initial responsibilities was building a <strong>Failure Reporting, Analysis, and Corrective Action System (FRACAS)</strong>, which is like a platform for reporting failures observed during testing, demonstrations, or field use. Essentially, it’s a database for capturing product failure information.</p><p>My task sounded straightforward: extract insights and present findings such as:</p><ul><li>Which components fail most frequently</li><li>What types of failures or root causes are associated with specific components</li><li>Quantitative metrics like failure rates for individual parts</li></ul><p>But reality was different. Failure reports varied wildly:</p><ul><li>Some documented only functional failures without root cause analysis.</li><li>Others noted vague symptoms like <em>“error code popped up”</em> with no context.</li><li>Some described components by appearance alone, forcing me to investigate part numbers and locations.</li></ul><p>I spent weeks cleaning and restructuring data, filling gaps, standardizing terminology, and organizing failures into meaningful categories. Eventually, I realized the root problem:</p><blockquote>there was no clear, consistent way to describe and report failures effectively.</blockquote><p>That’s why I’m writing this, to share my thoughts on why describing failures matters and how to do it better.</p><h3>Why does Failure Descriptions Matter?</h3><p>Clear failure descriptions are essential for reliability work because they improve:</p><ul><li><strong>Communication</strong></li><li><strong>Documentation</strong></li><li><strong>Analysis</strong></li></ul><p>Without a shared framework, the same failure can be described in many ways, causing confusion and wasted time. Structured reporting turns raw data into actionable insights by grouping failures, identifying patterns, and building searchable records. Precise descriptions also support analysis by tracking failure frequency, prioritizing critical issues, and guiding design improvements. In short, describing failures well is the foundation for understanding and improving system reliability.</p><h3>How to Describe Failures: Think in Chains</h3><p>To describe a failure effectively, we first need to break it down: what makes a failure instance? Failures in a product or system typically result from a combination of interconnected events (<strong>failure modes</strong>). Each failure mode has a cause-and-effect relationship with another, forming a chain. One failure mode exists <strong>due to</strong> the next level failure mode.</p><p>Engineers use <strong>failure analysis</strong> (or root cause analysis) to trace and link these modes. The result is a structured view of the failure: starting from the top-level functional failure, moving through subsystem-level symptoms, and ending at the root causes: such as a faulty component, a physical or chemical reaction, human error, or environmental stress.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/970/1*lPHaucsQWIiIz4Uo70X01w.png" /><figcaption>What is a failure instance</figcaption></figure><h3>Example: System Initialization Failure</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/975/1*3ONw3Jx9vJ8j9QFZmFvy_w.png" /><figcaption>A surgical robot</figcaption></figure><p>Consider a surgical robot system. When powered on, it begins an initialization process that verifies connections and communication between all stations (robot, camera, PC). Only after these checks succeed can the user proceed to the next step. The example below illustrates a failure description for one specific case of system initialization failure.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/974/1*NYxzcScuzsSh4VEebY8OXA.png" /><figcaption>Failure break down into failure modes</figcaption></figure><p>In this example, the top-level failure mode (Level 0) is a functional failure. Each subsequent level represents a deeper cause, linked by the phrase “due to.” For instance:</p><ul><li><em>Level 0 failure</em> is <strong>due to</strong> Level 1: The system fails to initialize <strong>due to</strong> the connection test failing.</li><li><em>Level 1 failure</em> is <strong>due to</strong> Level 2: The connection test fails <strong>due to</strong> the robot-PC connection not being established.</li><li>And so on.</li></ul><p>Each failure mode is described using the format: <strong>[Subject] + [Verb]</strong>, such as “the wire fractures” or “the cable is discontinuous.”</p><p>Through failure analysis, we identified failure modes from Level 0 to Level 5, forming a detailed chain for this initialization failure. This hierarchy clearly illustrates the cause-and-effect relationships behind the failure, making it easier to understand and address.</p><h3>What level should failure analysis stop?</h3><p>The next question is: <strong>how deep should we go?</strong> Digging into another level of failure mode adds cost and effort. If we reach a level where we have no control or cannot take meaningful action, continuing the analysis becomes wasted labor. That’s why it’s critical to identify the right level of detail, one that is both <strong>actionable</strong> and <strong>meaningful for resolution</strong>.</p><p>For practical purpose, a <strong>root failure mode</strong> is defined as the <strong>last cause we choose to pursue</strong> in the failure analysis. Root failure mode is where the failure analysis should stop at. It is not necessarily the lowest-level physical cause, but rather the point where:</p><ol><li><strong>A specific physical object or condition is clearly identified</strong>. For example, “<em>The connection between the robot station and the PC is not established” </em>is not an appropriate root failure mode, since there can be several components involved in the connection between robot station and PC and we cannot isolate the cause.</li><li>The root failure mode should be <strong>actionable</strong>, meaning the subject described in root failure mode can be repaired, replaced, redesigned, or controlled. Going beyond this level would not add practical value based on your role, scope, or authority.</li></ol><p>The determination of root failure mode also depends on different scenarios, the following uses the same initialization failure, but due to different scenarios, the root failure modes are different.</p><ul><li>If the connection cable is a commercial off-the-shelf part, and engineers simply replace it when it fails, then <em>cable discontinuity</em> is a sufficient root failure mode.</li><li>If the cable is a proprietary design, and your team has control over its internal structure, then it makes sense to go deeper and identify <em>Ethernet wire fracture</em> as the root failure mode.</li></ul><p>In short, the <strong>root failure mode</strong> is where failure analysis stops, because further investigation would not lead to more actionable insights or is outside the scope of control.</p><h3><strong>Key Takeaways</strong></h3><ul><li>Language matters: precise failure descriptions enable better communication, documentation, and analysis.</li><li>Think in terms of <strong>chains of failure modes</strong>, not just symptoms.</li><li>Define a <strong>root failure mode</strong> that is specific and actionable.</li><li>Good failure reporting is the foundation for reliability improvement.</li></ul><p><strong>Reference:</strong></p><p><a href="https://reliabilityacademy.com/articles/reliability-insights/failures-vs-functional-failures-vs-failure-modes-vs-failure-mechanism">Failures vs. Functional Failures vs. Failure Modes vs. Failure Mechanism</a></p><p><a href="https://reliability.com/resources/articles/what-is-the-difference-between-failure-analysis-fa-root-cause-analysis-rca-and-root-cause-failure-analysis-rcfa/">What is the Difference Between Failure Analysis (FA), Root Cause Analysis (RCA) and Root Cause Failure Analysis (RCFA)?</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2fcdb335a8a9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Reliability Demonstration Test Explained (No Stats Knowledge Needed!)]]></title>
            <link>https://medium.com/@shaopp/reliability-demonstration-test-explained-no-stats-knowledge-needed-23fb8f958eb6?source=rss-58af2f437be------2</link>
            <guid isPermaLink="false">https://medium.com/p/23fb8f958eb6</guid>
            <category><![CDATA[rdts]]></category>
            <category><![CDATA[reliability-engineering]]></category>
            <dc:creator><![CDATA[Shao-Peng Chen]]></dc:creator>
            <pubDate>Fri, 19 Dec 2025 18:57:46 GMT</pubDate>
            <atom:updated>2025-12-19T21:19:24.463Z</atom:updated>
            <content:encoded><![CDATA[<h3>Why Testing?</h3><p>Imagine you are a reliability engineer working on a product. The product has a reliability target <em>Rₒ</em>, for example, <em>Rₒ</em>=99% over 7 years of usage. Your manager asks:</p><p><em>“Does our product meet this target? How do you statistically prove that?”</em></p><p>Your first thought: <strong>Run a test.</strong><br>The purpose of the test is simple: we don’t know if the product’s actual reliability <em>Rᵢ </em>is above or below 99%. The test result should tell us, based on whether it passes or fails.</p><p>In an ideal world, you could design and run a perfect test: <br>- If the product’s reliability is greater than 99%, it passes.<br>- If not, it fails.</p><p>The pass rate versus actual reliability would look like a <strong>step function</strong> (Figure 1):</p><ul><li><strong>Fail when </strong><em>Rᵢ</em><strong>&lt;99%​:</strong> Pass rate = 0</li><li><strong>Pass when </strong><em>Rᵢ</em><strong>≥99%​:</strong> Pass rate = 100%</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/707/1*9HL2G_XwrCBSneMu9LuO0A.png" /><figcaption>Figure 1. Dream Test: Fail when Ri &lt; RO, pass rate = 0. Pass when Ri ≥RO, pass rate = 100%</figcaption></figure><h3>Reality: Uncertainty and Test Errors</h3><p>In reality, the pass rate versus actual reliability <em>Rᵢ</em> is unlikely to be a step function. Instead it is more likely to be an increasing curve (Figure 2).</p><ul><li>Higher true reliability → higher chance of passing</li><li>Lower true reliability → higher chance of failing</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/632/1*nTvxiufsqsF0nUqKY5c50g.png" /><figcaption>Figure 2. Reality: Pass rate increase over Rᵢ.</figcaption></figure><p>When we talk about the “chance of passing,” it means there is no absolute guarantee, a highly reliable product might still fail, and a less reliable one might occasionally pass. This uncertainty arises from <strong>test error</strong>, which represents the risk that the test result does not accurately reflect the true reliability.</p><p>There are two types of errors:</p><ul><li><strong>False Pass</strong>: The test says the product meets the target, but it actually doesn’t. (Consumer risk).</li><li><strong>False Fail</strong>: The test says the product fails, but its reliability is actually above the target. (Producer risk).</li></ul><p>These are shown in Figure 3 as red (false pass) and light red (false fail) areas. The size of these areas depends on the shape of the pass-rate curve. Engineers can <strong>manipulate this curve</strong> to control test error and therefore confidence in the result.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/673/1*Ytg-UjpJ7KJUTCZ4_n02EA.png" /><figcaption>Figure 3. Two test errors: False pass (red area) and false fail (light red area)</figcaption></figure><h3>What is a Reliability Demonstration Test (RDT)?</h3><p>So, how do we control confidence of a test result? Let’s use the <strong>Reliability Demonstration Test (RDT) </strong>as an example.</p><p>An <strong>RDT</strong> aims to show that a product meets its reliability target <em>Rₒ</em>. The result is either <strong>pass</strong> or <strong>fail</strong>. A typical zero-failure RDT works like this:</p><ul><li>Run the same life test on <strong>N identical samples</strong>.</li><li>Each sample either passes or fails.</li><li>If all N samples pass, the product passes the RDT.</li></ul><p>In our case, if the actual reliability of the product is <em>Rᵢ</em>. The probability for each sample to pass each life test is also <em>Rᵢ</em>. Then the probability of passing the whole RDT is</p><p><em>Pass Rate = (Rᵢ)^N</em></p><p>This is the orange pass rate curve we saw in the previous figures. By changing <em>N</em>, engineers can <strong>shift the curve</strong> and control test confidence.</p><h3>Manipulate the Pass Rate Curve</h3><p>Example: Compare a 2-sample RDT vs. a 4-sample RDT (Figure 4):</p><ul><li>The 4-sample passing rate curve shifts downward, making the product harder to pass RDT (given the <em>Rᵢ)</em>.</li><li>This reduces the chance of a <strong>false pass</strong> (bad product passing). (Compare the orange and purple area)</li><li>But it increases the chance of a <strong>false fail</strong> (good product failing).</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/682/1*IGwLyKFn-Qpqjfr6tsjNdg.png" /><figcaption>Figure 4. The pass rate curves of two-sample (orange) and four-sample (purple) RDT.</figcaption></figure><p>So we can conclude the two tests as the following table.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/981/1*tCnjiVO6fZQtuZAdV4QGww.png" /></figure><p>Which is better? At first glance, 2-sample seems cheaper and has lower producer risk. But in practice, <strong>consumer risk matters more</strong> because:</p><ul><li><strong>False pass</strong> → unreliable or unsafe product reaches the market (serious consequences).</li><li><strong>False fail</strong> → delays and extra cost for the producer (less severe).</li></ul><p>So, when designing a test, <strong>controlling false pass is the top priority</strong>.</p><h3>Control the Test Error</h3><p>So far we already know</p><ol><li>Test error, false pass and false fail, are inevitable.</li><li>We can control the error probability by changing the number of samples <em>N</em> in an RDT.</li><li>We care most about <strong>false pass</strong> because of its impact on customers.</li></ol><p>At the beginning of a test design, we need to set a requirement for the maximum allowed false pass probability for RDT, denoted as <strong><em>α</em></strong>.</p><p><strong><em>α</em></strong><em> = maximum allowed probability for a faulty product to pass the test</em></p><p>If the actual product reliability is below <em>Rₒ (</em>99%), e.g., 98.99% or 97% or 95%, we want the pass rate to be below <strong><em>α</em></strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/735/1*P7wlAwL_7HYlBuEIPwUCEw.png" /><figcaption>Figure 5. Relationship between consumer risk (false pass) and passing rate.</figcaption></figure><p>Figure 5 shows this concept.</p><ul><li>Red area = scenarios that the actual reliabilities <em>Rᵢ</em> are lower than target <em>Rₒ</em>, 99%.</li><li>If the pass rate = <strong><em>α</em></strong><em> </em>at<strong> </strong><em>Rᵢ</em>=<em>Rₒ</em>, any reliability <em>Rᵢ </em>that is below <em>Rₒ </em>would have a pass rate less than <strong><em>α</em></strong>. This ensures the risk of letting a bad product pass is controlled.</li></ul><p>Now we can easily solve the number of samples <em>N </em>to meet the consumer risk requirements <strong><em>α</em></strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/202/1*kte1-BoO_6_C9M6b50zFlQ.png" /></figure><h3>Designing an RDT</h3><p>In conclusion, there are two core elements we need to design an RDT.</p><ul><li>Target reliability: <em>Rₒ</em></li><li>Maximum acceptable false pass probability: <strong><em>α</em></strong></li></ul><p>Using the <em>Rₒ</em> and <strong><em>α </em></strong>in previous equation, you can calculate the minimal number samples <em>N</em>.</p><p>When the test is succussed (all N samples passed the life test), you can claim that:</p><blockquote>“With the confidence of (1-α), the product of the reliability is greater than Rₒ.”</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=23fb8f958eb6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Things to Think About for Reliability Test Planning]]></title>
            <link>https://medium.com/@shaopp/things-to-think-about-for-reliability-test-planning-aaafe8a90e89?source=rss-58af2f437be------2</link>
            <guid isPermaLink="false">https://medium.com/p/aaafe8a90e89</guid>
            <category><![CDATA[test-planning]]></category>
            <category><![CDATA[reliability-engineering]]></category>
            <dc:creator><![CDATA[Shao-Peng Chen]]></dc:creator>
            <pubDate>Wed, 06 Aug 2025 14:51:20 GMT</pubDate>
            <atom:updated>2025-08-06T14:51:20.167Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/573/1*8KfpTgQelDe1W71S0v8QsA.png" /></figure><p>One of the jobs of reliability engineers is to obtain reliability data for products (component/assembly/system). Such data includes failure modes and life models, which describe how and when the subject will fail. The data can be acquired through reliability testing. Whether the testing is conducted within our own lab or through third-party facilities, it is crucial that the reliability engineer prepares an initial test plan to facilitate communication and coordination among involved teams.</p><p>The following bullets are the ones I think are important to think through for reliability test planning. The first three bullets are about the test subject itself. Those bullets should be consulted and discussed with the product development team (hardware/electronic team) since they are the people who are the most familiar with the product. Bullet 4 to 7 are about the reliability objective and testing itself. The reliability engineer should confirm the test objective and discuss the testing requirement with the testing team.</p><h3>1. Test Subject</h3><ul><li><strong>Definition:</strong> Identify what is being tested: component, assembly, or system-level.</li><li><strong>Function:</strong> Clarify the function of the test subject and understand how the test subject operates in real-world conditions.</li></ul><h3>2. Mission Profile</h3><ul><li><strong>Expected Life:</strong> Define the total operational hours or number of power cycles, with an emphasis on the importance of precise time units.</li><li><strong>Environmental Conditions:</strong> Specify temperature, humidity, and other relevant environmental factors during operation.</li><li><strong>Force Profile:</strong> For mechanical parts, detail the forces or torques experienced during normal operation.</li><li><strong>Electrical Profile:</strong> For electronic components, specify typical voltage and current levels.</li></ul><h3>3. Failure Definition</h3><p>What is considered a failure for the test subject, which may include:</p><ul><li>Failure to pass functional tests (fail to perform certain functions)</li><li>Measurement exceed a given criteria: e.g., Electrical anomalies such as overcurrent or resistance deviations</li></ul><h3>4. Test Objectives</h3><p>Determine the primary purpose of the test, which may include:</p><ul><li>Identifying failure modes (more qualitative like HALT, HASS)</li><li>Building a life model (will need quantitative time-to-failure data)</li><li>Demonstrating reliability concerning specific requirements</li><li>Measuring performance metrics</li></ul><p>Multiple objectives can be targeted within a single testing campaign.</p><h3>5. Testing Parameters</h3><ul><li><strong>Test Type:</strong> Life testing, accelerated life testing, HALT, etc.</li><li><strong>Sample Size:</strong> Most of the time this is a constraint related to cost and availability.</li><li><strong>Test Duration &amp; Cycles:</strong> Calculated based on expected life and accelerated testing principles.</li><li><strong>Testing Environment:</strong> Nominal vs. accelerated conditions.</li></ul><h3>6. Test Bench &amp; Equipment Capabilities</h3><ul><li><strong>Simulation of Mission Profile:</strong> Capable of creating the required environmental condition (temperature/humidity) and/or replicating the operation of the test subject.</li><li><strong>Automation Level:</strong> Manual vs. automated testing processes.</li><li><strong>Measurement &amp; Monitoring:<br></strong>Capability to halt test and/or record the timepoint/cycles upon failure<br>What is measured (e.g., voltage, temperature, stress levels) during / at the end of the test</li></ul><h3>7. Data Collection and Analysis</h3><ul><li><strong>Data Collection Format: </strong>time, performance (metric or pass/fail)<strong>, </strong>other observations.</li><li><strong>Analysis:</strong> qualitative (failure modes identification) or quantitative (time-to-failure model)</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=aaafe8a90e89" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Estimating Component Service Costs Using Reliability Data]]></title>
            <link>https://medium.com/@shaopp/estimating-component-service-costs-using-reliability-data-97f1e7eb6515?source=rss-58af2f437be------2</link>
            <guid isPermaLink="false">https://medium.com/p/97f1e7eb6515</guid>
            <category><![CDATA[cost-model]]></category>
            <category><![CDATA[reliability-engineering]]></category>
            <dc:creator><![CDATA[Shao-Peng Chen]]></dc:creator>
            <pubDate>Wed, 23 Jul 2025 14:24:33 GMT</pubDate>
            <atom:updated>2025-07-23T14:24:33.915Z</atom:updated>
            <content:encoded><![CDATA[<p>Reliability data is a crucial factor in estimating the costs associated with component failures. Below is an approach for calculating the service cost of an individual component based on its reliability model.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gu8UTxgQv2NbjqdSeMNAOw.png" /><figcaption>Approach Steps</figcaption></figure><h3>1. Obtain the Reliability Model</h3><p>The reliability model describes the time-to-failure distribution for the component. This model can be derived from datasheets, fitted from testing samples, or based on field data.</p><h3>2. Generate Failure Events</h3><p>Using simulation techniques such as Monte Carlo analysis, failure event timelines can be generated. The intervals between failures are either sampled from the time-to-failure (<em>TTF</em>) distribution or based on pre-determined preventive maintenance intervals.</p><h3>3. Calculate the Cash Flows</h3><p>For each failure event, the corresponding cash flow should be estimated. A comprehensive cost model should include costs such as part repair or replacement, labor, shipping, and other relevant expenses.</p><h3>4. Analyze Cost Distribution</h3><p>By running numerous Monte Carlo simulations, multiple cash flow scenarios are generated. These results can be visualized through cash flow diagrams, and the collected cost samples can be displayed using histograms and density plots.</p><p>This approach allows for the estimation of the overall cost attributable to component reliability. It also enables analysis of how improvements in reliability influence costs. Additionally, different maintenance strategies, such as varying preventive maintenance windows, can be evaluated to determine the most cost-effective approach.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=97f1e7eb6515" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Does our inventory have enough spares?]]></title>
            <link>https://medium.com/@shaopp/systems-inevitably-fail-and-require-spare-parts-for-component-replacement-3da80aa46c59?source=rss-58af2f437be------2</link>
            <guid isPermaLink="false">https://medium.com/p/3da80aa46c59</guid>
            <category><![CDATA[inventory-management]]></category>
            <category><![CDATA[sherbrooke]]></category>
            <category><![CDATA[echelon]]></category>
            <dc:creator><![CDATA[Shao-Peng Chen]]></dc:creator>
            <pubDate>Mon, 05 May 2025 16:05:33 GMT</pubDate>
            <atom:updated>2025-05-18T02:28:03.806Z</atom:updated>
            <content:encoded><![CDATA[<p>Systems inevitably fail and require spare parts for component replacement. Managing spare parts inventory is an important part of keeping systems running. A key question is:</p><p><em>how many spare parts should we keep in stock</em>?</p><p>Misjudging inventory levels can have significant consequences. If we overprepare, we tie up resources and incur unnecessary costs; if we underprepare, we risk extended downtime for fielded systems. This leads to an important consideration: <em>how “safe” is our current stock level</em>, and <em>what is the impact of inventory decisions on system availability</em>? At the end of the day, it is always a tradeoff problem between money, availability and customer satisfaction. To make good decisions, we need to understand the relationship among these factors.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cJECc8HjK-wYOHJVZNZFlg.png" /><figcaption>An inventory problem is a tradeoff problem.</figcaption></figure><p>This memo aims to utilize a simple model to estimate system downtime based on our inventory stock levels. The model draws on METRIC inventory model (Sherbrooke, 1992) and Palm’s theory (Palm, 1938). Under a single-echelon inventory scenario, the number of spare parts available follows a Poisson distribution. This allows us to estimate the probability of stockouts and calculate the associated impact on system downtime due to waiting for spare parts.</p><p><strong>Scenario/Scope</strong></p><p>The model is suitable for single echelon inventory, high-value spares that uses (s, s-1) inventory policy.</p><p>Figure 1 illustrates a single echelon inventory scenario for an individual component, represented by the gear icon in the figure. In this setup, a single inventory of the component supports all fielded (customer) systems. We are implementing a (s, s-1) spare support policy, which is typically used for high-value components. Initially, a certain quantity of spare components will be purchased and replenished from refurbished units. In this context, faulty components will be repaired and returned to inventory after failing in the field.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/632/1*lNHf6LXWjnZuON_g2vX28w.png" /><figcaption>Figure 1. Single Echelon Scenario</figcaption></figure><p>In Figure 1, the orange arrow indicates the complaint flow. When a system failure occurs due to a faulty component, the fielded system submits a complaint requiring intervention to replace the defective unit.</p><p>The blue arrows depict the flow of components, including spare units and faulty items. Upon receiving a complaint, an engineer retrieves a spare component from the inventory to address the issue in the field, by removing the faulty component from the system and installing the spare. The defective unit will then be sent to a repair center. Once repaired, it will be reintegrated into the inventory.</p><p>Figure 2 considers an example with the following assumed time values: The mean time between complaints (<em>t𝒸</em>), which reflects how frequently fielded systems require spare components, is set at 1 month. It is expected that this interval may decrease as the number of fielded systems increases.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/809/1*xnyIYSOiEVm7yuKXcACMhw.png" /><figcaption>Figure 2. Single Echelon Example with Time Values.</figcaption></figure><p>The spare replenishment time (<em>tᵣ</em>) for a faulty component is estimated to be approximately 4 months. This total duration encompasses the time required for shipping the defective component to the repair center, the actual repair time, and the subsequent shipping period for returning the repaired component to the inventory.</p><p>Additionally, the time taken for an engineer to deliver a spare component in order to replace the faulty unit (<em>t𝒹</em>) is estimated at an average of 2 days. This period is generally shorter than the other durations discussed, as it is critical to minimize system downtime, which can lead to considerable costs. For the purposes of subsequent calculations, this shorter duration can be considered negligible.</p><p><strong>Spares in the inventory</strong></p><p>With the time setup, we can now discuss what actually happen to the inventory. Assume that an initial stock of N spares is purchased at the beginning (termed stock level, SL), with N being sufficient to support the fielded systems. The spares on hand (OH) in the inventory over time is illustrated in Figure 3: During the first four months, the quantity of spares on hand decreases due to an average of one complaint per month (<em>t𝒸</em>=1 month). After four months, the inventory begins to replenish as the first repair of a faulty component is completed and the component is returned to the inventory. Although the spares on hand will continue to decrease at an average rate of one per month, they will also be replenished at the same rate. At this point, the spares on hand will stabilize at an average of N−4 units.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/822/1*7CNrbDXy30j_ZWO_xIK2Xg.png" /><figcaption>Figure 3. The change of the spares on hand of the inventory over time</figcaption></figure><p>If we modify the data by subtracting the stock level (N) from the spares on hand, we can derive the pipeline over time, shown in Figure 4. The term “pipeline” refers to the quantity of faulty components that are undergoing replenishment or repair at a given moment. In this scenario, when a faulty component is removed from the fielded system, it enters the pipeline, increasing the count by one. Once the faulty component is repaired and returned to inventory, it exits the pipeline, resulting in a decrease of one in its quantity. Initially, faulty components are gradually added to the pipeline. After four months, the first faulty component leaves the pipeline and the pipeline reaches a steady state of average four faulty components in the pipeline after four months.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/809/1*eTYq-fknf5zBgYfTfeNCKw.png" /><figcaption>Figure 4. Pipeline changes over time.</figcaption></figure><p><strong>Steady state distribution</strong></p><p>We know either pipeline or spares on hand will eventually enter a steady state. The steady state can actually be represented by an analytical function. According to Palm’s theorem (Palm, 1938), if the spare demand follows a Poisson process with a mean of time between complaints (<em>t𝒸</em>) and the spare replenishment time (<em>tᵣ</em>) is identical and independent of a specific distribution, the pipeline distribution can be represented by a Poisson distribution with a mean equivalent to <em>tᵣ</em>/<em>t𝒸</em>. This mean (μ) is also the average pipeline. In Equation (1), Pr(<em>X</em>) represents the probability of having <em>X</em> items in the pipeline, i.e., <em>X</em> subsystems still in resupply process.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/452/1*932pKILbKNFE6L29KwCr8Q.png" /></figure><p>This distribution allows us to approximate the probability of the number of faulty components in the pipeline during a steady state. For each pipeline scenario, there are corresponding spares available on hand and backorders. These scenarios are listed in Figure 5.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/809/1*VlLFI7oNxdceS_gBAjkaOw.png" /><figcaption>Figure 5. Different Scenarios (Event Tree) of the pipeline, spares on hand and backorder.</figcaption></figure><p>Saying that we have <em>N</em> stock level, i.e., <em>N</em> spares are prepared in advance,</p><ul><li>When there are no components in the pipeline (pipeline = 0), all <em>N</em> spares in the inventory remain available (OH = N).</li><li>Conversely, when there are <em>N</em> faulty components in the pipeline (pipeline = N), there are no spares left in the inventory (OH = 0).</li><li>If the number of components in the pipeline increases to <em>N</em>+1, not only will there be no spares on hand, but there will also be one backorder, which indicates that any spares replenished must be allocated immediately to satisfy the backorder.</li></ul><p><strong>Wait Time Estimation</strong></p><p>Furthermore, we can estimate the wait time for the spares, as shown in Table 1. Whenever a spare is needed,</p><ul><li>If the pipeline count is less than or equal to <em>N</em>−1 (indicating at least one spare is available), there will be no wait time for the spare.</li><li>If the pipeline reaches <em>N</em>, the process must wait until the next spare is replenished.</li><li>Similarly, if the pipeline reaches <em>N</em>+1, there will be a wait for two spares to be replenished (due to one backorder).</li></ul><p>During the steady state, the time between spare replenishments (the interval at which fixed spares arrive in inventory) is equivalent to the time between complaints (<em>t𝒸</em>). Therefore, we can estimate the spare wait time by multiplying the time between complaints (<em>t𝒸</em>​) with the number of backorder plus 1.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/834/1*zY5YdYYktX-XmSjCfy2UXw.png" /><figcaption>Table 1. Calculation of spare wait time</figcaption></figure><p>As a result, We calculate the average wait time as the sum of the products of the probabilities of each scenario and their corresponding wait times. This leads to the expected spare wait time per complaint. Adding this value to the time required for an engineer to deliver a spare component (<em>td</em>​) gives us the expected system downtime for customers per complaint.</p><p><strong>Example</strong></p><p>To illustrate this model, let’s use some numerical values for the parameters: <em>tᵣ</em>, <em>t𝒸</em> and <em>t𝒹</em>. The average pipeline can be calculated as <em>tᵣ</em>/ <em>tc</em>=4 (unit). In this example, we aim to assess the inventory performance with a stock level of 10.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PB2XYlZNeA7pZl8ZpzTimQ.png" /><figcaption>Table 2. Example Inputs.</figcaption></figure><p>Using <strong>Table 1</strong> as a template, we can fill in the values. The probability column is derived from the Poisson Distribution with a mean of 4. The wait time column can be calculated by multiplying <em>tc</em>​ with one plus the backorder.</p><p>By aggregating all scenarios, we determine that the average spare wait time is approximately 8.83 hours. By adding this to <em>t𝒹</em>​, we estimate the average customer system downtime to be around 2.37 days.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/944/1*ss71TDXyjpPOKPAdpqpl5A.png" /><figcaption>Table 3. Example Results.</figcaption></figure><p><strong>Reference</strong></p><ul><li>Palm, C. (1938). Analysis of the Erlang traffic formulae for busy-signal arrangements. <em>Ericsson Technics</em>, 4, 39–58.</li><li>Sherbrooke, C. C. (1992). <em>Optimal Inventory Modeling of Systems: Multi-Echelon Techniques</em>. Wiley.</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3da80aa46c59" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>