Here's how I like to do deceleration. You add or subtract from the speed depending if it's positive or negative, and the min/max is to prevent acceleration after passing 0.
if speed>0
--- set speed to max(speed-deceleration*dt,0)
If speed<0
--- set speed to min(speed+deceleration*dt,0)
You can use any value for deceleration. If you want it to stop in a certain distance you could use this formula:
Deceleration=(starting_speed^2)/(2*distance)
You could probably set that under a on collision event.
If you want to check the speed of a Sprite from events the easiest way would be to read it from a behavior expression or if you're moving with events you hopefully have a speed variable to control how fast it goes.
Besides that you can find the speed by keeping track of the object's previous position and calculating the distance from the current position. After that you divide by dt.
Speed=distance/time
Global number oldx=0
Global number oldy=0
...
// bottom of the event sheet
Every tick
--- set text to "speed: "& distance(Sprite.x,Sprite.y, oldx,oldy)/dt
--- set oldx to Sprite.x
--- set oldy to Sprite.y