Curbside
Turn every drive into feedback you can use.
Curbside scores every drive from your phone's sensors, pins each hard brake and sharp turn on a map, and replays the five seconds before it. Smooth drives build a Curbside Score from 0 to 100 that families can see, compete on and reward.
Inspiration
Learning to drive ends with a short test. After that, nobody is in the passenger seat. The habits that put new drivers at risk are small: braking late and hard, launching off a green light, taking a turn too fast. You can't remember where you did them, and a parent who wasn't in the car can't see them at all.
A friend of ours was hit by a car going 50 mph. It turned the statistics into something we couldn't look away from. How fast someone drives and how late they brake are habits built over hundreds of ordinary drives where nobody gives the driver any feedback.
We can't undo that. We can give drivers feedback on those habits before it happens to someone else. Curbside scores braking, acceleration and cornering today, and speed-limit matching is next on our list because of moments like this one.
What the research says:
- The risk is high and concentrated. About 2,800 U.S. teens aged 13 to 19 were killed in car crashes in 2020, and about 227,000 were injured [1]. Per mile driven, drivers aged 16 to 19 have a fatal crash rate about three times that of drivers 20 and older [2].
- Feedback alone isn't enough, and family involvement matters. In a randomized trial of 240 Ohio parent–teen pairs, in-vehicle feedback plus parent communication training reduced risky events (adjusted incidence rate ratio 0.68), while feedback alone did not significantly reduce them [3]. A telematics trial with young Western Australian drivers found no significant differences between groups [4]. That is why Curbside brings the family in, with the teen's consent.
- Incentives can move behavior. In a randomized trial of 397 taxi drivers, financial incentives reduced the share of distance driven more than 10% over the speed limit [5]. Those were adult male drivers, so we read it as a reason to test rewards with teens, not as proof.
- Phones can measure it, with care. Mounted smartphones tracked high-acceleration events alongside an in-vehicle data system, though mounting and road bumps affected readings [6]. A large-scale smartphone hard-braking model matched aggregated crash data [7]. That is why Curbside makes GPS confirm every hard brake.
We don't claim Curbside reduces crashes. It is built from what the evidence points to, and it needs a real pilot to test.
"You drove a little rough" is trivia. "Hard brake 2 minutes in, and here are the 5 seconds before it" is something you can change.
What it does
- Drive. Tap Start Drive. The screen shows your speed and an End drive button, and nothing else. No live ranking, no popups, no notifications until the drive is over.
- Get scored and see why. When the drive ends, you get a score out of 100, a map with every hard brake, fast start and sharp turn pinned by severity, and the one habit that cost you the most points.
- Replay the five seconds before any event. Tap an event and watch a car marker move along your route with a live speed readout and a brake-force bar, so you can see where you should have started braking.
- Build your Curbside Score. Every drive feeds a long-term score from 0 to 100 that moves like a credit score. It doesn't grade you daily. Missing a week changes nothing. Steady, smooth driving lifts it, one bad drive dents it a little, and a pattern of bad drives pulls it down. Four tiers: Bronze (0 to 59), Silver (60 to 79), Gold (80 to 89) and Platinum (90 to 100).
- Share with your family and earn rewards. A parent creates a family and invites teens with a code. Teens consent first and see exactly what parents can see. Parents get a dashboard and a leaderboard that includes the parents, because they drive too. Parents set goals tied to the score ("hold 80+ for four weeks") and a prize. Higher tiers unlock partner offers. The partners in the app are fictional samples.
It is not a surveillance tool and it has no live location. It answers one question: what should I do differently on my next drive?
How we built it
iPhone sensors ──► Core Motion (50 Hz) + Core Location (GPS)
│
▼
CurbsideCore (pure Swift package)
├─ Detection EventDetector · AxisEstimator · GPSTrack
├─ Scoring DriveScore (0–100) · CurbsideScore (0–100, 4 tiers)
├─ Replay EventClip (the 5 s before each event)
├─ Family shared data · leaderboard · consent disclosure
└─ Rewards parent goals · partner catalog · celebrations
│
┌─────────────────┼──────────────────────┐
▼ ▼ ▼
SwiftUI app SwiftData + raw Firebase Auth + Firestore
(MapKit, JSON logs (family data only, only
Swift Charts) on the phone with consent)
iOS app
- Swift 6, SwiftUI,
@Observable, SwiftData, MapKit and Swift Charts. - Core Motion streams gravity-free acceleration at 50 Hz, and Core Location streams GPS speed, heading and position.
- All detection and scoring logic lives in
CurbsideCore, a local Swift package with no UIKit, SwiftUI or Core Location dependencies. The app feeds it sensor samples and shows the results. - One design system covers the dark glass look. Tier colors always appear next to a text label.
Detection
- A phone in a cupholder doesn't know which way the car faces, shakes over bumps and gets picked up at red lights, so the detector handles each:
- It learns the car's forward axis by matching motion to GPS speed changes, and relearns if the phone tilts more than 20° or spins in its mount.
- A hard brake or fast start counts only if GPS shows the car's speed really changed. A sharp turn needs both the gyroscope and a GPS heading change.
- Fast pitch or roll means the phone moved, not the car, so events around those moments are rejected.
- Events are moderate, hard or severe by peak force. A hard brake starts at 0.28 g and a severe one at 0.50 g.
- Every rejected candidate records why: too short, phone moved, no GPS, too slow, or speed not confirmed.
Scores
- Drive score: each event costs points by type (hard brake 8, sharp turn 6, fast start 5), multiplied by severity (1×, 1.5× or 2.5×) and scaled by distance.
- Curbside Score: a recency-weighted average of drive scores. Each older drive counts 0.95× the next newer one. Decay is by drive count, never by calendar day. Longer drives count more, clamped between 0.4× and 2×. New drivers start with eight virtual drives scoring 80. Tunable anchors map the average to the score and set how hard each tier is to reach.
- The score is never stored. It is a pure function of your scored drives, so changing the formula re-scores your whole history.
Family, privacy and backend
- Firebase Auth (Sign in with Apple) and Cloud Firestore. Families go through a
FamilyBackendprotocol, with an in-memory demo family so the app runs without Firebase. - Privacy is enforced in Firestore security rules, tested in the emulator: nothing is stored unless a member is sharing, drives are readable only by their owner and the family's parents, and teens see the leaderboard but never another member's drives.
- Raw sensor logs, speeds, g-forces and event replays never leave the phone. Only drives recorded after a teen consents are shared, and turning sharing off deletes what was shared.
- A test fails if the shared data gains a field the consent screen doesn't list.
- Every alert, prompt and reward celebration goes through one
PromptGatethat holds it until the drive ends.
Tuning on real drives
- Every drive saves its raw sensor log as JSON. A
replaycommand-line tool runs that log through the same detector and scorer the app uses, prints every event and rejection, and exports the signal as CSV. We could export a real drive, replay it, change one value and replay again.
Why Curbside fits Cox Automotive: Social Good
Who it's for. New drivers and the families who worry about them. Teens carry the highest crash risk, and the habits behind it are invisible to everyone, including the driver. The same approach later applies to rideshare and delivery drivers, fleets and insurers.
How it helps. It gives teens feedback they can act on and a reason to care. The Curbside Score gives safe driving one number people understand, and the five-second replay shows why a drive lost points, not only that it did. It brings parents in without tracking them: no live location, no routes on the leaderboard, and raw data stays on the phone. The research points to feedback plus family involvement as the combination to build around [3].
Why it fits automotive. Curbside turns everyday phone sensor data into a picture of how someone drives, with no hardware in the car. That is useful to the families of new drivers today, and later to insurers, fleets and dealers who want to spot risky habits early and reward safe ones.
What we don't claim. Curbside has not been tested for crash reduction. Our next step is a measured pilot.
Why Curbside fits MLH: Best Domain Name from GoDaddy Registry
Our domain is [curbyourhabits.club]. "Curb" is half of our name and a verb that means to hold back. Curbside's whole job is to show you the one habit to curb, so the name says what the app does before you open it.
Challenges we ran into
- Which way is forward? A phone can sit at any angle in the car. We learn the car's forward direction from GPS speed changes and notice when the phone is moved, so we can relearn it.
- False hard brakes. Dropping the phone, bumps and picking it up at a light all looked like events at first. Requiring GPS to confirm the speed change and ignoring phone handling fixed most of them.
- A score that feels fair. A daily score punishes people for not driving. Decaying by drive count and starting new drivers at a neutral score made it feel like a credit score.
- Privacy for teens. We wanted parents to trust what they see without the app feeling like surveillance. Deciding exactly what leaves the phone, and enforcing it in rules and tests, took real design work.
- Quiet by design. A rewards app wants to celebrate, and a driving app can't. Routing every alert and celebration through one gate that waits for the drive to end solved it.
- No sensors in the Simulator. Every detection change had to be tested on a real phone in a real car.
Accomplishments that we're proud of
- The whole loop works end to end: record, detect, score, replay, build a Curbside Score, share with a family and earn a reward.
- A detector that explains every rejected event, so tuning is based on evidence.
- Privacy rules enforced on the server and checked by tests, not only promised in the app.
- A safety rule built into the architecture: nothing can pop up during a drive.
- A score that behaves like a credit score, written as one pure function with tests.
- About 10,000 lines of Swift with 77 Swift tests, plus Firestore rules with 22 rules tests.
What we learned
- Get the physics right before tuning the numbers. Most "threshold problems" were really problems with gravity or phone orientation.
- Combining sensors is an uncertainty problem. The system has to know when to count an event and when to refuse.
- A score people trust has to be stable. How slowly it moves matters more than how precise it is.
- Replaying real drives through the real code made every fix faster and safer.
- Privacy is easier to design in from the start than to add later.
What's next for Curbside
- Automatic drive start: begin recording when Core Motion detects driving, with no tap.
- Score-only sharing: families see score, tier and event counts, with no routes. Today a shared drive includes a simplified route, and we're removing it.
- A Privacy screen that shows what stays on the phone and what is shared, with toggles.
- New screens from our redesign: a coaching card with a points breakdown after each drive, a family goal card, and a scannable "show at checkout" offer card.
- Validation on real drives: compare detection to a reference measurement, and report false positives separately from detection rate so that rejecting everything can't look perfect.
- A measured pilot: test whether feedback, family involvement and rewards reduce risky events, since the research says feedback alone may not [3][4].
- Speed-limit matching and telling driver from passenger.
- Real partner offers in place of the sample catalog.
- Parents on Android or web, so whole families can join.
References
- Centers for Disease Control and Prevention. Teen Drivers (2020 data). https://www.cdc.gov/teen-drivers/
- Insurance Institute for Highway Safety. Teenagers. https://www.iihs.org/research-areas/teenagers
- Yang, J., Zhang, Y., Alshaikh, E., et al. (2026). In-Vehicle Feedback With or Without Parent Communication Training and Teenage Driving Behaviors: A Randomized Clinical Trial. JAMA Network Open, 9(4), e268631. https://jamanetwork.com/journals/jamanetworkopen/fullarticle/2848141
- Meuleners, L., Fraser, M., Stevenson, M., & Roberts, P. (2023). Personalized driving safety: Using telematics to reduce risky driving behaviour among young drivers. Journal of Safety Research, 86, 164–173. https://pubmed.ncbi.nlm.nih.gov/37718043/
- Malekpour, M.-R., Ghamari, S.-H., Ghasemi, E., et al. (2023). The effect of real-time feedback and incentives on speeding behaviors using telematics: A randomized controlled trial. Accident Analysis & Prevention, 191, 107216. https://pubmed.ncbi.nlm.nih.gov/37429155/
- Freidlin, R. Z., Dave, A. D., Espey, B. G., et al. (2018). Measuring risky driving behavior using an mHealth smartphone app: Development and evaluation of gForce. JMIR mHealth and uHealth, 6(4), e69. https://mhealth.jmir.org/2018/4/e69/
- Liu, L., Racz, D., Vaillancourt, K., et al. (2023). Smartphone-based hard-braking event detection at scale for road safety services. Transportation Research Part C, 146, 103949. https://arxiv.org/abs/2202.01934
Built With
- core-location
- core-motion
- firebase
- firestore
- mapkit
- react
- sign-in-with-apple
- swift
- swift-charts
- swift-testing
- swiftdata
- swiftui
- typescript
- vite
- xcodegen
Log in or sign up for Devpost to join the conversation.