About the project — ContractTrap
Most people accept Terms & Conditions without reading them. Not because they don’t care — but because contracts are long, confusing, and full of legal language. That creates a real-world problem: unfair “trap clauses” can quietly remove user rights (e.g., forced arbitration, unilateral changes, broad account termination, and liability limits).
What inspired this
We wanted to build something that feels immediately useful:
a tool that turns contract language into a clear decision before someone clicks “I Agree.”
The question we explored
Should you accept this contract clause?
Before building the tool, we first investigated whether trap clauses are actually common and what patterns signal risk.
What we found (data story)
Using the UNFAIR-ToS dataset (LexGLUE), we analyzed real Terms clauses and observed that:
- Unfair patterns are frequent enough to matter
- A small number of recurring language patterns strongly correlate with high risk
(e.g., phrases like “sole discretion” and “without notice”) - These patterns are explainable — you can highlight the exact phrase that triggers concern
What we built
ContractTrap is a decision-first Hex data app that turns any contract clause into:
- ✅ Trap Score (0–100)
- 🧩 Detected trap type(s)
- 🔎 Risk signal phrase (evidence span)
- 🧠 Plain English explanation
- ✍️ Fair rewrite (a safer alternative)
Key feature: Compare Mode
Often the real question isn’t “is this bad?” — it’s:
“Is this version worse than the other version?”
So we added Clause A vs Clause B comparison, returning:
- verdict (A riskier / B riskier / tie)
- score breakdown
- evidence phrase for both
How we built it (in Hex)
We used Hex as a single workspace to:
- load and transform the dataset
- build an explainable scoring system
- create interactive charts and drill-down tables
- publish a shareable app
Method overview
1) Data: imported UNFAIR-ToS clauses + labels
2) Taxonomy mapping: mapped dataset labels into human-friendly trap categories
3) Scoring: created a transparent Trap Score based on severity weights
4) Explainability: extracted an “evidence span” (risk signal phrase)
5) User experience: built an interactive app with clause analysis + compare mode
6) Insights: added charts showing trap frequency and common risk language patterns
Challenges we faced
- Noisy contract clauses: some rows were low-signal definitions or fragments, so we filtered out irrelevant text to keep insights meaningful
- Making it shareable: dashboards alone aren’t enough — we had to design the app as a simple decision flow (input → recommendation → evidence → rewrite)
- Explainability: the key was showing why a score happened, not just giving a number
What we learned
- A decision tool beats a dashboard when the goal is impact
- The most valuable analytics experiences are explainable
- Even complex domains like contracts become usable if you focus on:
signal phrases + simple scoring + clear UX
What’s next
Browser extension: Agree-Safety Scanner
In the next version, we plan to build an extension that automatically detects Terms pages, scans the content, and shows:
✅ Safe / ⚠️ Medium risk / 🛑 High risk
before the user clicks “I Agree.”
Final takeaway
ContractTrap turns hidden contract risk into a clear decision — so users don’t unknowingly give up their rights.
Built With
- hex
Log in or sign up for Devpost to join the conversation.