A project of BYU Marriott School of Business

Data that teaches like the real world.

BlueForge is a data simulation platform for analytics and information systems courses. Faculty define a scenario, configure how the data should be wrong, and stream it to students through an authenticated API. The shares behave like production data, messy, continuous, evolving over time, so that the pipelines and analyses students build have to handle what real data actually does.

How it works

Three steps from a syllabus to a stream of data.

The model is small on purpose. A faculty member should be able to take a learning objective from their syllabus and turn it into a live data source before the next class meeting.

01 / Define

Define a scenario

Describe the world the data is from. An e-commerce returns flow, a clinic's patient encounters, a manufacturing telemetry stream. BlueForge generates entities, relationships, and a stable identity for each row so the data joins like it should.

02 / Configure

Configure the messiness

Decide what should go wrong, and how often. Missingness by mechanism, late arrivals with a delay distribution, slowly-changing dimensions, drift events scheduled to specific course weeks. Every injection ships with a diagnostic and a remediation in the answer key.

03 / Stream

Stream to students

Students hit the share through an authenticated API. Everyone on the roster pulls the same live, reproducible stream, so the whole class builds against one shared realistic dataset and the same answer key. The stream keeps running for the length of the term.

Use cases

Built around the issues each course actually teaches.

The platform is one product but the priorities differ by course. Data engineering cares about late arrivals and schema drift. Statistics cares about heteroscedasticity and confounding. The shares are configured accordingly.

IS 566 · Week 5

A high-volume click and page-view stream with the failure modes a production pipeline has to survive. Students build watermarked ingestion, route bad records, and adapt when the schema changes mid-term.

  • Inject3% late arrivals, exp(λ=90s) with a heavy tail to 48 hours
  • Inject0.5% duplicate events from simulated client retries
  • DriftWeek 6: new field device_type appears in payload
  • DriftWeek 8: region encoding switches from codes to names
  • Inject1% of events carry an orphan user_id
See the data engineering preset →
web_events / live preview240 rowsupdated 12s ago
event_idevent_timeingest_timeuser_idactionregion
evt_8af2c114:02:1814:02:19u_4812viewUT
evt_8af2c214:02:1914:02:20u_2207clickCA
evt_8af2c314:02:2014:48:51 +47mu_4812viewUT
evt_8af2c414:02:2114:02:21u_9913 orphanviewNV
evt_8af2c514:02:2214:02:23u_2207add_cartCA
evt_8af2c614:02:2314:02:24u_4471viewnull
evt_8af2c714:02:2414:02:25u_4812clickUT
evt_8af2c814:02:2514:02:25u_1180view dupTX
IS 414 · Week 3

A descriptive analytics dataset with a Simpson's paradox built in. The aggregate trend favors one region; disaggregated by salesperson tier, the conclusion reverses. Students learn to question aggregates before they report them.

  • SetupTier mix differs between regions, by design
  • InjectHeavy-tailed deal_size on the West cohort
  • InjectSlowly-changing segment attribute on customer
  • Inject4% MCAR missingness on discount
  • DriftSampling drift: a new sales territory comes online in week 9
See the analytics preset →
regional_sales / Q3 aggregateby region × tier
regiontierdealsavg_sizewin_rate
EastSenior412$18,4200.38
EastJunior128$6,2100.19
WestSenior141$22,1800.44
WestJunior389$7,1400.23
Aggregate by region
East540$15,5350.33 aggregate
West530$11,1350.29
IS 545 · Week 7

A binary classification share with deliberate class imbalance, concept drift, and a feature that quietly leaks the target. The point is to teach students to evaluate beyond accuracy and to find the leak before they ship the model.

  • SetupPositive class at 0.8%, drifting to 2.1% by week 10
  • InjectConcept drift: P(y | x) shifts mid-term
  • TrapDerived feature days_to_decision contains target leakage
  • InjectNew categorical level in channel after week 8
  • InjectHeavy-tailed requested_amount destabilizes tree splits
See the machine learning preset →
credit_decisions / class balance over time16-week run
weekrecordspositivesratenotes
11,840150.82%baseline
21,902140.74%baseline
31,855170.92%baseline
41,876221.17%ramp
51,910281.47%ramp
61,889311.64%ramp
71,921351.82%concept drift
81,943381.96%concept drift
STAT 330 · Week 4

A regression dataset that fails its diagnostics in three different ways at once. Heteroscedasticity, non-normal residuals, and a single high-leverage point. Students learn that the model can fit and still be wrong.

  • SetupResidual variance scales with years_experience
  • SetupOne observation with Cook's distance > 1
  • SetupRight-skewed residuals (lognormal-flavored target)
  • InjectMulticollinearity between tenure and level (VIF ≈ 8)
  • Inject6% MAR missingness on bonus
See the statistics preset →
salary_survey / residual diagnosticsn = 1,200
idfittedresidualleveragecook's d
obs_001282,140+3,2100.0040.01
obs_018494,680−2,1400.0060.00
obs_0247118,400+14,8200.0380.08 tail
obs_039876,210−1,8400.0030.00
obs_0512412,000+218,4000.1821.34 influential
obs_065488,920+9400.0040.00
obs_0820132,180+18,2000.0410.11 tail
obs_104194,140−12,6400.0120.02
IS 312 · Week 6

A geographic share where the default chart misleads. Choropleth by total count makes one region look like an outlier; per-capita reverses the story. Students learn that the encoding choice is the analysis.

  • SetupPopulation varies 60× across cities
  • SetupBimodal distribution masquerading as outliers
  • InjectLikert-style responses that should not be averaged
  • SetupTime series with a regime change in week 11
  • Inject3% outliers from data entry errors mixed with legitimate tail
See the visualization preset →
city_metrics / raw vs. per-capita14 cities
citypopulationincidentsper 10krank shift
Provo115,40018215.8↑ 4
Salt Lake City204,50041220.1↑ 2
Ogden87,90014116.0↑ 3
Logan53,2006211.7↑ 5
St. George102,700888.6↓ 2
Las Vegas651,3001,82028.0 leader
Phoenix1,608,1003,14019.5↓ 4
Boise235,0002189.3↓ 3
Institutional context

Built at BYU Marriott.

BlueForge is a project of the BYU Marriott School of Business, built by Dave Wilson, a professor of Information Systems. It exists to give business school students experience with the imperfect, in-motion data they will encounter in industry.

It is not a commercial product. There is no roadmap to commercialization, no enterprise plan, no customer logos. The platform is available to faculty inside BYU Marriott, and source code and documentation are open for colleagues to read and learn from.

Status
Phase 1 · live
Pilot term
Fall 2026 · IS 566
Author
Dave Wilson, BYU Marriott