Halo-Halo: Bright Layers in a Glass, Mixed with the First Spoonful
Sweet mix-ins at the bottom, fine shaved ice on top, unsweetened evaporated milk poured over, and a few rich toppings to finish. Serve it in layers, and let the person eating it do the mixing.
A tall clear glass starts with small spoonfuls of sweet beans, jelly and fruit at the bottom. Fine, snow-like ice is heaped on top, evaporated milk runs down through it, and leche flan, ube and a scoop of ice cream sit at the crown. Then a long spoon goes in, and the neat layers turn into something new with every bite.
Halo-halo from the Philippines means "mix-mix," and the name describes exactly what you do with it. It is served unmixed so you can see each layer, and the eater stirs it from the bottom. Because every spoonful lifts a different share of ice, milk, beans and fruit, no two bites taste quite the same.
This home version makes 4 glasses with no cooking at all. The mix-ins are ready-made, cooked store-bought products, so the work is chilling, draining and assembling; the recipe this version follows puts assembly at about 10 minutes, with chilling time separate. Halo-halo has no single fixed recipe, so you don't need every mix-in listed here. Keep the core of sweet beans, fruit, jelly, ice and unsweetened milk, and build around what you can find.
In the Visayas, a warm dessert called binignit is also known as ginataáng halo-halo. It shares part of the name but is a different, warm dish. This article is about the cold shaved ice dessert.
Ingredients: 4 Glasses, Assembled from Ready-Made Mix-ins

These are the amounts to prepare for 4 servings. They are not amounts to pack entirely into four glasses: each glass gets small spoonfuls of several mix-ins, and whatever is left over goes back into separate containers in the refrigerator. All mix-ins are cooked, ready-to-eat products; don't add dried beans or raw sago pearls as they are.
Leche flan contains egg and milk, and evaporated milk is a dairy product. Ice cream, ube halaya, sweetened beans, coconut products and other mix-ins vary in allergens by product, so follow the label of each item you buy; cross-contact cannot be ruled out. Prepare the cooked mix-ins chilled and eat halo-halo right after assembling it. Keep leftover components in separate containers and store opened products as their labels direct.
Equipment
- Ice shaver (to make fine shaved ice)
- 4 tall clear glasses
- Long spoons for eating
- A small strainer and bowl for draining jarred and canned mix-ins
- A teaspoon for layering
- Separate containers for leftover mix-ins
Choosing Mix-ins and Substitutes
Halo-halo is a dessert of choices. Recipes and shops combine sweet beans, garbanzos, fruit, jelly, sago, nata de coco, kaong, macapuno, pinipig and more, and the mix differs from one to the next. It helps to think in families: beans, fruit, jelly and coconut, and toppings. If one item is missing, keep the family covered rather than hunting for an exact match.
Substitutes can make a good glass, but they are not the same as the Filipino ingredients, so expect a different flavor and texture.
| If you can't find | You can use | How it differs |
|---|---|---|
| Sweetened munggo, garbanzos or white beans | Other store-bought sweetened beans, or Japanese candied beans (amanatto) | Amanatto is often much sweeter because of its sugar coating, and its bean flavor differs |
| Kaong | Leave it out | Agar jelly does not reproduce its bite |
| Sweetened saba bananas | Store-bought bananas in syrup, or regular bananas briefly simmered in syrup | Regular eating bananas are softer than saba and smell different |
| Gulaman cubes | Agar jelly cubes | Many agar jellies set firmer |
| Ube halaya | Purple sweet potato paste | Similar color, but the aroma and sweetness differ. If it is unsweetened, add any sweetener only a little at a time |
| Leche flan | Store-bought custard pudding | The caramel and the set of the custard differ |
| Ube ice cream | Vanilla or mango ice cream, or none | Halo-halo without ice cream is also made |
| Pinipig | Puffed brown rice, or none | The toasted aroma differs; the dessert works without it |
Evaporated milk is the base, and it is unsweetened. Regular milk tastes thinner, and sweetened condensed milk is far sweeter, so neither is a same-amount swap. Fine shaved ice matters too: coarse crushed ice has a grainier texture and doesn't let the milk spread through as well.
Macapuno (a soft, sweet coconut preserve) and sago pearls are other common choices. Use them in place of, or alongside, the base mix-ins if you like, but use ready-to-eat products. Sago is a different thing from gulaman; treat it as its own option rather than as the same jelly.
Method: Mix-ins, Ice, Milk, Toppings, Then Mix
Mix-ins first, shaved ice next, evaporated milk over the ice, and toppings last. Don't mix before serving; the mixing happens at the table.
Everything is assembled cold, so get the mix-ins and glasses ready before you shave any ice. Once the ice is in the glass, work through to serving without stopping.
Too Sweet, Too Watery: Fixing It Before the Next Glass
Most problems with halo-halo come from the preparation: syrup that wasn't drained, ice shaved too early, or too many mix-ins at once.
| Problem | Likely cause | What to do |
|---|---|---|
| Too sweet | Syrup left on the mix-ins, sweetened condensed milk used, too many mix-ins | Drain the mix-ins well, use unsweetened evaporated milk, and start from a teaspoon of each mix-in |
| Turns watery quickly | Warm mix-ins or glasses, ice shaved too early, syrup not drained | Chill the mix-ins and glasses, and shave the ice just before serving |
| Can't find all the mix-ins | Specialty items unavailable | You don't need them all. Keep beans, fruit, jelly, ice and unsweetened milk, and leave out the rest |
| Layers collapse | Order changed, or mixed before serving | Keep the order: mix-ins, ice, milk, toppings. Mixing starts once eating starts |
| Doesn't taste like the original | Substitutes such as candied beans, pudding, purple sweet potato or regular bananas | These differ in flavor and sweetness; treat the result as your own version rather than an exact copy |
Variations: Shifting the Balance of the Glass
| Variation | How | What changes |
|---|---|---|
| More beans | Use two kinds among munggo, garbanzos and white beans | More starchy softness, and more sweetness |
| More fruit | Lean on langka and saba | More aroma and softness |
| Lighter | Skip the ice cream and drain the sweet mix-ins well | A cleaner, less rich glass; halo-halo without ice cream is also made |
| Less milk | Pour less evaporated milk | Each mix-in's own flavor stands out. Versions with coconut milk exist, but the flavor shifts |
| Texture-focused | Use both gulaman and ready-to-eat sago, and add pinipig just before serving | Layered chewiness and crunch; since textures stack up, use smaller amounts of each |
A Name That Is Also an Instruction
Halo-halo comes from the Filipino word halò, "to mix," and is often rendered in English as "mix-mix"; the dictionary spelling haluhalò is also noted. The name is not just a label: mixing is how the dessert is eaten, and the share of ice, milk, beans and fruit in each spoonful keeps changing.
Tourism Philippines describes an origin story that is commonly cited: Japanese migrants in Quiapo, in Manila, and the Japanese shaved ice known as kakigōri, along with monggo con hielo, shaved ice with sweet mung beans. This is a widely told account rather than firmly established history, so it is best read as one explanation of where the dessert came from.
What is clear is that there is no single fixed recipe. Sweet beans, garbanzos, fruit, jellies, sago, nata de coco, kaong, macapuno and pinipig are combined in many ways, and some places leave out the ice cream entirely. Regional flavors such as winter melon, durian and strawberry ice cream are also described, but they are examples rather than a nationwide standard, and no one combination defines the "authentic" glass.
Monggo, the Filipino savory soup of mung beans with pork, fish sauce and greens, uses the same beans but is an entirely separate dish. It is not a recipe for the sweetened beans in halo-halo.
Frequently Asked Questions
What does halo-halo mean?
It comes from the Filipino word halò, "to mix," and is usually translated as "mix-mix." The name tells you how to eat it.
Do I need every mix-in?
No. Halo-halo has no fixed recipe, and the choice of mix-ins varies widely. Keep sweet beans, fruit, jelly, shaved ice and unsweetened evaporated milk as the core, and leave out anything you can't find.
Should I mix it before serving?
No. Serve it with the layers intact and a long spoon, and let each person mix it from the bottom as they eat.
Can I make it without shaved ice?
An ice shaver that makes fine, snowy ice is best. If you use crushed ice, the texture is grainier and the milk spreads through less evenly, so expect a different result.
Can I substitute purple sweet potato for ube?
The color is similar, but the aroma and sweetness differ. If you have no ube halaya, leave it out or use purple sweet potato paste, knowing that it is a substitute.
Can I use sweetened condensed milk instead of evaporated milk?
Not in the same amount. Sweetened condensed milk is much sweeter, and regular milk is thinner. Unsweetened evaporated milk is the base of this recipe.
Can I make halo-halo ahead?
Not once it is assembled, because the ice melts. You can prepare the mix-ins ahead, store each one separately, and assemble the glasses when you are ready to eat. Follow each product's label for how to store it after opening.
Is halo-halo the same as binignit?
No. Binignit, also called ginataáng halo-halo, is a warm dessert from the Visayas. It is a different kind of dish from cold halo-halo.
Sources
- Tourism Philippines, "Halo-halo: what it is, history and how to eat it." Used for the meaning "mix-mix," the absence of a fixed recipe and examples of ingredients, the layering order and serving unmixed, and the origin account involving Japanese migrants, Quiapo, kakigōri and monggo con hielo. This is a tourism guide, not primary historical evidence; the origin is presented as a commonly cited account. https://www.turismofilipinas.com/en/food-in-philippines/halo-halo
- Lalaine Manalo, Kawaling Pinoy, "Halo-Halo (Filipino Shaved Ice Dessert)." Used for the 4-serving recipe and its ingredient amounts, the 10-minute assembly, customizable mix-ins, fine shaved ice absorbing milk well, and storing components separately to assemble when ready. This is the recipe author's adapted home version, and its choices and amounts are not universal. https://www.kawalingpinoy.com/halo-halo/
- Filipino American Association of Portland & Vicinity, Inc., "Kulinarya 2025 Recipes: Halo-Halo (Filipino Shaved Ice Dessert)." Used for further mix-in options such as saba, langka, mung and white beans, macapuno, nata de coco, corn, flan, ube and pinipig, and for the sequence of layering, icing, adding milk, topping and serving immediately. Its milk amounts are inconsistent, so it is not used for the milk quantity. https://www.filamportland.org/wp-content/uploads/go-x/u/73d02be7-d291-4fe5-a1cb-7b6fa1ffc555/FAAPVI-Kulinarya-2025-Recipes.pdf














