Filipino shaved ice dessert layered with sweetened beans, jellies, fruits, flan, ube ice cream, and evaporated milk.
Evolved from Japanese kakigōri, most likely the variant called mitsumame (shaved ice with jelly, fruit, and sweet beans) brought to the Philippines by Japanese migrants in the 1920s–1930s — early versions, called mongo-ya, were sold in Quinta Market in Manila with just shaved ice and sweet mung beans. Filipino vendors layered in local sweets through the early 20th century; by the postwar period the dish had stabilized into the multi-component form. Ube ice cream was added in the 1970s.
Evolved from Japanese kakigōri sold at Manila's Quinta Market before 1900 as mongo-ya — just shaved ice and sweet mung beans. Ube ice cream joined in the 1970s. Halo means mix; smash everything together or you've missed the point.
A tall glass layered before mixing: shaved ice on top, then a tower of sweet red beans, garbanzos, kaong palm fruit, nata de coco, jackfruit strips, ube jam, leche flan, a scoop of purple ube ice cream. Evaporated milk poured over. "Halo" means mix — you smash everything together with a long spoon until it looks like rubble, then eat. Layered and pretty means uneaten.
The order of the layers matters mechanically. Beans and chewy elements at the bottom hold structure; ice in the middle thermally insulates the ice cream on top from the sweet bean syrup at the bottom. Pour milk last so it threads down through the ice rather than dissolving the jam on contact. The flavor isn't any one ingredient — it's the gradient from cold-creamy to chewy-syrupy that the spoon mines through.
Variations
Razon's of Guagua runs minimalist — three ingredients (macapuno, banana, leche flan) and milk; Iceberg's adds pinipig; Chowking's commercial version stacks everything; modern Manila bars run a deconstructed plated halo-halo with shaved frozen milk.
On the Palate
Where Halo-Halo sits in the Filipino flavor cloud
It's the layering and the pour, not any one ingredient: pack the chewy beans and jellies at the bottom, ice and ice cream on top, then pour the milk last so it threads down through the ice instead of dissolving the ube jam on contact — build it wrong and it collapses into sweet soup.
Ingredients
How it's made
5 steps · 15 min
- 12 min
In a small bowl, combine evaporated milk with sweetened condensed milk to taste. Stir until well mixed and set aside in the refrigerator to chill.
- 25 min
In a tall glass, layer a tablespoon each of nata de coco, palm fruit, white beans, red mung beans, sago, and fresh diced mango. Fill the glass to the brim with shaved ice, pressing gently to compact it.
Watch outLayer the chewy beans and jellies at the bottom first, then fill and gently compact the shaved ice — a firm-packed glass won't cave when you pour the milk.
- 33 min
Top the ice with a scoop of ube ice cream, a dollop of ube halaya, and pieces of flan. Add more nata de coco and mango as desired.
- 42 min
Slowly pour the chilled milk mixture over the top, allowing it to seep through the layers. Finish with a sprinkle of crushed corn flakes for added texture.
Watch outPour the milk in a slow trickle and watch it seep down through the ice, not pool on top — that slow thread is what keeps the layers intact.
- 53 min
Serve immediately with a tall spoon. To enjoy, dig from the bottom up, mixing the ingredients to create a symphony of flavors and textures.






