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 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:
- 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.
- 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.
- 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.
- 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.
