Machine Risk Monitoring

Back to the dashboard

PRISM FAQ

Updated October 20, 2026

Read this first

Safety. PRISM supports a qualified technician and does not replace an inspection. Stop the machine and call a qualified maintenance professional for any safety concern.

Status at a glance

AreaStatusShort answer
1. In-scope definitionDefinedOne simulated milling machine. Six checks. One score from 0 to 100.
2. Out-of-scope controlEnforced by designPRISM takes no actions on a machine. Its only writes are the override log and AI answer ratings. Every default sentence comes from a fixed template.
3. Escalation rulePartly builtHigh and Elevated scores point you to a technician. No "unsure" state exists yet.
4. Ownership and maintenanceDefinedJames Moore owns, runs and maintains PRISM.
5. LifecyclePartly definedContest demo. Not ready for real equipment.
6. SLA postureNo SLABest effort. No uptime, support or response commitments.

1. In-scope definition

What does PRISM do?

PRISM scores failure risk for one simulated milling machine, M-01. PRISM runs six checks: tool wear, heat buildup, power draw, overstrain, vibration and machine run hours. Each check gives a stress value from 0 to 1. The score is the highest stress, shown from 0 to 100. On the dashboard, each bar shows how close the readings are to the limit for one check, and 100 means the limit is crossed. PRISM then shows a band, a plain-English reason and one fixed action.

ScoreBandAction shown
0 to 39LowNo action needed. Keep monitoring.
40 to 69ElevatedSchedule an inspection at the next stop.
70 to 100HighStop the machine and inspect it now.

Sources: app/Services/RiskScorer.php, config/prism.php.

What does PRISM not do?
  • Read real machines. Every reading is simulated.
  • Forecast a failure date. The AI4I dataset is a snapshot of operating conditions, not a time series.
  • Score random failure. In AI4I, random failures occur with a 0.1 percent probability independent of every parameter, so no reading predicts them.
  • Learn from data. The score is rule-based. No trained model runs today.
  • Send alerts, email or messages. The only email PRISM sends is the invite that lets a contest judge choose a password. Alerts are on the roadmap only.
  • Store data. PRISM has accounts for invited contest judges (a name, an email address and a password stored as a hash). It also stores the override log of who kept a machine running after a stop warning, and Helpful or Wrong ratings of AI answers (no name, no text, no IP address).
  • Give engineering, maintenance or safety advice. See Terms section 4.

Sources: README.md, Terms and Privacy Policy.

How well do the checks work?

The four checks built on AI4I limits (tool wear, heat, power and overstrain) were tested on the 10,000 AI4I records. The 18 random-failure records were left out.

BandRecordsFailedFailure rate
Low7,44800 / 7,448 = 0.0%
Elevated1,8894040 / 1,889 = 2.1%
High645290290 / 645 = 45.0%

Check: 7,448 + 1,889 + 645 = 9,982, which equals 10,000 minus 18.

The same dataset supplied the limits. These figures show fit to AI4I. They do not show performance on real machines. The vibration and run hours checks are not tested on any failures.

Source: README.md.

Where does the data come from?

Every reading on the dashboard is simulated. Baselines and limits for temperature, speed, torque and tool wear come from the AI4I 2020 Predictive Maintenance Dataset (Matzka, 2020, UCI Machine Learning Repository, CC BY 4.0).

AI4I has no vibration or machine run hours. Those two readings are invented for this demo and their checks are not tested on real failures. The vibration limits PRISM uses (1.4 and 4.5 mm/s RMS) are ISO 10816-3 Group 2 zone boundaries. The 8,000 hour overhaul interval is a placeholder.

Sources: config/prism.php, README.md.

What does PRISM stand for?

Predictive Real-time Infrastructure Sensor Monitoring. Machine Risk, Made Clear.

2. Out-of-scope risk control

Will PRISM take actions or make commitments nobody approved?

No. PRISM is not an autonomous agent. The score and every default sentence come from fixed templates in the check classes under app/Services/Checks. Only three action lines exist (see the table in section 1).

When a visitor presses Explain this reading and the band is Elevated or High, two optional AI calls restate that result: a likely-cause note and a draft work order. The AI sees only the score result. It cannot act, send or change anything, and code sets the work order priority. AI text can be wrong, so the score and the safety disclaimer rule. If the AI is slow, off or returns unusable text, the fixed text shows.

PRISM has no tool to act with. PRISM has no link to a machine, and its only email is the invite that lets a contest judge choose a password. Its only writes are the override log, POST /api/overrides, and AI answer ratings, POST /api/ai-feedback. Both record a decision or a rating and change nothing on a machine. The judge invite and set-password pages also write judge accounts, and change nothing on a machine. The other routes are read-only: /, /api/readings, /api/diagnosis, /api/work-order, /login, /ai, /privacy, /terms, /faq and /sitemap.xml. A sign-in protects / and every /api/ route. A separate password protects /overrides, the page that lists the log.

Sources: routes/web.php, app/Http/Controllers/DashboardController.php.

What input does PRISM accept?

The readings endpoint accepts two values.

  • scenario must be one of four names: worn_tool, overheating, overload or healthy.
  • tick must be a whole number from 0 to 1,000,000.

The AI routes take the same two values. Anything else is rejected, and a JSON request gets an HTTP 422 error. PRISM does not guess at bad input. An automated test covers the unknown-scenario case.

Sources: DashboardController.php, tests/Feature/DashboardTest.php.

What limits the claims PRISM makes?
  • Tool wear alone never scores above 60.
  • Machine run hours alone never score above 50.
  • A Low score does not mean a machine is safe. A High score does not prove a machine is about to fail (Terms section 4).
  • Do not use PRISM to make safety, repair or production decisions about real equipment (Terms summary).

Sources: config/prism.php (tool_wear.cap, run_hours.cap), Terms.

Who decides what PRISM is allowed to do?

James Moore owns the code and decides what ships. Changes happen in the GitHub repository moorejp-coder/PredictiveMaintenanceAnalyst. New data collection needs a Privacy Policy update first (Privacy section 10).

3. Escalation rule

What does PRISM do when readings look risky?

PRISM sends you to a person. A High score says to stop the machine and inspect it now. An Elevated score says to schedule an inspection at the next stop. The dashboard footer adds: stop the machine and call a qualified maintenance professional for any safety concern.

What does PRISM do when PRISM is unsure? Not built

PRISM has no confidence score and no "unsure" state. Every valid input gets a score. Known gaps:

  • A Low score reads "No action needed" even for failure types PRISM does not check, such as random failure.
  • The vibration and run hours limits are demo values, and both checks affect the score.

Until an "unsure" state exists, treat every score as a prompt for a technician. Treat no score as a decision. The Terms say the same: do not rely on PRISM to decide when to run, stop, repair or service real equipment.

Sources: RiskScorer.php, Terms section 4.

Who receives an escalation?

A qualified maintenance professional at your site. PRISM has no ticket, page, email or chat route. PRISM shows the instruction on screen and stops there.

If an operator keeps a machine running after a High score, PRISM asks for a name and a reason and records them in the override log, with the time and the reading. PRISM does not verify the name, and the log does not notify anyone.

4. Ownership and maintenance

Who owns PRISM?

James Moore built and operates PRISM as a student project for the CUA Busch School AI Vibe Coding Contest, Fall 2026. The Catholic University of America does not operate the site and does not receive data from it.

Source: Privacy Policy section 1.

Who maintains PRISM, and how?

James Moore maintains PRISM. The code lives in the GitHub repository moorejp-coder/PredictiveMaintenanceAnalyst. The repository holds automated tests for the scoring rules, the sensor simulator and the pages. AWS Elastic Beanstalk (region us-east-2) hosts the site.

Sources: tests/ folder, Privacy Policy section 4.

What needs regular upkeep?
  • Scoring limits. The values in config/prism.php. The AI4I limits are fixed. The vibration limits (1.4 and 4.5 mm/s RMS) follow ISO 10816-3 Group 2 zone boundaries. The 8,000 hour overhaul interval is a placeholder.
  • Terms and Privacy Policy. Both carry an effective date of October 19, 2026. Any new data collection means a new Privacy Policy first.
  • HTTPS. The live site uses a free Let's Encrypt certificate. A renewal check runs twice a day on the server. A rebuilt server requests a new certificate, and the DuckDNS name must point to the new address first.
How do I report a problem or ask a question?

Email James Moore at moorejp@cua.edu. The same address is in section 11 of the Privacy Policy and section 13 of the Terms.

5. Lifecycle reality

How long will PRISM stay online?

No guarantee. PRISM is a contest entry. PRISM changes, pauses or shuts down at any time without notice, and the live site might go offline when the contest ends.

Source: Terms section 9.

Is PRISM ready for real equipment?

No. Reasons:

  • Every reading is simulated.
  • AI4I is synthetic data, built to mirror real milling data. A factory floor did not produce it.
  • The vibration and run hours readings are invented for the demo, and their checks are untested.
  • The 8,000 hour overhaul interval is a placeholder.
  • The limits were checked on the same dataset they came from.
  • The site has no HTTPS.

Sources: README.md, Terms section 3.

What happens when the limits go stale?

PRISM does not retrain, recalibrate or watch for drift. AI4I is a synthetic dataset published in 2020 (Matzka, 2020). Machines in the field are not guaranteed to match AI4I. Changing a limit means editing config/prism.php and deploying again.

What is on the roadmap?

The Privacy Policy names live sensor feeds and alerts as roadmap items. The scorer class is built to be swapped for a trained model without changing the page. Roadmap items are not commitments. Live feeds and alerts would collect new data, so the Privacy Policy would change first.

Sources: Privacy Policy section 10, RiskScorer.php comments.

What happens to data when PRISM shuts down?

PRISM has no sign-up. It has one judge account, created from environment properties and not from the code. The judge account and the override log live in a file on the host, so a replaced or shut-down server erases the log unless it was exported first. The next deploy creates the judge account again. Server logs stay on the host until the platform rotates them or the server is replaced or shut down.

Source: Privacy Policy sections 2 and 5.

6. SLA posture

Does PRISM offer a service level agreement? No SLA

No. PRISM offers no uptime target, support hours, response time or accuracy guarantee. PRISM is provided "as is" and "as available," with no promise of accuracy, reliability, security or availability. The total liability of James Moore for any claim is zero dollars, except where the law does not allow that limit.

Source: Terms sections 7 and 8.

What does PRISM offer instead?

Best effort from one person. This site documents no on-call coverage, monitoring, backup or failover plan.

Is the connection secure?

Yes. The live site loads over HTTPS with a free Let's Encrypt certificate, so traffic between your browser and PRISM is encrypted. Do not enter sensitive information anyway. PRISM has no field to ask for any.

Source: Privacy Policy section 6.

How much traffic is acceptable?

Do not send automated or repeated requests to the readings endpoint or the Explain this reading feature. The Terms list this under acceptable use, and PRISM reserves the right to block access for anyone who breaks the rules. The two AI routes are limited to 30 requests a minute.

Sources: Terms section 5, routes/web.php.

Terms and Conditions · Privacy Policy · Dashboard