Educational Resource

Example T661 Narrative for Software Development

This fictional worked example illustrates one way to organize the project-description portions of a T661. It is not a completed claim, a filing template, or an example that CRA has reviewed or accepted.

Do not copy this narrative into a claim.

The company, project facts, measurements, citations, commit hashes, ticket IDs, and results below are invented for teaching purposes. Your submission must describe your own work accurately and be supported by records that actually exist.

The bold fictional source references below simply illustrate how a preparer might connect statements to underlying records. They are explanatory labels, not citation syntax or wording to copy into Form T661.

Fictional example project

Project: Real-time Machine Learning System for Time-Series Anomaly Detection
Fiscal Year: 2024
Industry: Financial Services Technology
Tech Stack: Python, TensorFlow, Kafka, PostgreSQL

Line 242: Scientific or Technological Uncertainties

(Maximum: 350 words | No minimum and no filler | Purpose: Describe what was uncertain and why existing knowledge was insufficient)

The project faced significant scientific uncertainties in developing a real-time machine learning system capable of detecting anomalies in high-frequency financial time-series data with sub-second latency requirements while maintaining acceptable false-positive rates below 2%.

The primary uncertainty was whether standard attention mechanisms in transformer architectures could be adapted for streaming time-series data without the computational complexity (O(n²)) rendering real-time processing infeasible. Existing published methods (Vaswani et al. 2017) assumed batch processing and were not designed for incremental updates as new data points arrived. No existing approach in the literature addressed the combination of: (1) temporal dependency modeling for irregular time intervals characteristic of financial data, (2) attention mechanism optimization for streaming ingestion, and (3) distributed training at scale while maintaining gradient stability.

A secondary uncertainty concerned the training regime for models that must adapt to non-stationary distributions (market regimes change). Standard approaches use periodic retraining or online learning, but neither was suitable: full retraining was too slow (6+ hours), and naive online learning led to catastrophic forgetting. It was uncertain whether a hybrid approach combining experience replay with selective parameter freezing would preserve historical pattern recognition while adapting to new regimes.

Finally, the interaction between model architecture choices (layer depth, attention head count) and inference latency under production load (10,000+ requests/second) was unknown. Standard benchmarks assume single-request scenarios and do not account for resource contention in multi-tenant deployments.

What this Line 242 example illustrates:

  • Specific technical uncertainties, not business goals
  • Explains why existing methods (cited) were insufficient
  • Quantifies requirements (sub-second latency, <2% false positive)
  • Identifies the knowledge gap (no published method addresses X+Y+Z)
  • Avoids marketing language ("cutting-edge," "innovative")

Line 244: Work Undertaken (Systematic Investigation)

(Maximum: 700 words | No minimum and no filler | Purpose: Describe hypotheses, experiments, observations, analysis, iterations)

Phase 1: Architecture Prototyping (Jan-Feb 2024)

We hypothesized that reducing attention complexity from O(n²) to O(n log n) via hierarchical bucketing would enable real-time processing. We implemented three prototype architectures: (A) standard transformer with windowed attention, (B) LSH-based sparse attention (Kitaev et al. 2020), and (C) a novel hierarchical attention mechanism with temporal bucketing.

Experiments measured inference latency and anomaly detection accuracy (AUC-ROC) on a held-out dataset of 10M historical transactions. Fictional source reference: commit a3b5c7d and PR #23. Prototype A achieved 850ms latency (too slow); B achieved 320ms but AUC dropped to 0.78 (vs. 0.91 baseline); C achieved 280ms with AUC 0.88. However, C exhibited convergence failures when batch size exceeded 1000 samples.

Phase 2: Convergence Debugging (Mar 2024)

We hypothesized gradient explosion in the hierarchical bucketing layers caused convergence failures. Fictional source reference: Jira ticket ANAL-45. We systematically tested three mitigation strategies: (1) gradient clipping (max norm 1.0), (2) layer normalization placement (pre-activation vs. post-activation), (3) adaptive learning rate schedules (cosine annealing). Experiments 1 and 3 showed marginal improvement (~10% reduction in divergence events); experiment 2 alone had no effect; but combining 1+2 achieved stable convergence across 50 training runs.

Analysis of gradient magnitude histograms documented in the fictional notebook experiments/gradient_analysis.ipynb revealed that bucketing layers accumulated gradients across time steps, causing exponential growth. Adding per-layer gradient scaling resolved this.

Phase 3: Distributed Training Optimization (Apr 2024)

For production-scale training (100M+ samples), single-GPU training was infeasible (estimated 14 days). We hypothesized that parameter server architecture with asynchronous updates would enable multi-GPU training. Fictional source reference: commit f8e9a1b and PR #47. Initial multi-GPU experiments showed only 2.3× speedup with 8 GPUs (expected ~7×), indicating a communication bottleneck.

Profiling revealed 68% of time spent in gradient synchronization. We developed a novel hybrid approach: (1) layer-wise gradient compression using top-k sparsification, (2) hierarchical reduction trees instead of parameter server, (3) overlapping computation and communication. Final implementation achieved 6.1× speedup with 8 GPUs and communication overhead reduced to 18%.

Phase 4: Incremental Learning Regime (May 2024)

To address non-stationary distributions, we tested a hybrid training approach: warm start from checkpoint, freeze 70% of parameters (embedding and lower layers), train upper layers and attention heads on recent data with experience replay (buffer of 50K historical samples). Fictional source reference: experiment logs dated May 15-22. This maintained AUC >0.86 across three distinct market regime shifts while adapting to new patterns within 2 hours of training.

What this Line 244 example illustrates:

  • Structured chronologically by phase
  • Each phase: hypothesis → experiment → observations → analysis
  • Points to specific fictional contemporaneous records in plain language
  • Reports both successes AND failures ("Prototype A too slow")
  • Quantifies results (850ms, AUC 0.78, 6.1× speedup)
  • Shows iteration and learning ("Analysis revealed... so we tried...")

Line 246: Scientific or Technological Advancement

(Maximum: 350 words | No minimum and no filler | Purpose: Describe the new knowledge/capability generated, not business benefits)

The work resulted in three scientifically validated advancements:

1. Hierarchical Temporal Attention Mechanism: We developed and validated a novel attention architecture for streaming time-series data that achieves O(n log n) complexity while maintaining representational capacity. Unlike prior sparse attention methods (which sacrifice accuracy), our approach exploits temporal structure: recent observations use full attention, while historical context is accessed via learned hierarchical buckets. Controlled experiments demonstrate comparable AUC (0.88 vs. 0.91 for O(n²) baseline) with 3.2× faster inference. This represents a new capability: real-time transformer inference on high-frequency streams.

2. Gradient-Stable Distributed Training Protocol: We identified and solved a fundamental instability in distributed training of temporal attention models: gradient accumulation across time steps causes exponential growth during backpropagation through recurrent structures. Our solution—per-layer gradient scaling combined with hierarchical reduction trees—enables stable 8-GPU training with 95% scaling efficiency. Prior to this work, such models required single-GPU training (14 days) or exhibited frequent divergence. We now achieve stable training in 28 hours.

3. Hybrid Incremental Learning Regime:We demonstrated that selective parameter freezing (70% of weights) with experience replay enables adaptation to non-stationary distributions without catastrophic forgetting. This is a departure from standard approaches (full retraining or naive online learning) and represents a new training paradigm for production ML systems in evolving domains. Experiments across three market regime shifts show sustained performance (AUC >0.86) with <2 hour adaptation time.

What this Line 246 example illustrates:

  • Focuses on knowledge generated, not product built
  • Explains how advancement differs from prior state of the art
  • Quantifies the advancement (3.2× faster, 95% scaling efficiency)
  • Avoids business outcomes ("faster product," "customer satisfaction")
  • Positioned as scientific/engineering contribution

Common Mistakes to Avoid

❌ Too vague:

"We built an ML system to improve anomaly detection performance."

→ Missing: What was uncertain? Why was it uncertain? How did you investigate?

❌ Business-focused:

"The advancement is a faster product that will increase revenue and customer satisfaction."

→ Business benefit alone does not explain a scientific or technological advancement. Describe the knowledge or capability generated by the work.

❌ No evidence citations:

"We tried several approaches and eventually found one that worked."

→ Connect the account to relevant supporting records that actually exist, such as experiment notes, commits, tickets, test results, or logs.

❌ Only successes:

"We designed the perfect architecture and deployed it successfully."

→ A success-only account can hide the systematic investigation. Accurately include material failed or inconclusive approaches when they were part of the work.

Disclaimer: This fictional example is educational content about narrative structure, not tax or legal advice and not a conclusion that any activity is eligible. Your narrative must reflect your own uncertainties, work, evidence, and advancements. A qualified adviser should review the complete claim before filing.

Build an evidence-linked first draft

SR&ED Copilot can use selected GitHub, Jira, or Slack records to help draft lines 242, 244, and 246. You remain responsible for checking every fact, citation, and eligibility position before filing.

Start guided setup