A method of handwriting recognition, comprising: receiving, by a processor, an input corresponding to a handwritten word having a plurality of characters; applying, by the processor, a first recognition model to the input handwritten word, the first recognition model configured to determine a first confidence level of a first portion of the input handwritten word and a second confidence level of a second portion of the input handwritten word, the first confidence level indicating a likelihood of the first portion of the input handwritten word including characters that can be matched with a known letter and the second confidence level indicating a likelihood of the second portion of the input handwritten word including characters that can be matched with a known letter, wherein the first recognition model does not attempt to identify characters but identifies characteristics of the input handwritten word for potential characters, the characteristics of the input handwritten word for potential characters comprising one or more of: estimated heights of characters in the input handwritten word, characteristics that ascend above a marker indicating an average height of the input handwritten word, characteristics that descend below a baseline of the input handwritten word, a number of potential characters of the input handwritten word and estimated widths of potential characters of the input handwritten word; applying, by the processor, a second recognition model to the input handwritten word, wherein the second recognition model is different from the first recognition model, and the second recognition model is configured to determine characters of the input handwritten word and one or more words that include the determined characters, wherein the second recognition model determines the characters based on the characteristics identified by the first recognition model; applying, by the processor, a third recognition model configured to determine a set of one or more candidate words, a probability of each candidate word and rank the candidate words based on their respective probability, wherein the third recognition model determines the one or more candidate words based on a combination of the characteristics determined by the first recognition model and the words determined by the second recognition model; and outputting, by the processor, one or more candidate words for the input handwritten word from the set of candidate words. receiving, by a processor, an input corresponding to a handwritten word having a plurality of characters; applying, by the processor, a first recognition model to the input handwritten word, the first recognition model configured to determine a first confidence level of a first portion of the input handwritten word and a second confidence level of a second portion of the input handwritten word, the first confidence level indicating a likelihood of the first portion of the input handwritten word including characters that can be matched with a known letter and the second confidence level indicating a likelihood of the second portion of the input handwritten word including characters that can be matched with a known letter, wherein the first recognition model does not attempt to identify characters but identifies characteristics of the input handwritten word for potential characters, the characteristics of the input handwritten word for potential characters comprising one or more of: estimated heights of characters in the input handwritten word, characteristics that ascend above a marker indicating an average height of the input handwritten word, characteristics that descend below a baseline of the input handwritten word, a number of potential characters of the input handwritten word and estimated widths of potential characters of the input handwritten word; applying, by the processor, a second recognition model to the input handwritten word, wherein the second recognition model is different from the first recognition model, and the second recognition model is configured to determine characters of the input handwritten word and one or more words that include the determined characters, wherein the second recognition model determines the characters based on the characteristics identified by the first recognition model; applying, by the processor, a third recognition model configured to determine a set of one or more candidate words, a probability of each candidate word and rank the candidate words based on their respective probability, wherein the third recognition model determines the one or more candidate words based on a combination of the characteristics determined by the first recognition model and the words determined by the second recognition model; and outputting, by the processor, one or more candidate words for the input handwritten word from the set of candidate words.