Yoshimitsu Systems
YS-EN-0004 · Engineering Note · YS·CORE

Spares for a one-way trip

225 compute cores, a 40-year voyage, and no resupply. How many spare parts do you pack, and which ones? The counting is classical Poisson arithmetic. The hard part is the one number you put into it: the failure rate, which nobody knows as well as the datasheet suggests.

Report YS-EN-0004 Rev 1 Published Author Declan Lebowski, Chief Architect Reading time 14 min Code & data ↓
A gloved hand lowers a bagged hot-swap module labelled 4077-M4 into the foam of an open transit case stencilled SS MARIPOSA · SPARES · MODEL 4077 · CASE 04, beside rows of anti-static bags labelled 4077-M1 to M4 with serial numbers, a humidity card and desiccant packs. On the bench sit a clipboard headed SPARES KITTING RECORD · 2123, red tamper-seal tape and a label printer. Behind, a Model 4077 core with four front modules and a monitor titled YS·CORE · SPARES PLAN reading FLEET 225 × 4077, MISSION 40 YR, RESUPPLY NONE above a stepped curve of P(no shortfall) against spares carried, under a 良光 Yoshimitsu Systems sign and a window over Kyoto at night
YS·CORE · Spares kitting bench · Kyoto · 2123

Abstract

A fleet that cannot be resupplied must carry every spare it will ever use. We size that kit for 225 Model 4077 cores over 40 years, using the method NASA developed for Mars transit habitats: Poisson demand per part and a target probability of sufficiency for the whole fleet.2 With the failure rates taken as exact, a 0.999 target needs 273 spare cores, 94 if broken cores can be stripped for parts, or the mass of about 51 cores if modules and chassis are carried separately.

But at fleet scale, chance is the small term. If each rate is known only to within a factor of two, rate uncertainty makes up 93% of the spread in M1's demand, and the median fleet probability of the "0.999" kit falls to 0.44. NASA found the same effect for Mars habitats.1 Protecting against it costs about 1.8× the mass. Wear-out the datasheet never saw, and defects shared by a whole production lot, are better handled by design than by carrying more spares. All rates and masses here are stated inputs, and the calculator below lets you change them.

225 × 40 yrcores × years with no resupply; at a 40-year MTBF, about 225 failures expected
273 → 51spare mass for a 0.999 fleet target, in cores: spare cores vs separate modules
19%chance the M1 spares run out if M1's rate is only known to within ×2 (0.02% if known exactly)
>95%of ISS corrective spares estimated never to be used5

No second shipment

In 2123 the SS Mariposa left Earth for the Ficus sector with nine crates of Model 4077 cores, 25 to a crate, and no return leg. Everything the crew would need to keep those cores running had to be in the hold on the day it left. A data centre on Earth can order a part and have it the next day, and the International Space Station is resupplied every few months.2 A ship on a one-way crossing has no second shipment.

NASA has studied this problem for crewed Mars missions, where a transit habitat may spend about 1,100 days out of reach. "Because spare parts cannot be flown as needed for Mars missions," Stromgren and colleagues write, "all required spares must be flown with the mission or pre-positioned."1 We use their framework here. Our trip is about 13 times longer, and the hardware is one repeated design rather than thousands of different components. Both differences matter.

The 4077 is built for this. Its four modules come out from the front, and its datasheet promises a 40-year MTBF (mean time between failures). We split that rate across the modules and the chassis as in the table below. The split and the masses are this note's inputs, not measurements; the calculator and the code let you change them.

Inputs: how the core's failure rate and mass divide among its parts
PartShare of failuresPart MTBFExpected fleet failures in 40 yrMass, fraction of a core
M130%133 yr67.50.12
M225%160 yr56.30.12
M320%200 yr45.00.12
M420%200 yr45.00.12
Chassis5%800 yr11.30.52
Whole core100%40 yr225.01.00

One point before the arithmetic. An MTBF of 40 years does not mean a core lasts 40 years. It describes a rate: "the types of random failures defined by MTBF have nothing to do with accumulated lifetime; rather they are failures that can occur randomly at any time."1 225 cores at one failure per 40 core-years produce, on average, 225 failures in 40 years, about one every two months.

Counting failures

If failures arrive at a constant rate and each failed part is replaced by a fresh spare, the number of failures of part i across the fleet over the mission is Poisson-distributed. Its mean is the number installed, times the rate, times the time. The chance that s spares are enough is NASA's probability of sufficiency (POS):2

POSi=P(Di≤si)=∑k=0sie−μiμikk!,μi=nλiT (1)

With independent parts, the fleet's POS is the product over parts. This is why NASA sets one target for the whole system and lets each item's level float: five parts each at 0.999 give only 0.995 together.2

For M1, μ = 225 × 40 / 133 = 67.5. The standard deviation of a Poisson count is the square root of its mean, about 8.2. So 98 spares, the mean plus 3.7 standard deviations, leave a 0.02% chance of running short. That is the share of a 0.999 fleet target that falls on M1. Chance alone needs a margin of about 45% over the mean, and the margin shrinks as the fleet grows, because the square root grows more slowly than the mean. For an item expected to fail once or twice, as many items in a habitat are, the margin can be several times the mean. A fleet of identical parts is the easy case, as long as the rate is right.

What to carry

There are three ways to pack for the same fleet target.

  • Spare whole cores, swapped whole. Every failure, whatever its cause, uses up a core: demand is Poisson with mean 225. For 0.999 that is 273 spare cores, more than doubling the cargo.
  • Spare whole cores, stripped for parts. A broken core's good modules go back into stock, so a spare core is a kit of one of each part. You need enough kits to cover the worst-hit part. That is 94 cores.
  • Separate modules and chassis. Buy each part in the quantity its own demand needs, and add the spare that buys the most POS per kilogram each time. This is the greedy "marginal analysis" used by NASA Langley's EMAT tool, which "examines each possible spare that could be added, selecting the spare that most effectively reduces risk from a mass perspective".1,4 The result is 98, 84, 71 and 71 modules and 24 chassis: 348 parts with the mass of about 51 cores.
FIG. 1 — WHAT TO CARRY
0 100 200 300 Spares mass, in whole cores 273 Spare cores 94 Spare cores, stripped for parts 51.4 Spare modules + chassis
Figure 1. Mass of spares needed for a 0.999 chance that all 225 cores are still working after 40 years, in units of one complete core. Stripping dead cores for parts makes every spare core a kit of one of each part; carrying the parts separately stops paying for chassis and for the modules that rarely fail. Rates and masses are this note's inputs.
Table view
Spares by strategy and fleet target
Fleet POSSpare coresStripped for partsM1 / M2 / M3 / M4 / chassisModules: mass, cores
0.9244 cores78 cores85 / 72 / 60 / 60 / 1742.1
0.99261 cores87 cores92 / 79 / 66 / 65 / 2147.2
0.999273 cores94 cores98 / 84 / 71 / 71 / 2451.4

Most of the saving comes from repairing inside the core at all (273 → 94). The rest comes from no longer paying for a 0.52-core chassis every time an M1 fails. The chassis is the heaviest part and the least likely to fail, so a kit of whole cores is mostly chassis that will never be needed. This is what "every module comes out from the front" buys on a ship: the 4077 was designed so that the part you carry is the part that fails.

Stripping broken cores for parts also makes the arithmetic simple. If part i has si spares and suffers Di failures, then n + si − Di good copies of it exist at the end, and the number of cores you can assemble is

W=min(n,mini(n+si−Di)) (2)

We checked Equation 2 against a simulation that plays out each failure, repair and strip-down in order over 40 years. For the module kit the two agree within the simulation's noise: 0.99905 ± 0.0002 simulated, against 0.99906 from Equation 2. The tougher test is the kit sized for 10 tolerated losses (next section), where cores really do sit dead and get stripped: 0.99898 ± 0.0002 simulated against 0.99906.

Letting a few cores go

Equation 2 has a useful consequence. Suppose the mission still succeeds with up to m dead cores, because the ship only needs 225 − m to run. Then

P(W≥n−m)=∏iP(Di≤si+m) (3)

Each core you can afford to lose is worth one free spare of every part. With m = 10 the module kit drops from about 51 cores of mass to about 41, and with m = 20 to about 31. This is the spares-versus-redundancy trade in its simplest form. Owens and de Weck note that, ignoring repair time, a cold spare and a redundant unit are "functionally nearly equivalent".2 Section 7 covers the case where they are not.

Luck versus ignorance

Everything so far assumes the rates are exactly right. They won't be. NASA separates two kinds of uncertainty. Aleatoric uncertainty is chance: how many failures a known rate happens to produce. Epistemic uncertainty is ignorance: not knowing the rate itself.1 The Space Station's record shows how much the second kind matters. Predicted MTBFs of its components run "from a low of about 2,000 hours to a high of 100 Million+ hours". By 2016 over half had been revised: about 85% upward and 15% downward, and about 3% to a quarter or less of the original estimate.1

ISS practice describes the uncertainty in each failure rate with a lognormal error factor, the ratio of the 95th percentile to the median.7 We take the datasheet rate as the median, so the mean rate is a little higher (by 9% at an error factor of 2). Give M1 an error factor of 2. The spread of M1's demand then grows from 8.2 to 33.6. Of that variance, 93% comes from not knowing the rate and only 7% from chance:

FIG. 2 — LUCK VS IGNORANCE
0% 1% 2% 3% 4% 5% 0 50 100 150 200 98 spares carried M1 failures over the mission Probability
Rate knownRate known to ×2
Figure 2. How many M1 modules fail over 40 years, expected 67.5. If the rate is known, the spread is pure chance and 98 spares run out with probability 0.02%. If the rate is only known to within a factor of 2 (a lognormal whose 95th percentile is twice its median), the same 98 spares run out 19% of the time.
Table view
M1 failures, probability per value
FailuresRate knownRate known to ×2
00.00%0.00%
100.00%0.00%
200.00%0.14%
300.00%0.57%
400.01%1.09%
500.46%1.41%
603.34%1.45%
704.55%1.30%
801.50%1.07%
900.14%0.83%
1000.00%0.62%
1100.00%0.45%
1200.00%0.32%
1300.00%0.23%
1400.00%0.16%
1500.00%0.11%
1600.00%0.08%
1700.00%0.05%
1800.00%0.04%
1900.00%0.03%
2000.00%0.02%
more than 980.02%19.2%

This is the reverse of the small-count case. With one or two spares per item, chance dominates. With 67 expected failures, chance is cheap to cover and ignorance is not.

The fleet suffers more than any single part does, and in one direction. Fly the nominal kit, then draw each part's true rate independently, each with a factor-2 error. Some parts come out better than planned, but their POS was already near 1 and has little room to rise. Parts that come out worse lose a great deal. The median fleet POS falls from 0.999 to 0.44, and about 95% of draws end below target. Stromgren and colleagues found the same asymmetry in their Mars habitat model. Even there, with 85% of components likely to come out better, "it is this very small number of critical components that drive the behavior and reliability of the entire system."1 A kit designed for a 1-in-1,000 risk delivered a median of about 1 in 37 under ISS-like uncertainty.3

If instead the error is shared, with the whole design better or worse than the test campaign said, the median stays at 0.999. But it becomes a coin toss whether the true POS is above or below target, and the bad half can be very bad. For a single design flown in quantity, a shared error is the more realistic case: the 225 cores came from the same line and the same qualification tests.

There are two ways to pay for this:

FIG. 3 — PAYING FOR WHAT YOU DON'T KNOW
30 100 300 1,000 ×1 ×2 ×3 ×4 ×5 rates assumed exact: 51.4 Error factor on every failure rate (95th / 50th percentile) Spares mass, in whole cores (log) Averaged 95th percentile
Every rate at its 95th percentileAveraged over the uncertainty
Figure 3. Two ways to size the manifest when every rate is uncertain by the error factor on the x-axis. The table also shows what happens if you ignore the uncertainty and fly the nominal manifest: its median POS, and how often its true POS is below 0.999, with each part's error drawn separately or one shared error for the whole design, and how often the 95th-percentile manifest really meets 0.999. The averaged manifest is a greedy allocation on a heavy-tailed mixture and is approximate.
Table view
Rate uncertainty and the 0.999 manifest
Error factorNominal manifest: median POSBelow 0.999 (separate errors)Below 0.999 (shared error)95th-percentile manifestIt meets 0.999 (separate / shared)Averaged manifest (approx.)
×10.9990%0%51.4100% / 100%51.4
×1.50.92293%49%71.286% / 95%81.6
×20.42895%49%90.682% / 95%143
×30.00396%50%12880% / 95%337
×50.00096%50%20079% / 95%1,299
  • Plan at the pessimistic rate. Size every part for its 95th-percentile rate. For an error factor of 2 this is about 91 cores of mass instead of 51, 1.8×. If the error is shared across the design, that kit meets 0.999 with 95% confidence. If each part errs separately it does so only about 82% of the time, because with five parts, one of them often comes out worse than its 95th percentile. For comparison, NASA's Mars habitat needed about 2.0× (low uncertainty) and 2.8× (high) the mass to restore its target at 95% confidence: over 12,000 and 17,000 kg against 5,984 kg.1
  • Average over what you don't know. Size against the mixed distribution. At a 0.999 target this is the more expensive option: about 140 cores of mass at ×2, about 340 at ×3, and over 1,000 at ×5. The kit then has to cover rates in the far tail of the lognormal, so the result depends mostly on how far you trust that tail. These figures are approximate.

Testing narrows the error factor more slowly than you might hope. Stromgren and colleagues put the operating time needed for confidence in an MTBF at about three times the MTBF.1 A simple Bayesian count shows why. After 10 observed failures the rate is known to about ×1.6, and after 30 to about ×1.3. For M1 at its nominal rate, 10 failures take the whole 225-core fleet 6 years of running, and 30 failures take 18 years. For the chassis, 10 failures take 36 years. You cannot burn the uncertainty off on the ground before departure. The ship learns its rates on the way, when it can no longer order more.

Same MTBF, different ageing

A constant rate is an assumption. A Weibull lifetime with shape β below 1 fails early and then settles, β = 1 is the constant-rate case, and β above 1 wears out. We simulated M1 as a renewal process with each shape, keeping the same 133-year mean life. Every replacement starts as a new part. We also simulated two cases where a wear-out mechanism (β = 4) that never appeared in qualification is added on top of the random failures.

FIG. 4 — SAME MTBF, DIFFERENT AGEING
0 100 200 300 M1 spares needed 169 Early (β 0.7) 98 Random (β 1) 13 Wear-out (β 3) 193 + wear-out, η 45 yr 310 + wear-out, η 30 yr
Figure 4. M1 spares needed for a 0.9998 chance of not running out (the share of a 0.999 fleet target that falls on M1), from 50,000 simulated missions per case. The first three cases share M1's 133-year MTBF and differ only in Weibull shape β. The last two keep the random failures and add a wear-out mechanism (β 4, characteristic life η) that the datasheet MTBF never saw.
Table view
M1 failures by ageing case
CaseMean failuresSDSpares needed
Early (β 0.7)123.611.9169
Random (β 1)67.48.298
Wear-out (β 3)4.32.113
+ wear-out, η 45 yr157.39.8193
+ wear-out, η 30 yr280.08.3310

The constant-rate simulation reproduces the Poisson answer (98). Genuine wear-out against a 133-year mean helps: few parts reach old age in a 40-year trip, so only 13 spares are needed. Early failures hurt, because every fresh spare repeats its own early-life risk. That is an argument for burn-in before the spares are packed. The cases that should worry a planner are the last two. A wear-out mechanism with a characteristic life of 45 years (mean about 41) doubles M1's spares. One at 30 years (mean about 27) means nearly every M1 module in the fleet is replaced once, for 310 spares instead of 98. None of this is visible in a constant-rate MTBF measured over the first few years of service.

The NASA sources treat wear-out as scheduled replacement of life-limited items. This renewal treatment is our own.2,3 Spares also age in storage, and a part that sits in the hold for 30 years is not new when it is fitted. We do not model dormant ageing.

When spares help least

Jones separates two kinds of common cause failure. A common event, such as a fire or a power surge, hits everything at once. A common mode, such as a design or manufacturing defect, makes identical parts fail in the same way, though usually not at the same moment. "Common event failures reduce the reliability of on-line redundant systems but not of systems using off-line spare parts. Common mode failures reduce the dependability of systems using off-line spare parts and on-line redundancy."6 In the Shuttle anomalies he reviews, 11% were common cause. The largest coupling factor was the same part design, at 27% of dependent failures.6

Spares sitting in the hold are protected from common events, which is one reason to carry spares rather than run everything in parallel. Against a common mode they help less, because spares from the same lot share the defect. Suppose a latent defect fails 30% of all M1 modules at some point in the mission, including 30% of the spares. The nominal kit does not survive it. A 1% chance of such a defect over the mission takes the fleet's 0.999 down to 0.989, about eleven times the risk the kit was sized for, before any rate uncertainty. Even a 10% defect leaves the nominal kit only a 45% chance.

Spares can cover a known defect: 260 M1 spares instead of 98 ride out the 30% case, about 19 cores of extra mass, and 141 cover the 10% case. The trouble is that nobody knows the fraction in advance, and the cost grows with every fraction you choose to cover. Design diversity costs a fixed amount and covers every fraction, so the main defence has to come from design and from the sources of supply: two production lots or two revisions of each module type, packed separately, and repair below the module level, so that a recurring fault becomes a known fix rather than a dwindling stock. Stromgren and colleagues make a related point. ISS failures traced to design or manufacturing deficiencies were "diagnosed and rectified" on the ground, and so dropped out of the rate updates.1 A one-way ship cannot send the part back to be fixed.

What we do with this

Four rules come out of this, and they are the rules the YS·CORE team uses for long-haul spares:

  1. Carry the part that fails. Repair inside the core and pack modules by type. Spare cores belong in the kit only for the chassis, which nothing else replaces.
  2. Size for the rate you might have, not the rate you hope for. State an error factor for every part and size to its 95th-percentile rate. That buys 95% confidence only against an error shared by the whole design, so add margin where parts could err separately. Don't trust a 0.999 that assumes the datasheet is exact.
  3. Treat dead cores as stock. Plan how many cores the mission can lose, and strip the dead ones for parts. Every tolerated loss is a free spare of every part.
  4. Split the lots. No module type flies with all its spares from one production lot. Keep enough tools and parts aboard to repair modules, not just swap them.

See the Compute Cores datasheet for the 4077's module layout.

Calculator

Change any input and the kit is re-sized. It uses the same model as the code: Poisson demand, stripping dead cores for parts, least-mass allocation, and an error factor applied as "every rate at its 95th percentile". Masses are relative; only their ratios matter.

The calculator needs JavaScript. Figure 1 and its table view give the results for the default inputs, and sparing.py runs the full model.

Limits of this note

  • The 4077's failure split and part masses are inputs we chose for illustration. The 40-year MTBF is the datasheet figure. None of these are field measurements.
  • Equation 2 assumes repairs always succeed and take no time. Our Poisson demand also counts failures as if all 225 cores always run, when a dead core's parts in fact stop running. The event-by-event simulation models this and agrees within its noise. We ignore induced failures, damage during repair, and crew time. On the ISS, life-support maintenance planned at about 1 hour a week took 13–15.7
  • Rate errors are lognormal with median 1, either independent per part or shared. The real ISS revision distribution is skewed toward improvement and is only published as a summary;1 its raw data are in a limited-access database.
  • The wear-out cases are scenarios, not fits, and we do not model spares ageing in storage. The common-mode case is a single defect in one part type.

References

  1. C. Stromgren, K. Goodliff, W. Cirillo and A. Owens. "The Threat of Uncertainty – Why Using Traditional Approaches for Evaluating Spacecraft Reliability Are Insufficient for Future Human Mars Missions." AIAA SPACE 2016, Long Beach, CA. NTRS 20160011578.
  2. A. C. Owens and O. L. de Weck. "Limitations of Reliability for Long-Endurance Human Spaceflight." AIAA SPACE 2016, Long Beach, CA. NTRS 20160012010.
  3. A. C. Owens and O. L. de Weck. "Systems Analysis of In-Space Manufacturing Applications for the International Space Station and the Evolvable Mars Campaign." AIAA SPACE 2016, Long Beach, CA. NTRS 20160011570.
  4. A. Owens, O. de Weck, B. Mattfeld, C. Stromgren and W. Cirillo. "Comparison of Spares Logistics Analysis Techniques for Long Duration Human Spaceflight." ICES-2015-288, Bellevue, WA, 2015. NTRS 20160006509.
  5. W. Cirillo, K. Goodliff, G. Aaseng, C. Stromgren and A. Maxwell. "Supportability for Beyond Low Earth Orbit Missions." AIAA SPACE 2011, AIAA-2011-7231, Long Beach, CA. NTRS 20110015914.
  6. H. W. Jones. "Common Cause Failures and Ultra Reliability." ICES 2012, AIAA-2012-3602, San Diego, CA. NTRS 20160005837.
  7. A. C. Owens, O. L. de Weck, C. Stromgren, W. Cirillo and K. Goodliff. "Supportability Challenges, Metrics, and Key Decisions for Future Human Spaceflight." AIAA SPACE 2017, Orlando, FL. NTRS 20170009115.

Reproduce

Every computed number in this note comes from sparing.py, which states all its inputs at the top. You need Python 3.10+, NumPy and SciPy; it runs in about two minutes, most of it in the rate-uncertainty and wear-out simulations.

shell
python code/ys-en-0004/sparing.py          # strategies, k-of-n, uncertainty, wear-out, common mode → results.json
python code/ys-en-0004/build_figures.py    # rebuild the figures in this page

Changelog

  • Rev 1. First publication.