Providing useful abstractions requires a formal understanding of what is being abstracted. We present a formal semantics for a data analysis and visualization environment call Stencil. The semantics are based on a variant of functional reactive programming. We then use the semantics to extend Stencil to include additional useful elements that difficult to properly implement in an ad-hoc fashion.