StabilityForge is the operating system for your NHP stability program — auto-numbered protocols, time-point reports, and expiry justification, all version-controlled and aligned to ICH Q1A(R2) and Health Canada NHPD standards. Built for the moment the audit begins.
These aren't hypothetical. They are the actual questions Health Canada inspectors are asking. The companies losing are not the ones with bad data — they're the ones with scattered data.
Health Canada will eventually ask to see four documents in this exact order: the protocol, the time-point reports, the pass/fail evaluation, and the expiry justification. StabilityForge connects them into a single auto-numbered, version-controlled workspace where the audit trail is the byproduct of doing the work — not a separate task.
Auto-coded workspace per product or product line. Every document inherits the project number.
ICH-compliant study design. Auto-numbered, version-controlled. References inline.
Time-point results per batch. Pass/fail auto-evaluated against the protocol's spec.
Expiry justification generated from results. Citations attached. Sign-off ready.
Inspector asks the question. You answer in 90 seconds. Every time.
The inspector should never have to ask why a particular condition, time point, or specification was chosen. Every choice in a StabilityForge protocol is cited inline to its source guideline — and printed in the final document the same way.
12 pages. Five real documents. Stability protocol, time-point report, final shelf-life justification, inspection response memo, and a side-by-side audit comparison. Watermarked SAMPLE so it cannot be misused — every other detail is the actual output format StabilityForge generates.
Full ICH Q1A(R2)-aligned protocol with all 11 sections, references, and signature block.
T = 12 month interim report. Three batches. Twenty-four results, all pass/fail evaluated.
T = 24 trend analysis with regression statistics and signed expiry justification.
Documented memo response to an inspector observation. 56-second retrieval timeline.
Five audit scenarios under the same conditions — with and without StabilityForge — showing the operational impact in minutes vs seconds.
If you're accountable for showing the chain of evidence behind a shelf-life claim, you're the person we built this for.
Single-site or multi-site operations managing 10–500 SKUs. Direct-to-consumer brands, supplement formulators, herbal product lines.
CMOs running stability programs for multiple client brands. Auto-numbering and project workspaces keep client portfolios cleanly separated.
The people running stability operations day-to-day. You stop being the single point of knowledge failure. The system becomes the institutional memory.
Submission-ready documents on demand. NHPD-aligned formatting. No more reconstructing expiry justification the week of filing.
Anchor pricing to what it replaces: one FTE stability coordinator costs $75K–$120K/year. One avoided audit finding pays for three years of StabilityForge. Decide accordingly.
For GMP, QA, and RA consulting firms. Deploy StabilityForge into unlimited client engagements, co-branded with your firm. One flat annual license. Partner directory listing included.
No demo pressure. No proposal. We open one of your active NPN products, walk it through the StabilityForge frame, and you walk away with three concrete deliverables — yours to keep regardless of whether you move forward.
A documented assessment of where your current stability documentation chain has exposure under ICH and NHPD review.
A fully populated ICH-aligned stability protocol generated for one of your active products. Yours to use, edit, or compare against your own.
A regulatory citation reference for your most-exposed SKU, mapping each compliance touchpoint to its source guideline.
Two-page architecture document for your IT/security reviewer. Sub-processors, compliance framework alignment, deployment options. Read now →
Four documents. One controlled chain. Auto-numbered, version-controlled, ICH-cited inline.
Every protocol section cites its source guideline inline — printed in the final document the same way.
| Tier | Implementation | Monthly |
|---|---|---|
| Standard Single-site NHP, ≤50 SKUs |
$4,997 | $297 |
| Professional Multi-site, custom branding |
$9,997 | $497 |
| Enterprise CMO, validation pack, integration |
$24,997+ | $1,497+ |
| Consultant Partner GMP / RA firms, unlimited clients |
$4,997 / year flat license | |
Anchor: One stability coordinator FTE costs $75K–$120K/yr. One avoided audit observation costs $15K–$50K. One avoided recall costs $100K–$500K+.
A complete walkthrough of StabilityForge output — protocol, time-point report, expiry justification, inspection response, and the operational comparison every QA manager should see before their next audit.
What you'll find in the following pages is exactly what StabilityForge generates for an NHP product moving through a full stability program: the controlled protocol, an interim time-point report, the final shelf-life justification, an inspection-response memo demonstrating audit retrieval, and a side-by-side of what the same operational scenario looks like with the system versus without it.
These are not screenshots. They are not mockups. They are the document templates StabilityForge produces when you enter your product information — formatted to ICH Q1A(R2) and Health Canada NHPD expectations, cited inline to source guidelines, version-controlled, and audit-defensible. The watermark is present so this pack cannot be confused with a real regulatory submission. Everything else is exactly what the system outputs.
StabilityForge was not designed by software engineers reading regulations from the outside. It was built by manufacturing supervision leadership with decades of production-floor experience — people who have stood beside the inspector, signed the deviation, closed the CAPA, and felt the weight of an unfindable file at the worst possible moment.
Every workflow decision in this system is grounded in how real GMP operations actually function. The auto-numbering convention exists because document control has always been an audit finding. The version history exists because revision tracking is a recurring observation. The expiry justification automation exists because nobody — not even your best stability coordinator — should be rebuilding that document under submission deadline pressure.
| DOC 1 | Stability Protocol | Full ICH Q1A(R2)-aligned protocol for a Magnesium Glycinate 300 mg capsule. |
| DOC 2 | Time-Point Report | Interim T = 12 months long-term stability report for 3 primary batches. |
| DOC 3 | Final Stability Report | T = 24 months final report with expiry justification and trend analysis. |
| DOC 4 | Inspection Response | Documented response to a Health Canada inspector observation, with retrieval timeline. |
| DOC 5 | Before vs After | Operational comparison of stability program with and without StabilityForge. |
Walk through each document the way an auditor would. Look for: document numbering, version control, citation density, traceability between protocol and result, signature blocks, and the logical chain from study design → data → conclusion → expiry claim. These are the things that determine whether a stability program survives inspection or generates findings.
If what you see is consistent with how your audits run, we should talk. If it raises questions, also good — those are the questions worth answering before deployment, not during it.
A 20-minute Audit Readiness Assessment. We open one of your active NPN products, walk it through the StabilityForge frame, and produce a documented gap report — yours to keep, regardless of whether you choose to move forward. The deliverable is real either way.
This protocol defines the stability study design for Vitality+ Magnesium Glycinate 300 mg, a hard gelatin capsule natural health product manufactured for the Canadian market. The objective is to generate data sufficient to support the proposed shelf-life claim of 24 months under the recommended storage conditions stated on the product label, in accordance with the Natural Health Products Regulations (SOR/2003-196) §44–46 and ICH Q1A(R2).
The storage conditions selected align with ICH Climate Zone II applicable to Canada. Three primary batches at pilot scale will be enrolled, exceeding the minimum three-batch requirement of ICH Q1A(R2) §2.1.3. The container closure system (HDPE bottle with child-resistant PP cap and induction seal) represents the marketed configuration, satisfying §2.2.5 of the same guideline.
| Attribute | Specification |
|---|---|
| Product name | Vitality+ Magnesium Glycinate 300 mg |
| Dosage form | Hard gelatin capsule (size #00, opaque off-white) |
| Strength / dosage | 300 mg elemental magnesium per capsule |
| Batch size | 100,000 capsules (pilot scale) |
| Proposed shelf life | 24 months |
| Ingredient | Source | Quantity per Unit |
|---|---|---|
| Magnesium bisglycinate chelate | USP/Ph.Eur. grade synthetic chelate | 1,500 mg (providing 300 mg elemental Mg) |
Microcrystalline cellulose (USP), magnesium stearate (USP), silicon dioxide (USP), hypromellose (capsule shell, USP).
| Component | Description |
|---|---|
| Primary packaging | HDPE bottle, USP-grade, 75 mL |
| Closure | Child-resistant polypropylene cap with induction seal |
| Materials | USP-grade HDPE; PE/foil induction liner |
| Light protection | Opaque/amber |
| Desiccant / scavenger | Silica gel canister (2 g) |
| Fill size | 60 capsules per bottle |
The labeled storage statement for this product is: "Store between 15–30 °C, protect from moisture and light. Keep desiccant in bottle."
| Study | Temperature | Relative Humidity | Reference |
|---|---|---|---|
| Long-term | 25 °C ± 2 °C | 60% RH ± 5% RH | ICH Q1A(R2) §2.2.7.1 |
| Intermediate* | 30 °C ± 2 °C | 65% RH ± 5% RH | ICH Q1A(R2) §2.2.7.2 |
| Accelerated | 40 °C ± 2 °C | 75% RH ± 5% RH | ICH Q1A(R2) §2.2.7.3 |
*Intermediate testing will be initiated if "significant change" (ICH Q1A(R2) §2.1.7.2) is observed at accelerated condition.
Photostability testing will be conducted per ICH Q1B on one primary batch using the confirmatory study design (Option 2): integrated near-UV (320–400 nm) and cool white fluorescent light at minimum 1.2 million lux-hours of overall illumination and 200 watt-hours/m² UV energy. Light-protected and dark controls will be analyzed in parallel.
A minimum of 3 primary batches manufactured at pilot scale will be enrolled. Batch designations: LOT-VTL-A001, LOT-VTL-A002, LOT-VTL-A003. All batches share the same formulation, manufacturing process, and container closure system as the marketed product, satisfying ICH Q1A(R2) §2.1.3.
| Time Point | Tests Performed |
|---|---|
| T = 0 months | Complete panel (release / baseline) |
| T = 3 months | Complete panel |
| T = 6 months | Complete panel |
| T = 9 months | Complete panel |
| T = 12 months | Complete panel |
| T = 18 months | Complete panel |
| T = 24 months | Complete panel |
| T = 36 months | Complete panel (commitment) |
| Time Point | Tests Performed |
|---|---|
| T = 0 months | Complete panel |
| T = 3 months | Complete panel |
| T = 6 months | Complete panel |
| Parameter | Method | Acceptance Criterion | Reference |
|---|---|---|---|
| Appearance | Visual inspection | Off-white opaque #00 capsules; no defects, chips, or moisture damage. | QNHP §3.3.1 |
| Identification | HPLC, ion chromatography | Retention time corresponds to magnesium glycinate reference standard ± 5%. | USP <197> |
| Assay (Mg content) | HPLC, validated | 90.0% – 110.0% of label claim (300 mg elemental Mg). | ICH Q1A(R2) §2.2.6 |
| Related substances | HPLC, related substances | Individual unspecified ≤ 0.2%; total ≤ 1.0%. | ICH Q3B(R2) |
| Disintegration | USP <701> | Not more than 30 minutes in purified water at 37 °C. | USP <701> |
| Weight variation | USP <2091> | Individual ± 7.5% of mean fill weight. | USP <2091> |
| Loss on drying | USP <731> | Not more than 5.0% w/w. | USP <731> |
| Microbial enumeration | USP <2021> | TAMC ≤ 10⁴ CFU/g; TYMC ≤ 10² CFU/g; absence of E. coli, Salmonella, S. aureus. | USP <2021>, <2022> |
Quantitative stability attributes (assay, total related substances, loss on drying) will be evaluated per ICH Q1E §2.5 using linear regression of attribute against time, with the 95% one-sided confidence limit used to estimate the retest period/shelf life. Poolability of batches will be assessed using analysis of covariance (ANCOVA) with a significance level of 0.25. Where the data show little degradation and variability, formal statistical analysis may be omitted with documented justification per ICH Q1E §2.3.
Any individual result falling outside the acceptance criterion shall trigger an OOS investigation per Site Master File SOP-QA-007. Confirmed OOS results at the accelerated condition, or any "significant change" as defined in ICH Q1A(R2) §2.1.7.2 (5% assay loss from initial; any specified degradant exceeding its acceptance criterion; failure to meet dissolution / disintegration; physical change such as phase separation or capsule integrity; or pH failure where applicable), shall trigger initiation of intermediate testing at 30 °C ± 2 °C / 65% RH ± 5% RH and root-cause analysis prior to release of subsequent batches.
Interim stability reports will be issued at each annual time point (T = 12, 24, 36 months) and made available to Health Canada upon request. The final stability report will be issued upon completion of the long-term study or upon achievement of the proposed shelf-life claim, whichever occurs first, in accordance with NHPR §46.
This time-point stability report documents the analytical results obtained from 3 primary batches of Vitality+ Magnesium Glycinate 300 mg held at long-term storage condition (25 °C ± 2 °C / 60% RH ± 5% RH) for 12 months in accordance with the testing schedule defined in stability protocol SAMPLE-VTL-2026-SP-001 (v1.0). Results are evaluated against the predefined acceptance criteria from §7 of the protocol, derived from ICH Q1A(R2), ICH Q3B(R2), and the Health Canada Quality of Natural Health Products Guide.
| Batch / Lot | Manufacture Date | Pass | Fail | Pending | Verdict |
|---|---|---|---|---|---|
| LOT-VTL-A001 | 2025-04-12 | 8 | 0 | 0 | CONFORMING |
| LOT-VTL-A002 | 2025-04-12 | 8 | 0 | 0 | CONFORMING |
| LOT-VTL-A003 | 2025-04-13 | 8 | 0 | 0 | CONFORMING |
| Parameter | Acceptance Criterion | Result | Verdict | Notes |
|---|---|---|---|---|
| Appearance | Off-white opaque #00 capsules | Off-white opaque, no defects | PASS | — |
| Identification | RT corresponds to reference ± 5% | RT = 4.31 min (ref 4.30 min) | PASS | — |
| Assay (Mg) | 90.0% – 110.0% LC | 99.8% | PASS | — |
| Related substances | Indiv ≤ 0.2%; total ≤ 1.0% | Max 0.06%; total 0.12% | PASS | — |
| Disintegration | NMT 30 min | 8 min | PASS | — |
| Weight variation | Indiv ± 7.5% of mean | ± 1.7% | PASS | — |
| Loss on drying | NMT 5.0% w/w | 3.1% | PASS | — |
| Microbial enum. | TAMC ≤ 10⁴, TYMC ≤ 10² | TAMC < 10² CFU/g | PASS | Pathogens absent |
| Parameter | Acceptance Criterion | Result | Verdict | Notes |
|---|---|---|---|---|
| Appearance | Off-white opaque #00 capsules | Off-white opaque, no defects | PASS | — |
| Identification | RT corresponds to reference ± 5% | RT = 4.30 min | PASS | — |
| Assay (Mg) | 90.0% – 110.0% LC | 99.4% | PASS | — |
| Related substances | Indiv ≤ 0.2%; total ≤ 1.0% | Max 0.05%; total 0.10% | PASS | — |
| Disintegration | NMT 30 min | 9 min | PASS | — |
| Weight variation | Indiv ± 7.5% of mean | ± 1.9% | PASS | — |
| Loss on drying | NMT 5.0% w/w | 3.2% | PASS | — |
| Microbial enum. | TAMC ≤ 10⁴, TYMC ≤ 10² | TAMC < 10² CFU/g | PASS | — |
| Parameter | Acceptance Criterion | Result | Verdict | Notes |
|---|---|---|---|---|
| Appearance | Off-white opaque #00 capsules | Off-white opaque, no defects | PASS | — |
| Identification | RT corresponds to reference ± 5% | RT = 4.32 min | PASS | — |
| Assay (Mg) | 90.0% – 110.0% LC | 99.1% | PASS | — |
| Related substances | Indiv ≤ 0.2%; total ≤ 1.0% | Max 0.07%; total 0.14% | PASS | — |
| Disintegration | NMT 30 min | 8 min | PASS | — |
| Weight variation | Indiv ± 7.5% of mean | ± 1.5% | PASS | — |
| Loss on drying | NMT 5.0% w/w | 3.0% | PASS | — |
| Microbial enum. | TAMC ≤ 10⁴, TYMC ≤ 10² | TAMC < 10² CFU/g | PASS | — |
All test results obtained at the T = 12 month time point under long-term storage (25 °C ± 2 °C / 60% RH ± 5% RH) for batches LOT-VTL-A001, LOT-VTL-A002, and LOT-VTL-A003 meet the predefined acceptance criteria established in protocol SAMPLE-VTL-2026-SP-001. 24 of 24 parameters across the three batches pass.
Based on the earliest manufacturing date in this study (2025-04-12) and the proposed shelf life of 24 months, the calculated expiry date is 2027-04-12. The proposed expiry date of 24 months for Vitality+ Magnesium Glycinate 300 mg continues to be supported by stability data at this interim time point.
The study will continue per the protocol schedule, with the next long-term time point scheduled for T = 18 months (2026-10-15).
This Final Stability Report presents the consolidated data from the long-term and accelerated stability studies conducted on three primary batches of Vitality+ Magnesium Glycinate 300 mg in accordance with stability protocol SAMPLE-VTL-2026-SP-001 (v1.0). The proposed shelf-life claim of 24 months under the labeled storage conditions ("Store between 15–30 °C, protect from moisture and light") is supported by the data presented herein and is justified in accordance with ICH Q1A(R2), ICH Q1E, and Health Canada NHPR (SOR/2003-196) §44–46.
| Time Point | LOT-A001 (%) | LOT-A002 (%) | LOT-A003 (%) | Mean (%) | Verdict |
|---|---|---|---|---|---|
| T = 0 | 101.4 | 100.7 | 99.8 | 100.6 | PASS |
| T = 3 | 101.1 | 100.5 | 99.7 | 100.4 | PASS |
| T = 6 | 100.6 | 100.0 | 99.5 | 100.0 | PASS |
| T = 9 | 100.2 | 99.7 | 99.3 | 99.7 | PASS |
| T = 12 | 99.8 | 99.4 | 99.1 | 99.4 | PASS |
| T = 18 | 98.9 | 98.5 | 98.0 | 98.5 | PASS |
| T = 24 | 97.9 | 97.4 | 96.8 | 97.4 | PASS |
Observation: Mean assay decreased from 100.6% at T = 0 to 97.4% at T = 24 months, a total decline of 3.2 percentage points over 24 months. This is well within the acceptance criterion of 90.0%–110.0% of label claim and shows no significant change per ICH Q1A(R2) §2.1.7.2.
| Time Point | LOT-A001 (%) | LOT-A002 (%) | LOT-A003 (%) | Limit (%) | Verdict |
|---|---|---|---|---|---|
| T = 0 | 0.08 | 0.06 | 0.09 | ≤ 1.0 | PASS |
| T = 12 | 0.12 | 0.10 | 0.14 | ≤ 1.0 | PASS |
| T = 24 | 0.18 | 0.16 | 0.21 | ≤ 1.0 | PASS |
Observation: Total related substances increased from approximately 0.08% at release to 0.18% at T = 24 months. The maximum value observed across all batches and time points (0.21%) remains well below the acceptance limit of 1.0% total.
| Time Point | Mean Assay (%) | Mean Total RS (%) | Disintegration (min) | Verdict |
|---|---|---|---|---|
| T = 0 | 100.6 | 0.08 | 7 | PASS |
| T = 3 | 98.8 | 0.18 | 9 | PASS |
| T = 6 | 96.6 | 0.30 | 11 | PASS |
No "significant change" per ICH Q1A(R2) §2.1.7.2 was observed at the accelerated condition (assay decline < 5%, all attributes within criteria). Intermediate testing at 30 °C / 65% RH was therefore not triggered.
Per ICH Q1E §2.5, linear regression of mean assay against time was performed for each batch and for the pooled dataset. Slopes were: LOT-A001 = −0.148 %/month; LOT-A002 = −0.139 %/month; LOT-A003 = −0.125 %/month. Pooled slope: −0.137 %/month. Poolability assessed via ANCOVA at α = 0.25 confirms slopes and intercepts are statistically indistinguishable, justifying pooled analysis.
The 95% one-sided lower confidence limit of the pooled regression intersects the lower specification limit (90.0% LC) at 52 months, providing substantial margin beyond the proposed 24-month shelf-life claim.
Photostability testing conducted on LOT-VTL-A001 per ICH Q1B confirmatory design (Option 2): integrated near-UV (320–400 nm) plus cool white fluorescent at 1.2 million lux-hours and 200 watt-hours/m² UV. Assay: 100.8% (light-exposed) vs 101.4% (dark control), Δ = 0.6% — within method variability. Related substances: 0.09% vs 0.08%. No photodegradation of concern. The opaque/amber HDPE primary container provides adequate light protection.
All test results obtained through T = 24 months under long-term storage conditions (25 °C ± 2 °C / 60% RH ± 5% RH) for three primary batches of Vitality+ Magnesium Glycinate 300 mg meet the predefined acceptance criteria established in protocol SAMPLE-VTL-2026-SP-001. No "significant change" was observed at the accelerated condition. Statistical evaluation per ICH Q1E §2.5 supports a shelf life substantially exceeding 24 months.
The proposed shelf life of 24 months for Vitality+ Magnesium Glycinate 300 mg under the labeled storage condition "Store between 15–30 °C, protect from moisture and light" is hereby justified by the stability data presented in this report, in accordance with ICH Q1A(R2), ICH Q1E, Health Canada QNHP Guide v2.0, and NHPR (SOR/2003-196) §44–46.
Recommended product expiry: 24 months from manufacture under the labeled storage conditions.
The manufacturer commits to: (a) continued long-term stability monitoring through T = 36 months on the three primary batches per protocol §6.1; (b) annual stability reporting to internal QA review through year three; (c) initiation of stability testing on the first three commercial-scale production batches per ICH Q1A(R2) §2.1.3.2.
"Please provide the current stability protocol and most recent time-point report supporting the 24-month expiry claim for NPN SAMPLE-80012345. Include version control documentation and any related deviations or OOS investigations."
| Document ID | Description | Version | Status |
|---|---|---|---|
| SAMPLE-VTL-2026-SP-001 | Stability Protocol — Vitality+ Magnesium Glycinate 300 mg | v1.0 | Approved |
| SAMPLE-VTL-2026-SP-001-R-001 | Time-Point Report — T = 0 months (release/baseline) | v1.0 | Final |
| SAMPLE-VTL-2026-SP-001-R-002 | Time-Point Report — T = 3 months | v1.0 | Final |
| SAMPLE-VTL-2026-SP-001-R-003 | Time-Point Report — T = 6 months | v1.0 | Final |
| SAMPLE-VTL-2026-SP-001-R-004 | Time-Point Report — T = 9 months | v1.0 | Final |
| SAMPLE-VTL-2026-SP-001-R-005 | Time-Point Report — T = 12 months (most recent) | v1.0 | Final |
Five real audit moments that decide whether a stability program survives inspection or generates findings. Same product, same data, same regulatory scrutiny — different operational systems.
Five documents. One operational chain. Every artifact generated from a single project workspace, version-controlled, ICH-cited inline, and audit-defensible by design. This is what StabilityForge produces in routine operations — not under audit pressure.
20-minute Audit Readiness Assessment on one of your active NPN products. Documented gap report is yours to keep.
Open the live workspace, create a project, build a protocol. See for yourself how the system feels in 5 minutes.
For your IT or security reviewer. Architecture, sub-processors, compliance alignment, deployment options. Two pages.
All project, protocol, and stability report data is stored in your browser's localStorage. No backend database. No remote storage. Clearing your browser data clears your StabilityForge data.
The application is a single HTML file fetched once from Cloudflare's CDN. After load, no data leaves your device unless you explicitly invoke the optional AI Narrative generator.
The optional AI Narrative routes through a Cloudflare Worker to Anthropic's API. Anthropic does not train on API data per commercial terms. Prompts contain only the product context you authorize.
Self-hosted, air-gapped, and validated (IQ/OQ/PQ) deployments available for environments requiring 21 CFR Part 11 or GAMP 5 alignment.
| Data Type | Where It Lives | Outbound? | Retention |
|---|---|---|---|
| Project & protocol metadata | Browser localStorage | No | Until cleared by user |
| Test results & batch data | Browser localStorage | No | Until cleared by user |
| Stability reports & conclusions | Browser localStorage | No | Until cleared by user |
| AI Narrative prompts | Cloudflare Worker → Anthropic API | Only if invoked | Not retained by Victory Hour |
| Analytics / telemetry | — | Not collected | — |
| Cookies / tracking pixels | — | Not set | — |
| Login credentials / accounts | — | Not implemented | — |
| Sub-Processor | Purpose | Certifications | Data Shared |
|---|---|---|---|
| Cloudflare, Inc. | Static asset CDN, DNS, edge Workers (AI proxy) | SOC 2 Type II · ISO 27001 · PCI DSS | None at rest; transient routing only |
| Anthropic, PBC | AI Narrative generation (opt-in feature only) | SOC 2 Type II | Only the prompt content you authorize; not used for model training per commercial terms |
| Google LLC | Web font CSS (Bebas Neue, Barlow Condensed) | SOC 2 · ISO 27001 | Font CSS request only; can be self-hosted on Enterprise tier |
No other sub-processors. Any future additions will be communicated 30 days in advance with right-to-opt-out.
Architecture aligned to data minimization, purpose limitation, and storage limitation by design. *21 CFR Part 11 (electronic records & signatures) addressable via Enterprise tier with audit trail module.
| Creation | User input in browser |
| Storage | Device localStorage |
| Backup | User-initiated CSV / HTML export |
| Deletion | In-app delete or clear browser data |
| Retention (our side) | Zero |
| Option | Outbound Risk |
|---|---|
| Browser-Local Standard tier · default | Zero (unless AI invoked) |
| Managed Cloudflare Professional tier | Static delivery + opt-in AI |
| Self-Hosted Customer infrastructure | Customer-controlled |
| Air-Gapped Offline workstation | None (no internet) |
| Validated Enterprise IQ/OQ/PQ included | Per customer architecture |
Your data is fully portable at all times. Built-in mechanisms: CSV export of all projects, protocols, and reports; HTML export of individual protocol and time-point report documents; direct localStorage access via browser developer tools (your data, your access, always). Deletion is immediate and complete — clear browser data or use the in-app delete functions. Because Victory Hour does not retain customer data on its infrastructure, there is no parallel deletion request required on our side.