Chapter 3

Chapter 3: Quality Control and Lot Release

How a cell therapy batch earns the right to leave the manufacturing site: the release tests WIA-BIO-005 defines, the arithmetic behind them, and how the results become a documented decision.

3.1 Release Philosophy: What a Batch Has to Prove

A small-molecule tablet is released on the strength of a validated process and a handful of analytical tests on a lot of many thousands of units. A cell therapy lot is usually a single bag or a few bags made for one patient, and the product is alive. Its most important properties cannot be measured by chemical assay alone: whether the cells are the intended cells, whether they are alive, and whether they do what they are supposed to do. Release testing is the formal act of answering those questions with data before the product is shipped or infused.

WIA-BIO-005 organises release around a familiar set of quality attributes. Each attribute answers a distinct question, and a failure in one cannot be compensated by an excellent result in another:

The spec condenses this into the release criteria summary of §4.2. That table is the contract between manufacturing, quality assurance and the clinical site: if every row passes, the batch is eligible for release; if any row fails, the batch cannot be released under the normal path. The table below reproduces it, with a column added to show which quality attribute each row serves.

TestMethod (spec §4.2)SpecificationAttribute
ViabilityFlow cytometry or trypan blue≥85%Viability
IdentityFlow cytometryPer product type (see 3.2)Identity / purity
PotencyCytotoxicity assay≥70% specific lysisPotency
SterilityUSP <71>No growthSafety
EndotoxinLAL assay<5 EU/kg doseSafety
MycoplasmaPCR or cultureNegativeSafety
AppearanceVisualMilky white, no clumpsAppearance
Cell countAutomated counterPer batch recordQuantity

Two features of this table deserve attention before we look at each test. First, the specifications are expressed in different kinds of units: a percentage of cells, a percentage of a calculated lysis value, a binary outcome, and a quantity normalised to the patient's body weight. A release system therefore cannot be a single threshold comparator; it has to understand what each number means. Second, the spec is deliberately generic about identity ("per product type") and cell count ("per batch record"). Those rows point outward to product-specific documents, and an implementation must know where to find the product-specific limit rather than inventing one.

A third point is procedural rather than technical. Release is a decision taken by an accountable person inside a quality system, not the output of an instrument. The tests in this chapter produce evidence; the decision is recorded in a certificate of analysis and signed by the person authorised to do so. Section 3.8 returns to that step.

3.2 Identity by Flow Cytometry

Flow cytometry measures, cell by cell, the light scatter and fluorescence of cells labelled with antibodies against surface markers. Because a cell therapy product is defined by the phenotype of its cells, flow cytometry is the natural method for identity and, at the same time, for the purity of the intended population. WIA-BIO-005 §4.1.1 lists the acceptance limits per product family:

Product familyMarkerAcceptanceWhat it establishes
T-cell productsCD3+≥80%The bag is predominantly T cells
CAR+≥20% (CAR-T)The genetic modification is present at release
TCRαβ+≥70% (conventional T cells)Conventional αβ T-cell lineage
NK-cell productsCD56+≥80%The bag is predominantly NK cells
CD3−≥95%T-cell carry-over is low (important for allogeneic products)
MSC productsCD73+, CD90+, CD105+≥95%Stromal phenotype
CD34−, CD45−≥98%Absence of haematopoietic cells

The CAR+ limit in this table is the release threshold. It is one of three CAR-related thresholds that appear in the spec, and they should not be confused. Chapter 2 described the in-process checkpoint on culture day 4 and the transduction target; those are process-monitoring checkpoints meant to catch a failing culture early. The release limit asks a narrower question: after expansion, is there still enough CAR-expressing material for the product to be what its label says? A batch can meet the release limit even if it missed an earlier process target, and vice versa; the three thresholds have different purposes and are recorded separately.

Gating in outline

The percentage reported for any marker depends on the population it is a percentage of. A typical analysis proceeds through a sequence of gates, each narrowing the denominator:

  1. Remove debris and beads by forward and side scatter.
  2. Keep single cells (singlet gate on scatter area versus height), because doublets can appear double-positive.
  3. Exclude dead cells with a viability dye, so that non-specific antibody binding to dying cells does not inflate positive fractions.
  4. Gate on the lineage of interest (for example CD45+ leukocytes, then CD3+ T cells).
  5. Within that population, measure the construct or subset marker. CAR detection reagents vary by product (a labelled target antigen, an anti-idiotype antibody or a generic linker-binding reagent), which is one reason CAR+ values from different laboratories are not directly comparable.

For data integration, the consequence is that a single number such as "CAR+ 85.3%" is incomplete without its denominator. The spec's example record (Chapter 4) stores car_positive: 85.3, and the SDK stores identity as a map of positive and negative markers with percentages. Neither records the gating hierarchy, so a quality system should keep a reference to the analysis template and the raw data file alongside the reported value. Positive and negative controls — fluorescence-minus-one tubes, untransduced cells from the same donor, and an instrument performance check — belong in the same evidence set.

For MSC products the identity panel follows the familiar positive/negative pattern described in Chapter 1: high expression of the stromal markers and near-absence of haematopoietic markers. The spec's MSC limits are stricter on the negative side (≥98%) than on the positive side (≥95%), reflecting the concern that residual haematopoietic cells indicate an impure preparation.

3.3 Viability: One Definition, Several Methods

Viability is the fraction of nucleated cells that are alive. WIA-BIO-005 §4.1.2 defines it with a simple ratio:

Viability (%) = Live cells / Total nucleated cells × 100

  Live cells  = cells that exclude the vital dye
  Total cells = all nucleated cells counted

Acceptance at release: ≥ 85%

Worked example. An operator counts a diluted sample and records 1,850 unstained cells and 150 stained cells. Total nucleated cells = 2,000. Viability = 1,850 / 2,000 × 100 = 92.5%, which passes the ≥85% criterion. (These counts are illustrative; they are chosen so that the result matches the viability value in the spec's example product record.)

The formula is uncontroversial. The difficulty is that "excludes the vital dye" is an operational definition, and different methods draw the line between live and dead in different places. The spec permits three families of method:

MethodPrincipleStrengthsTypical sources of disagreement
Trypan blue exclusionDye enters cells with damaged membranes; counted by eye or imaging on a haemocytometerSimple, cheap, fastOperator subjectivity; small counts; debris and red cells; early apoptotic cells with intact membranes are scored as live
Flow cytometry (7-AAD or PI)DNA-binding dyes excluded by intact membranes; combined with lineage gatingLarge event numbers; viability of a defined population (e.g. CD45+)Gating choices; the denominator differs from a whole-sample count
Automated cell counterImage-based or fluorescence-based (for example dual nucleic-acid stains)Reproducible, records images, less operator dependenceInstrument-specific size thresholds; clumps; calibration

Methods disagree for predictable reasons. Membrane-exclusion dyes detect late damage, so a population in early apoptosis looks healthier by trypan blue than by an apoptosis marker. Flow cytometric viability is often reported only within a gated leukocyte population, while a haemocytometer counts every nucleated object. Freshly thawed cells can recover or deteriorate over the first hour, so the time between sampling and reading matters. Residual cryoprotectant and lysed cells change the background.

The practical rules follow from those reasons. A laboratory should choose one validated method for release, write it into the product specification, and not substitute another method without a documented comparability assessment. The record of a viability result should include the method, the time from sampling to measurement, and whether the sample was fresh or post-thaw. When results from two methods are available — for example an in-process trypan blue count and a release flow result — they should be stored as two observations, not averaged.

Viability and dose are linked. Because the dose is usually calculated on viable cells (Chapter 5), a viability result is not only a pass/fail criterion; it enters the arithmetic of the dose itself. A viability value measured by a method that systematically overestimates will produce a dose that is systematically too high in real live cells. This is the strongest argument for method consistency.

3.4 Potency: Measuring What the Cells Do

Potency is the attribute that connects a laboratory measurement to the intended clinical mechanism. For a CAR-T product the mechanism is antigen-specific killing and activation, so the spec defines two potency assays for CAR-T: a cytotoxicity assay and a cytokine secretion assay (§4.1.3).

Cytotoxicity assay

In a cytotoxicity assay, product cells (effectors) are mixed with an antigen-positive target cell line at defined effector-to-target (E:T) ratios. After a fixed co-culture time, target cell death is measured. The spec allows three read-outs:

The spec's test conditions are E:T ratios of 1:1, 5:1 and 10:1 with a duration of 4–6 hours, and an acceptance criterion of ≥70% specific lysis at 10:1, the highest E:T ratio tested.

Raw release values are not directly interpretable, because targets die and leak label even without effectors (spontaneous release) and the assay has a ceiling (maximum release, obtained by lysing targets with detergent). Specific lysis normalises the experimental value between those two references:

                    Experimental release − Spontaneous release
Specific lysis (%) = ------------------------------------------ × 100
                      Maximum release − Spontaneous release

Acceptance: ≥ 70% at the highest E:T ratio (10:1)

Worked example (illustrative counts). A ⁵¹Cr assay gives 400 counts per minute (cpm) in the spontaneous-release wells and 4,400 cpm in the maximum-release wells, so the dynamic range is 4,000 cpm. The mean experimental values are:

E:T ratioExperimental release (cpm)CalculationSpecific lysis
1:11,200(1,200 − 400) / 4,000 × 10020%
5:12,600(2,600 − 400) / 4,000 × 10055%
10:13,400(3,400 − 400) / 4,000 × 10075%

The acceptance decision uses the 10:1 value: 75% ≥ 70%, so the potency criterion passes. The lower ratios are not acceptance points in the spec, but they are not wasted. A monotonic increase of lysis with E:T ratio is itself evidence that the assay behaved as expected; a flat or inverted curve suggests a technical problem (wrong target line, poor effector recovery, plate errors) rather than a real property of the product.

0 25 50 75 100 acceptance ≥70% at 10:1 1:1 5:1 10:1 Effector : target ratio Specific lysis (%) CAR-T product untransduced control
Figure 3-1. Sketch of an E:T titration (illustrative values from the worked example; the control curve is invented for illustration). Only the 10:1 point is an acceptance point in WIA-BIO-005.

An untransduced control from the same donor, run in parallel, distinguishes CAR-mediated killing from non-specific cytotoxicity. It is not an acceptance criterion in the spec, but a potency result without a specificity control is hard to defend in an investigation. Likewise, an antigen-negative target line can show that killing depends on the antigen.

Note that "potency ≥70%" appears in the spec's summary table and in the example product record (potency: 78.5) without the qualifier "specific lysis at 10:1". An implementation should record which assay and which E:T ratio produced the potency value, because the same label can otherwise carry a number from a different assay with a different meaning.

Cytokine secretion assay

The second CAR-T potency read-out measures cytokines released when effectors meet antigen: interferon-gamma (IFN-γ), tumour necrosis factor alpha (TNF-α) and interleukin-2 (IL-2), quantified by ELISA or a multiplex bead assay. The acceptance criterion is at least a 2-fold increase relative to unstimulated cells.

Fold increase = Cytokine concentration (stimulated) / Cytokine concentration (unstimulated)

Acceptance: ≥ 2-fold for the specified cytokines

Illustrative example. IFN-γ measures 150 pg/mL in the unstimulated well and 1,800 pg/mL after co-culture with antigen-positive targets: a 12-fold increase, which passes. Two practical cautions apply. If the unstimulated value is below the assay's lower limit of quantification, the fold change is undefined and the laboratory needs a predefined rule (for example, substituting the quantification limit), otherwise the ratio can be made arbitrarily large. And because cytokine secretion and killing measure related but different functions, they are complementary; a product that kills well but secretes little, or the reverse, deserves a note in the record even if both criteria pass.

For products other than CAR-T, the spec's release summary still lists potency, but the assay must reflect the product's mechanism. For MSC products, for example, the biological activity of interest is usually immunomodulatory rather than cytotoxic. The SDK allows for this with its PotencyAssay.type values (cytotoxicity, cytokine-secretion, proliferation, other); the product specification decides which applies.

3.5 Safety Tests: Sterility, Endotoxin and Mycoplasma

Sterility

The spec calls for sterility testing by USP <71> or an equivalent method, using two media over 14 days with an acceptance of no growth. In compendial practice, fluid thioglycollate medium is incubated at 30–35 °C and supports primarily anaerobic as well as aerobic bacteria, while soybean–casein digest medium (tryptic soy broth) is incubated at 20–25 °C and supports fungi and aerobic bacteria. The spec's shorthand "thioglycollate for bacteria, tryptic soy broth for fungi" is a simplification of this pairing.

A cell therapy product cannot be terminally sterilised, because sterilisation would kill the product. Sterility therefore rests on aseptic processing, and the release test is a final check of a small sample. A test that samples a fraction of a small-volume product has limited statistical power, which is why environmental monitoring and process control (Chapter 2) carry so much of the assurance.

Endotoxin

Bacterial endotoxin is measured with the Limulus amebocyte lysate (LAL) assay, in gel-clot, turbidimetric or chromogenic format (recombinant factor C reagents are an accepted alternative in some pharmacopoeias). The spec's limit is <5 EU/kg of patient body weight per dose; for a 70 kg patient this equals <350 EU in the whole dose. The limit is therefore a property of the dose delivered to a patient, not of a concentration in the bag. Section 3.6 shows how to convert correctly.

Cell products and their formulation components can interfere with LAL chemistry. A valid result requires a positive product control — the sample spiked with a known amount of endotoxin — to recover within the compendial range (50–200% in USP <85>). If interference is found, the sample is diluted, and the dilution must stay within the maximum valid dilution calculated from the limit.

Mycoplasma

Mycoplasmas are small bacteria without a cell wall that pass through sterilising filters and are not reliably detected by the sterility test. They can be introduced through raw materials or operators and can persist in culture. The spec accepts three approaches with the same acceptance criterion, negative:

ApproachTime to result (spec §4.1.6)Comment
Culture-based28 daysTraditional compendial reference; too slow to support release of a short-lived product
PCR-based (nucleic-acid amplification)About 24 hoursFast; needs validation of sensitivity and specificity against the reference method for the specific product matrix
Luminescence-basedNot specified in the specEnzyme-activity based rapid screen; typically used as a screening tool, with its role in release defined by validation

The release-timing dilemma

The safety tests collide with the biology of the product. A fresh product may have a shelf life of hours to days, and even a cryopreserved product is made for a patient whose disease may be progressing. A 14-day sterility culture or a 28-day mycoplasma culture cannot finish before the patient needs the cells. Three strategies are used, and a WIA-BIO-005 implementation should be able to represent all of them rather than assume one:

  1. Cryopreserve and wait. Freeze the product and release only after all compendial tests are complete. This is straightforward and is possible when the product tolerates freezing and the clinical timeline allows it.
  2. Rapid validated methods. Replace slow methods with rapid ones (PCR for mycoplasma, automated growth-based or other rapid microbial methods for sterility) that have been validated as equivalent or better for this product. USP <1071> addresses a risk-based approach to rapid microbial tests for short-life products.
  3. Release on interim results with follow-up. Ship on the basis of negative interim results (for example an in-process sterility sample taken earlier, a Gram stain, a negative culture read at the time of release), with the final result reported later and a pre-agreed procedure to notify the clinical site immediately if it turns positive.

The third strategy has direct consequences for data modelling. A sterility result is no longer a single boolean; it has at least the states pending, negative to date, final negative and positive, each with a date. The SDK's QualityMetrics.sterility is a plain boolean, so an integration that needs to support release on interim results must carry the richer state outside that field and map it conservatively. Chapter 5 returns to the handling of such gaps.

3.6 Endotoxin Unit Conversion Done Right

Endotoxin results are reported by the laboratory as a concentration, in endotoxin units per millilitre (EU/mL). The acceptance limit in WIA-BIO-005 is a dose normalised to body weight, in EU/kg. Comparing the two numbers directly is a unit error, and it is an easy one to make, because the spec's example record stores endotoxin: 0.25 with no unit at all. The conversion takes two steps:

Step 1  Total endotoxin in the dose (EU) = Concentration (EU/mL) × Dose volume (mL)
Step 2  Endotoxin per kg (EU/kg)          = Total endotoxin (EU) / Patient weight (kg)

Accept if  Endotoxin per kg < 5 EU/kg

Worked example (illustrative). The release result is 0.25 EU/mL. The product is infused as a single 50 mL bag to a 70 kg patient.

Total endotoxin = 0.25 EU/mL × 50 mL = 12.5 EU
Per kg          = 12.5 EU / 70 kg     ≈ 0.18 EU/kg
Limit           = 5 EU/kg  (equivalently 350 EU for 70 kg)
Result          : 0.18 EU/kg < 5 EU/kg  → pass

The conversion can also be run in reverse to find the highest concentration that would still pass for a given patient and volume. For the same 70 kg patient and 50 mL bag, the maximum acceptable concentration is 5 × 70 / 50 = 7 EU/mL. For a 20 kg child receiving the same 50 mL volume it falls to 5 × 20 / 50 = 2 EU/mL. The same laboratory result can therefore pass for one patient and fail for another, which is exactly why the acceptance decision needs the patient's weight and the infused volume, not only the laboratory value.

Three further points complete the picture:

Rule of thumb for implementers. Never store or compare an endotoxin value without its unit. If a record holds EU/mL, the release check must know the volume and the weight; if those are not available, the check should report "cannot evaluate" rather than compare EU/mL against 5.

3.7 Stability Programme

Release testing shows that a batch was acceptable at the moment it was tested. A stability programme shows that the same kind of product stays acceptable throughout storage, and it is the evidence that supports an expiry date. WIA-BIO-005 §4.3.1 defines a programme for cryopreserved products stored at −150 °C or colder in the vapour phase of liquid nitrogen:

TimepointViabilityRecoveryPotencySterility
0 months (T0)≥85%≥70% of starting cellsReference value (T0)Negative
3 months≥85%≥70%≥70% of T0Negative
6 months≥85%≥70%≥70% of T0Negative
12 months≥85%≥70%≥70% of T0Negative
18 months≥85%≥70%≥70% of T0Negative
24 months≥85%≥70%≥70% of T0Negative

Two of these criteria are relative rather than absolute. Recovery compares the viable cells found after thawing with the cells that were frozen; potency is compared with the product's own value at time zero. That makes the T0 measurement critical: if it is missing or was measured by a different method, every later comparison becomes uncertain.

Recovery (%)          = Viable cells after thaw / Viable cells frozen × 100
Potency retained (%)  = Potency at timepoint / Potency at T0 × 100

Example (illustrative): T0 specific lysis 80%, 12-month lysis 64%
                        → 64 / 80 × 100 = 80% of T0  → meets ≥70% of T0

Several design choices sit behind a stability study that the spec leaves to the manufacturer. Stability samples should be stored in the same container type and fill volume as the product, because freezing and thawing behaviour depends on geometry. The study should ideally use representative batches rather than one favourable run. The thaw procedure used for the stability sample should match the one used clinically, because a laboratory thaw followed by washing can give better numbers than a bedside thaw. And the 24-month maximum in the table is a study endpoint; the expiry assigned to a product is whatever its own data support, which may be shorter.

Stability data also matter to the data model. A product record that carries a freeze date and an expiry date (Chapter 4) is only as trustworthy as the study behind that expiry. A quality system should link the expiry rule to the stability report that justifies it, so that a change in the study automatically flags the products whose expiry depended on it.

3.8 From Results to a Decision

When all the release results are available, they are assembled into a certificate of analysis (CoA). The CoA is the document that travels with the product (or is transmitted ahead of it) and tells the receiving site what was tested, what the specification was, what the result was and who approved release. The SDK models it as CertificateOfAnalysis; its fields give a useful checklist of what a CoA must contain:

CoA elementSDK fieldContent
Unique certificate numbercertificateNumberTraceable identifier for this document
Product identificationproductProduct ID, cell type, patient link (pseudonymous), batch
Test resultstestResultsViability, potency, sterility, endotoxin, mycoplasma, identity, count, appearance
Potency assay detailpotencyAssayAssay type, method, E:T ratios, lysis values or cytokine levels
Release decisionreleaseDecisionApproved yes/no, approver, approval date, expiry date
Manufacturing summarymanufacturingFacility, batch record reference, deviations
Storage and shippingstorageLocation, temperature, shipping conditions

The row that most often goes wrong in practice is the manufacturing summary's list of deviations. A CoA that says "all tests passed" but omits a deviation recorded during manufacturing gives the receiving site an incomplete picture. Deviations should be listed even when their impact assessment concluded that product quality was not affected, with a reference to that assessment.

Who signs

Release is signed by a person authorised by the quality system, who is independent of production. In the European Union the certification of each batch is the responsibility of a Qualified Person; in the United States release is a function of the quality unit. The SDK's certificate generator fills the approver with a fixed placeholder and applies fixed default values for facility, expiry and shipping text. Those are template values: a CoA generated by software must be completed and checked by QA before it has any standing, and the shipping and expiry fields must come from the product's own validated specification — in particular, shipping must maintain the storage temperature of −150 °C or colder, which rules out conditions such as dry ice.

What "conditional" means

The spec's API (§8.2) allows three recommendations from the quality assessor: release, conditional and reject. The SDK extends the set to release, conditional-release, reject and retest. The exact algorithm that produces those values, and the grade letters that accompany them, are implementation features explained in Chapter 5; here the question is what a conditional outcome means for the people who have to act on it.

In quality terms a conditional outcome is never a softer pass. It signals that the batch meets its specifications but that something requires a documented human judgement before release: a result close to a limit, a warning such as a viability just above 85%, a pending final result under the interim-release strategy of section 3.5, or a minor deviation whose impact assessment is not yet closed. The correct response is a recorded decision by QA — release with justification, hold for more information, or reject — not an automatic release.

Some failures leave no room for judgement. The spec's error model assigns C001 to viability below threshold, C002 to potency failure and C003 to sterility failure, and it pairs C003 with immediate rejection. A positive sterility or mycoplasma result is a reject outcome in the SDK as well. Where a product fails release but a patient has no alternative, some jurisdictions allow an out-of-specification product to be supplied under an exceptional procedure involving the treating physician and the regulator. That is a clinical and regulatory decision outside the quality assessor, and a system should record it as a separate event rather than change the release result.

Summary