Skip to content
HeatAlgo
BlogGuides

Heat recovery ventilation (HRV) in HeatAlgo (beta): six steps from rooms to the balance and the unit

Design heat recovery ventilator (HRV) systems in HeatAlgo: room airflows in cfm, ducts on floor plans, the unit from EPREL, modes and the air balance.

Founder of HeatAlgo, author of the calculation engine to EN 12831 and EN 1264

The heat recovery ventilation module designs balanced mechanical ventilation with a heat recovery ventilator (HRV) for a single-family house or an apartment. It calculates every room's airflow, puts supply and extract into one balance and checks the unit against data from the EPREL register - on the same rooms you described for the heat loss calculation.

Be clear about the rules it follows. The module checks the design against Polish and EU rules: the Polish ventilation standard PN-83/B-03430 with amendment Az3:2000, the Polish building regulations (WT, § 152 for the intake and discharge), PN-76/M-34034 for local losses, and the EU's EPREL register for unit data. It does not check US ventilation requirements - ASHRAE 62.2, the IRC or your local code - so a US design still has to be checked against those separately. An account set to imperial units sees airflows in cfm, pressures in in. w.c. and lengths in feet; the calculation itself runs in metric.

The module is in beta - the badge "Module in beta - preliminary results" is a reminder to treat the results as preliminary. The wizard has six steps: "Building", "Rooms", "Ducts", "Unit", "Modes", "Result". Five of them are forms; the "Ducts" step is a drawing on the floor plans.

The heat recovery ventilation module in HeatAlgo - the supply-and-extract balance room by room

The screenshot shows the module in metric units.

Before you start: the start screen, data from the heat loss calculation and the form

An empty module opens on the start screen "Design heat recovery ventilation with Algo" with the "Start with Algo", "I'll fill it in myself" and "Guide" buttons. "Start with Algo" opens Algo AI: it reads the rooms and their dimensions from the building drawings and proposes them for the form, and you approve the proposals. Below the buttons a "Ready to bring in" line offers the rooms from the heat loss calculation (names, areas, heights, floors) with the "Bring it into this module" button, and an "Also available" line offers one setting from the client form: the ventilation type and the frost protection.

Ventilation only reads from the heat loss calculation - it writes nothing back. The heat loss calculation in turn checks that the two agree: when the project has a designed ventilation system, the heat loss must use mechanical ventilation with heat recovery, the same recovery efficiency and the same room airflows; the heat loss module shows any mismatch as remarks. Details in data flows between modules.

The gear on the wizard's bottom bar opens the module settings: in the "Data sources" section you bring the heat loss data in again ("Bring in again") and open Algo (the "Algo AI" row), and "Clear data" wipes the whole module - the start screen then comes back.

Step 1: Building

Two answers: the building type (a single-family house, or an apartment with its own unit) and the unit's frost protection (none, preheater, ground heat exchanger, supply throttling). Supply throttling unbalances the system while it runs. The Polish standard allows an apartment with a fireplace, a solid-fuel stove or a gas water heater with a natural-draft flue only natural or balanced ventilation, so in such an apartment this strategy is not permitted and the module reports it.

The third group is the intake and the discharge - the questions from WT § 152 of the Polish building regulations that the module checks for you:

  • where each one is (a wall or the roof);
  • the intake's lower edge at least 6' 7" (2 m) above the ground and at least 26' 3" (8 m) from a pollution source;
  • a window in the same wall as the discharge (9' 10" (3 m) sideways or 6' 7" (2 m) vertically);
  • the intake and the discharge in one wall (the intake below or level, at least 4' 11" (1.5 m) from the discharge);
  • on the roof, a distance set by the outlet's direction (32' 10" (10 m) for a horizontal outlet, 19' 8" (6 m) for a vertical one), with the discharge at least 3' 3" (1 m) above the intake.

These distances are the Polish rule, not a US code requirement. An unanswered question blocks the design - the blank field stays outlined in red until you answer.

Step 2: Rooms

The rooms are open sections, one under another. On a phone you see one room at a time: a sticky row at the top shows its name and position (for example "2 of 7"), and the room list slides up from the bottom. For every room of the home you give: type (habitable room, kitchen, bathroom, WC, utility room, laundry, stairwell, attic, mechanical room), area and ceiling height (enter the volume where ceilings slope), number of people, and number of doors from wet rooms. The system side (supply, extract, transfer) is proposed from the room type; you can override it. For transfer rooms you give the transfer opening (the standard requires at least 12.4 in² (80 cm²) in a room and 31 in² (200 cm²) in a wet room). A kitchen has extra fields: the range (gas, coal, electric, induction - the standard gives different airflows), no exterior window, open-plan kitchen, range hood. Other switches: a room on an upper level, a fireplace or combustion appliance, an active passive-stack duct.

You do not enter airflows - the module computes them from these data. The rules of the standard it checks without a drawing: at least one supply room and one extract room, a windowless kitchen with a gas range must have mechanical extract, mechanical and natural ventilation are not mixed in one home, a range hood is not connected to the heat recovery system, and a garage or a boiler room is not connected to the home's system.

When you want an airflow of your own - a large living room, say, where 12 cfm per person gives less than you think is sound - type it in the "Design flow" field. The hint shows the three candidates from the standard; a value under the required minimum is an error, under the recommended air change rate a warning. A typed airflow is final: the balance spreads the missing difference over the other rooms, and when there is nowhere to put it the report warns and states the difference. On the "Result" step the same value is edited in the "Balanced - own value" column.

Step 3: Ducts

You draw the duct network on the floor plans. Preparing a floor has four steps, led by the "Storey setup" panel:

  1. Upload the floor's plan - PNG, JPG, WEBP or PDF; from a multi-page PDF you pick the page, and the walls read off the drawing snap the points you place. The ventilation plan is stored separately and never overwrites the radiant floor heating plan. Everything about the plan sits under the gear in the panel header: upload and replace, adjust (rotate, crop the margins, fade the background), scale and position.
  2. Set the scale (C) - two points a known distance apart and the distance between them, in feet on an imperial account. Without a scale only panning works; the scale is per floor.
  3. Give the floor height - floor to floor, up to the next floor; the riser lengths are computed from it. In the same place you set the floor's zone: heated or unheated (an unheated attic or basement). The zone decides which ducts need insulating; while a floor has none, the panel says how many ducts are waiting for a zone.
  4. Line the floor up with the one next to it (G) - point at the same spot of the building on both plans, for example a stair corner; the plan shifts so the points coincide. There is also a mode for dragging the plan by hand, with Shift to resize it.

Then you draw. "Place a point" (P) places the unit, a terminal, an intake, a discharge, a distribution box, a plenum box, a silencer or a tee, with the system side (supply, extract, intake, discharge) chosen with the arrow next to the tool. "Draw a duct" (R) connects two points with bends along the way. "Draw a riser" (E) connects two floors - the first click on this one, then you switch floors and click the other end. "Select" (V) opens the panel of a point or a duct. A tee is a branch on the duct itself, with no box - a system of round spiral duct needs no distribution boxes; like a box, a tee needs the coefficient Z from its data sheet. The grid (S), with its spacing and anchor, keeps ducts straight; Shift locks the angle to 90°, Shift+Alt to 45°.

The drawing speaks the language of installation drawings: every point has a mark (U1 the unit, S1/E1 a supply and an extract terminal, DS1/DE1 a distribution box, PS1/PE1 a plenum box, AS1/AE1 a silencer, T1 a tee, IN1 the intake, EX1 the discharge), every run a number R1, R2... written into the duct, and at a working zoom the airflow, the diameter and the length under it. Arrows on the ducts show the direction of flow, and a damper has its own symbol. The labels switch on the toolbar shows everything, the marks only, or nothing; the legend of the symbols sits under the floor bar.

You assign a terminal to a room from the list ("Pick a room"), not by where it sits on the plan - without an assignment its airflow is not computed. The duct panel shows the length from the drawing (you can enter your own), elbows, airflow, a diameter proposal from the airflow and the target velocity (which you can override), and insulation (automatic from the floor's zone, heated or unheated, with a manual override).

The panel of a box, a silencer, a tee and an intake has the "Coefficient Z" field - the local loss copied from the manufacturer's data sheet, with a button to enter it into every point of that kind. Without it the duct resistances are not computed (an intake and a discharge without a value count as sharp-edged, Z = 1.0). Fittings saved in My library (with the coefficient from the data sheet) you pick with the book icon beside that field. In the duct panel you switch on a balancing damper and give its coefficient - a damper without one also holds the resistances back, since a zero loss would understate them.

The floor-alignment findings say plainly what to fix: this floor's plan and the one next to it overlap too little - check this floor's offset and scale; the two scales differ by a large factor - the reference distance was measured on a different drawing; a riser's ends are far apart in plan - check how the floors line up, or draw a horizontal run; a riser crosses a floor with no height set - give every floor on the riser's path a height.

Network rules: one unit on the drawing, ducts form a tree with no loops, supply and extract meet only at the unit, the intake and the discharge must be connected (without them the resistances come out too low), and every point must have a path to the unit. A breach does not stop the report: the report is produced with the "Incomplete design" stamp, the duct plan still downloads, and the faulty points glow red on the drawing. Drawing needs a larger screen; the other wizard steps work on a phone.

Step 4: Unit

Two routes. With "EPREL register" you pick manufacturers (several at once) and the app fetches units from the EU register with declared data (maximum and reference airflow, recovery efficiency, fan power, sound power, energy class) and shows which will deliver the required airflow; filters narrow by efficiency, power and noise. EPREL lists units sold in the European Union, so a model sold only in the US will not be there. With "From the DTR" you copy the data from the unit's spec sheet (DTR is the Polish name for the technical documentation); such data is marked as not verified in the register. The register does not publish the fan curve, so on both routes you enter it from the spec sheet: at least three points of airflow and pressure, because a straight line between two points overstates the available pressure.

A unit you use in many projects you save in My library together with its fan curve. On this step you pick it with the book icon beside the model field, and the pick copies its data into the project. How the library and its limit work is in the heat loss calculation guide.

The unit verdict: whether it delivers the required airflow, whether the operating point lies below the reference airflow, and the pressure - a margin or a shortfall, in in. w.c. on an imperial account, once the duct resistances are computed. The "Pressure reserve" field adds a margin to the required pressure for dirty filters and the uncertainty of the resistances; it is your design assumption, not a requirement of the standard, and the report labels it so.

Step 5: Modes

You describe how the system works away from the design point: the nominal, reduced and boost modes, with the airflow as a percentage of the design airflow or in cfm. "Add the three basic modes" creates the set. The Polish standard allows reducing the airflow only at night and at most to 60% of the value required for each room separately; a daytime reduction is not permitted. For the kitchen the standard recommends the option of a periodic boost in extract. Fewer than three modes is a remark, not a block. A boost mode with an airflow above the unit's maximum, or off its fan curve, is marked "This mode is not permitted" - a unit at 99% of its airflow at nominal has nowhere to take a boost from.

Step 6: Result

The building's air balance: supply and extract, showing how much the standard requires and how much was added to balance. The room list with role, airflow and the criterion that decided (table, people, air change rate) - a click shows the three candidates, and the "Balanced - own value" column lets you correct the proposal by hand and return to it with one click. Remarks with error and warning codes and the "Go to step" and "Show on the drawing" buttons.

"Unit requirements" comes before the unit section: the design airflow, the required available pressure for supply and extract separately with the governing side, the reserve, the reduced and boost mode airflows, and the declared unit's sound power - the unit is then checked against those requirements. The unit section gives the airflow and pressure verdict, the catalog efficiency and the efficiency assumed in the heat loss calculation. The duct resistances list both sides' losses and the two critical routes run by run, with each run's loss and the intake and the discharge as a separate part of the route. "Commissioning" gives the setting of every terminal, the damper on its duct, and an empty "Measured" column to fill in with an anemometer after installation. "Bill of materials" gives generic types and quantities: ducts with lengths and diameters, insulation, terminals, boxes, silencers, intake, discharge, elbows, tees, dampers.

You download the report and the to-scale duct plan from the bottom bar. On the "Result" step square icon buttons take the place of "Next" - report notes and "Download the report" (the tooltip gives the name) - and the arrow beside the latter opens "More downloads" with "Duct layout". Both files use the same symbols and legend as the drawing on screen. The duct plan's title block gives the project, the floor and "Issue date", and the floors carry the same names as the tabs on the drawing (for example "Ground floor", "Floor 1"); the client view keeps the airflows and hides the marks - see the article on reports.

The buttons are gray until there is a result. Until then the step shows a sample result under frosted glass, and in the middle what is missing - for example rooms without dimensions, with a "Fill in" button; when the calculation fails on our side, a "Try again" button.

What the module does not do

It does not do acoustics: silencer selection from octave-band data and room noise levels are a separate piece of work. It has no duct library yet with a manufacturer's real inner diameter and friction loss; diameters come from the design velocity and resistances from generic coefficients. It does not check US ventilation codes or standards, and it does not size for cooling or dehumidification.

Free account

On a free account you see the roles, required airflows, balance, duct velocities and the design flow from the unit requirements. The resistances, required pressure, critical routes, unit verdict, commissioning table and printable duct plan are unlocked by a report, which covers the whole project - see what is free and what a report unlocks. You can also buy a report for heat recovery ventilation alone, for that project.

A HeatAlgo report follows EN 12831-1 and EN 1264, not ACCA Manual J, and is not accepted for permits or rebates.

HeatAlgo newsletter

New guides, HeatAlgo product changes and offers - straight to your inbox. You confirm the sign-up with a link we send you.

Have a question or feedback?

I reply personally - usually within 24 hours.

Got a similar question? Check the FAQ below ↓

FAQ

Frequently asked questions

Which standard does the ventilation module use for airflows?

The Polish standard PN-83/B-03430 with amendment Az3:2000. For every room it computes three candidates - the table value from the standard, the airflow from the number of people (12 cfm, or 20 m³/h, per person) and the air change rate from the room volume - and adopts the largest. The result shows which criterion decided. Local loss coefficients come from PN-76/M-34034. The module does not check US ventilation requirements such as ASHRAE 62.2 or your local code.

Why are all the tools on the duct drawing grayed out?

The floor has no scale yet. Open the plan settings (the gear in the panel header), pick "Set the scale" (C), click two points a known distance apart and type the distance - in feet on an imperial account, in centimeters on a metric one. The scale is per floor, so every new plan needs its own. Without a scale only panning works.

Why can't I draw a riser?

A riser needs a scale on this floor and on the one next to it, because its second end is clicked on the other plan. Set the scale on both, give the height of every floor on the riser's path, and preferably line the floors up with the "Set the position" tool (G) from the plan settings, pointing at the same spot of the building on both plans.

Where do I get the unit's data?

On the "Unit" step pick "EPREL register" and a manufacturer - the app fetches declared data from the EU energy label register and filters the units that deliver the required airflow. EPREL lists units sold in the European Union; for a unit sold only in the US, pick "From the DTR" and copy the data from its spec sheet, including the fan curve with at least three points. Data entered by hand is marked in the report as not verified in the register.

Why does a terminal have no airflow?

Most often it has no room assigned. You assign a terminal from the list in the point's panel ("Pick a room"), not by where it sits on the plan - without an assignment its calculation does not run. Other causes: no unit on the drawing, more than one unit, a loop in the ducts, or a duct not connected to the unit.

What do I see in ventilation on a free account?

Room roles, required airflows, the supply-extract balance, duct velocities and the design flow from the unit requirements. The duct resistances, the required pressure, the critical routes, the unit verdict, the commissioning table and the printable duct plan are unlocked by a report. The module is in beta - treat the results as preliminary.

Can I upload the plan as a PDF?

Yes, as in radiant floor heating: from a multi-page file you pick the page, and the walls read off the drawing snap the points you place. An image (PNG, JPG, WEBP) works too. The ventilation plan is stored separately and does not overwrite the radiant floor heating plan.

What does "Incomplete design" in the report mean?

The result carries blocking errors - fix them in the steps marked red; on the drawing the faulty points are circled in red. The report and the duct plan still download, and the report then carries the "Incomplete design" stamp.

Does the module replace a ventilation design?

It calculates the airflows and the balance, the duct network drawn on the plans with its resistances and critical routes, the unit requirements (airflow, pressure, operating range) and the unit's verification, the commissioning table and the bill of materials, all to the Polish rules it names. Acoustics - silencer selection from octave-band data and room noise levels - is a separate piece of work, and so is any check against US codes.

The module is in beta - what does that mean?

That it is in the app and you can calculate with it, while we keep developing it and collecting feedback. Your results and projects stay with you whatever we change next.

Blog

See also

Guides

Radiant heating glossary for installers: heat loss, U-factor, R-value, delta T

A radiant heating glossary for installers: heat loss, U-factor, R-value, thermal bridges, ACH50, balance point, COP, delta T, outdoor reset and on center.

Guides

Heating glossary for homeowners: what your installer's form asks for

A heating glossary for homeowners: floor plans, sections, window schedules, U-factor, R-value and radiant floor heating - what each is and where to find it.

News

Radiant floor heating from a floor plan: AI draws the sections and loops

Upload a floor plan as PDF, PNG, JPG, HEIC, DWG or DXF, set the scale, and HeatAlgo's AI draws radiant floor heating sections with PEX loop layouts to EN 1264.

Guides

Heat loss calculation: what a room-by-room calculation is and what depends on it

A heat loss calculation gives the power a house needs in the coldest hour, room by room, to EN 12831-1. Worked example: 1,100 ft², 15,651 Btu/h.

Guides

How to design radiant floor heating in HeatAlgo - a step-by-step guide

Radiant floor layout tool and calculator in one: upload a floor plan, draw loops yourself or with Algo AI, connect the manifold and download the PDFs.

Guides

How to send the client form and get complete data - a step-by-step guide

How to send the client form in HeatAlgo, from creating the project to accepting your client's data - step by step, screen by screen, no jargon.

Guides

Algo AI assistant in HeatAlgo: what it does, where to find it and its limits

The Algo AI assistant in HeatAlgo: where to open it, how it reads building plans and reviews a project, its two modes, undo, sources and the monthly limit.

Guides

What water temperature does radiant floor heating need? Btu per square foot by floor covering

Radiant floor heat pump or boiler: at 95 °F supply water and 6-inch spacing a slab gives 13.3 Btu/h·ft² under tile, 12.4 under wood, 11.1 under carpet.

Guides

Radiant floor heating layout: tubing spacing on center, and how long a loop can be

Radiant floor heating layout: the area ÷ spacing rule skips the leaders. At 6 in on center it came up 41.7 ft short on one 138 sq ft room.

Guides

Oversized heat pump: why it short cycles and what that costs you

Heat pump short cycling: why a unit 2x too big for the house starts and stops all season, what that costs in efficiency and wear, and how to check the size.

Guides

Radiant floor heating design guide: what a layout should include and how to check one

Radiant floor heating design guide: check room loads, loop schedule and supply water temperature, with a worked 8-loop example in Btu/h, ft and gpm.

Guides

Retrofitting radiant floor heat in an older house: what to measure before you choose a system

Retrofit radiant floor heating: staple-up, panels on top, a thin slab or grooves in a slab. Measure door, threshold and stair heights and room heat loss first.

Guides

Before you get a radiant floor heating quote: what to measure and what to ask the contractor

Before a radiant floor heating installation quote: 6 things to measure and ask, from room-by-room heat loss to oxygen-barrier PEX and slab insulation.

Guides

Where to put a radiant floor heating manifold: basement, closet or one per floor?

Where to put a radiant floor heating manifold: one floor, two positions, and 115.5 ft less tubing in the leaders when it moved to the middle of the hall.

Create a free HeatAlgo account

Register and go from client data to a finished heating project in one place.