SPB Git

Repository Public Research preview

CORRIGES.md 53.7 KB

# IMM1033 — Séance 8 : Coûts indirects et profit entrepreneurial — Corrigés (réservé au professeur)

Solutions complètes des exercices de EXERCICES.md (activités formatives, non notées). Conventions : chaîne du cours (gabarit du TP2), arrondi au dollar à chaque ligne (comme validation/verification_calculs.py), T en mois dans (D + C) × i × T/12 × ½. Tous les montants sont reproduits par le script Python de l'annexe (corriges_calculs.py, exécuté avec python3) ; sa sortie est collée en fin de fichier. Concordance vérifiée avec RESULTATS_CALCULS.md : directs du cours 979 718 ; D + C 1 018 968 ; indirects 104 252 ; coût total 1 246 774 ; I½ 40 122 ; par période 38 107 (linéaire) / 38 002 (courbe en S).

Pièges de correction transversaux : (1) base erronée (nus vs directs du cours vs D + C) ; (2) somme des taux au lieu de la cascade ; (3) T en mois sans /12, ou oubli du ½ ; (4) GCR appliquée sans vérifier la qualification ; (5) remboursement de TVQ au-delà de 300 000 $ ; (6) effet d'un indirect sur le coût total sans le facteur 1,11 ; (7) confusion marge sur prix / profit sur coût ; (8) écarts de 1 $ dus aux arrondis de ligne — acceptés.


# P — Exercices projetés en classe (bloc 6)

# P1 — Intercalaires à 7,75 % et 18 mois

  • I = 1 018 968 × 0,0775 × 18/12 × ½ = 59 227,52 → 59 228 $ (cas : 40 122 $ ; + 19 106 $).
  • Effet sur le coût total : 19 106 × 1,11 = 21 208 $ → 1 267 982 $ (+ 1,7 %). Vérification par la chaîne complète : indirects 123 358 ; assiette 1 142 326 ; profit 125 656 ; total 1 267 982 $ — identique au raccourci.
  • Facteur multiplicatif : (7,75/6,75) × (18/14) = 1,476 ; 40 122 × 1,476 ≈ 59 228 $. Les chocs se multiplient.
  • Pièges : 18 sans /12 (710 730 $) ; oubli du 1,11 (répondre 1 266 080 $) ; recalcul des honoraires (ils ne changent pas : base = directs du cours).

# P2 — Permis et GCR d'un triplex (D + C = 520 000 $)

  • Permis = max(4,70 × 520 ; 3 × 335) = max(2 444 ; 1 005) = 2 444 $ (proportionnel).
  • GCR : triplex = « duplex jusqu'au quintuplex », non en copropriété → visé ; catégorie 1, cote A : 3 × 2 656,68 = 7 970,04 $ (plus taxes).
  • Total réglementaire 10 414,04 $ = 2,0 % de D + C ; six logements : permis 4 789 $ = 0,47 % de D + C (0,38 % du coût neuf). Le poids relatif est ≈ 4 fois plus élevé parce que la GCR s'applique et que le projet est petit (postes « par unité »).
  • Pièges : additionner minimum et proportionnel ; GCR = 0 « parce que locatif » (la tenure locative n'exclut pas ; seuls > 5 logements ou copropriété > 4 superposées excluent) ; oublier « plus taxes ».

# P3 — Profit sur coût ↔ marge sur prix

  • (a) m = 0,12 / 1,12 = 10,71 %. (b) p = 0,15 / 0,85 = 17,65 %.
  • Rappel du cas : 11 % → 9,91 % ; marge 11 % → 12,36 % sur coût (profit requis 138 825 $). La marge est toujours inférieure au profit sur coût.
  • Piège : répondre 12 % et 15 % (confusion m = p) ; inverser les formules (0,12/0,88 = 13,6 % ; 0,15/1,15 = 13,0 %).

# P4 — Classer dix postes

# Poste Classe Justification
1 Salaire du surintendant direct conditions générales (8 %)
2 Honoraires de l'architecte indirect honoraires, 4 % des directs du cours
3 Cotisation CNESST exclure déjà dans le taux chargé de la main-d'œuvre (directs)
4 Intérêts du prêt de construction indirect intercalaires
5 Profit de l'entrepreneur général direct cascade, 8 % (AoRE : « part of the direct costs »)
6 Commission du courtier à la vente exclure de la chaîne mise en marché, couverte par l'incitatif pour un locatif conservé (serait un indirect chiffré pour des condos)
7 Maintien de la licence RBQ exclure frais généraux de l'EG (7 %)
8 Permis de construire indirect tarif municipal
9 Réserve pour imprévus 5 % direct (+ contingences) réserve du propriétaire, côté hard cost (AoRE), base des intérêts/permis/assurance
10 Intérêts sur le financement du terrain exclure portage du terrain, hors coût neuf (V_T, analyse de développement)

Piège : « exclure » sans dire où le poste est déjà compté ; classer 9 en indirect ; classer 6 en profit.


# A — Questions conceptuelles

A1. Deux profits, deux personnes, deux risques, deux bases. Le profit de l'EG rémunère l'exécution du contrat ; il est dans le prix du contrat, donc dans les directs (AoRE, chap. 29, p. 538 : « Contractor's profit … is part of the direct costs and is therefore not included in the entrepreneurial incentive »). Le profit entrepreneurial rémunère celui qui porte le projet (coordination, risque de marché et de financement, temps, capital) ; il s'applique à l'assiette entière et n'est encaissé qu'à la vente (ou en valeur). Les additionner est correct : même si une seule entreprise cumule les deux rôles, elle gagne les deux. Cela devient un double comptage si l'on applique 8 % puis 11 % au titre du même risque (p. ex. soumission d'un constructeur-promoteur contenant déjà sa marge de développement, puis 11 % en plus), ou si l'on ajoute un « profit » sur une soumission déjà « tout compris » sans vérifier son contenu. Piège : répondre « on ne compte qu'un profit ».

A2. Coût direct (AoRE : « A construction contingency is not usually a soft cost but rather a hard cost »). Elle est calculée sur les nus parce qu'elle couvre des aléas de travaux (sol, quantités, changements) et non les frais généraux ou le profit de l'entrepreneur ; elle est placée après le profit de l'EG parce qu'elle est une réserve du propriétaire, pas une marge de l'entrepreneur — elle échappe à la cascade. Elle entre dans la base des intérêts (le prêteur finance la réserve), du permis (la Ville évalue les travaux réserve comprise) et de l'assurance (valeur à risque), mais pas des honoraires : « la contingence n'est pas un travail », l'architecte ne conçoit pas une réserve qui peut ne jamais être dépensée. Piège : contingence = indirect ; 5 % de 979 718 au lieu de 785 000.

A3. (1) Décaissements linéaires et continus → violation : déboursés discrets en fin de mois (facteur (n − 1)/2n, baisse) ou profil précoce (hausse) / tardif (baisse). (2) Aucune capitalisation → violation : intérêts sur intérêts (hausse, +851 $ sur 14 mois, > 5 % des intérêts sur 36 mois). (3) Taux constant → violation : hausse en cours de chantier (hausse), baisse (baisse) ; 8 décisions de la Banque du Canada par an. (4) Base = D + C seulement (terrain et indirects en fonds propres) → violation : financer aussi indirects/terrain (hausse). Abandonner la formule pour un calendrier lorsque : projet long (18–36 mois), phases (démolition, décontamination), taux variable, financement par tranches, profil manifestement asymétrique. Piège : citer « T en mois » comme hypothèse (c'est une erreur de calcul, pas une hypothèse).

A4. Parce que les taxes nettes dépendent du statut fiscal de l'acquéreur (occupant, premier acheteur, locateur autocotisé, inscrit commercial) et non du bâtiment ; un coût neuf hors taxes reste comparable aux prix des comparables analysés hors taxes pour le neuf (approche marché) et au principe de substitution. Six logements locatif à Gatineau 2026 : autocotisation sur la JVM (≈ 1 456 774 $) ; TPS 72 839 $ remboursée à 100 % (C-56 : ≥ 4 logements, chantier commencé après le 13 sept. 2023, 90 % en location long terme) → nette 0 ; TVQ 145 313 $, remboursement de 36 % (max 7 182 $/logement) nul car JVM/logement ≈ 242 800 $ ≥ 225 000 $ → nette 145 313 $ (11,7 % du coût neuf), hors chaîne mais à nommer. Piège : « remboursement harmonisé » de la TVQ ; appliquer les seuils 350/450 k$ au locatif.

A5. B-1.1, r. 8, art. 2 : bâtiments visés non détenus en copropriété divise = unifamiliale isolée, jumelée ou en rangée, et « bâtiment multifamilial à partir du duplex jusqu'au quintuplex » ; en copropriété divise = « au plus 4 parties privatives superposées ». Un six logements locatif dépasse le quintuplex → non visé, GCR = 0 $ (garantie privée possible, non obligatoire). Deux changements qui la rendent applicable : (a) cinq logements locatifs → visé, catégorie 1, cote A : 5 × 2 656,68 = 13 283,40 $ ; (b) copropriété divise de six unités avec ≤ 4 parties privatives superposées (deux par étage sur trois étages) → visé, catégorie 2, cote A : 6 × 3 359,68 = 20 158,08 $. Piège : appliquer la catégorie 1 à la copropriété.

A6. Incentive = profit anticipé, condition ex ante pour qu'un promoteur se lance (« the total anticipated profit that is expected to be received… ») ; profit = constat ex post (« a historic fact looking back… the actual profit earned after a project is completed and sold »). La méthode du coût estime ce qu'il faudrait promettre aujourd'hui pour créer le bien : l'incitatif. Il est inclus même sans promoteur par substitution : un acheteur averti ne paie pas plus que le coût d'un substitut équivalent, et ce substitut neuf est produit par un promoteur rémunéré ; omettre l'incitatif sous-estime le coût neuf (123 554 $, 9,9 % sur le cas). Nuances : propriété à usage spécial → incitatif inclus mais non récupérable → désuétude externe (Gould et Smith, 1995) ; marché saturé → profits réalisés faibles, incitatif requis inchangé (Pomykacz, 2009). Piège : profit = « ce qui reste ».

A7. CNESST et salaire CCQ (45,76 $/h ; taux chargé ≈ 69,59 $/h, dont 3,31 $ de CNESST) sont dans le taux chargé de la main-d'œuvre qui sert aux prix unitaires des directs (RSMeans localisé, soumissions). La licence RBQ (délivrance 1 291,69 $, maintien 989,81 $, cautionnement 40 000 $) est un coût d'exploitation de l'entreprise, réparti sur ses chantiers : frais généraux de l'EG (7 %). Les inscrire en indirects = double comptage. Piège : « RBQ = réglementation = indirect ».

A8. Repères 2026 : guide IRAC/RAIC 2009 repris par l'AAPPQ (multilogements, complexité moyenne : 5,65–7,85 % sans ingénieurs, 8,40–9,80 % avec, dégressif par tranche), soumissions réelles des professionnels du projet (meilleure preuve), tarif abrogé cité seulement comme repère historique (ex. : 1,5 M$ → ≈ 4,2 % plans + surveillance), test de vraisemblance (> 10 % des directs sur un multiplex → revoir base, portée, doublons). Présentation du 4 % : « convention du cours, 4 % des directs du cours (CG, FG et profit de l'EG inclus, contingences exclues), sous les repères IRAC pour un mandat complet ; justifié par un multiplex simple à plans répétitifs, ingénierie limitée aux éléments hors partie 9, surveillance réduite ; vérifié par la méthode horaire (260 h × 145 $ = 37 700 $) et un forfait négocié (38 500 $) ». Piège : citer C-65.1, r. 9 comme « en vigueur ».


# B — Exercices de calcul

B1 — Cascade sur 250 000 $. CG 8 % × 250 000 = 20 000 → 270 000 ; FG 7 % × 270 000 = 18 900 → 288 900 ; profit EG 8 % × 288 900 = 23 112 → directs du cours 312 012 $ ; contingences 5 % × 250 000 = 12 500 → D + C 324 512 $. Majoration en cascade : 312 012/250 000 − 1 = 24,8 %. Somme +23 % : 307 500 $ ; écart 4 512 $ = 250 000 × 0,018048 (termes croisés 0,08×0,07 + 0,08×0,08 + 0,07×0,08 + 0,08×0,07×0,08 = 0,018048). Interprétation : chaque acteur applique son taux sur ce qu'il paie lui-même. Piège : 250 000 × 1,28 = 320 000 (somme des quatre taux, contingence incluse dans la cascade).

B2 — Intercalaires 650 000 $, 7,25 %. 12 mois : I = 650 000 × 0,0725 × 12/12 × ½ = 23 563 $ (3,63 % de C). 9 mois : 650 000 × 0,0725 × 9/12 × ½ = 17 672 $. Erreurs : (a) sans ½ : 47 125 $ (double) ; (b) T = 12 sans /12 : 650 000 × 0,0725 × 12 × ½ = 282 750 $ (12 fois trop). Lecture : « 7,25 % par an sur un solde moyen de 325 000 $ pendant un an ». Piège : réflexe de contrôle — I/C ≈ i × T × ½ ; au-delà de 10 % de C sur un an, erreur certaine.

B3 — Permis de Gatineau. (a) Unifamiliale 95 000 $ : proportionnel 4,70 × 95 = 446,5 → 447 ; minimum 335 → 447 $ (proportionnel). (b) Duplex 130 000 $ : proportionnel 611 ; minimum 2 × 335 = 670 → 670 $ (minimum). (c) Huit logements 1 400 000 $ : proportionnel 6 580 ; minimum 2 680 → 6 580 $ (proportionnel). (d) Seuil : n × 335 / 4,70 × 1 000 ; huit logements : 570 213 $ ; un logement : 71 277 $. Piège : additionner min + proportionnel ; oublier que le minimum est par logement.

B4 — Honoraires, trois bases (nus 600 000 $). Cascade : 48 000 → 648 000 ; 45 360 → 693 360 ; 55 469 → directs du cours 748 829 $ ; contingences 30 000 → D + C 778 829 $. Honoraires 4 % : nus 24 000 $ ; directs du cours 29 953 $ (convention) ; D + C 31 153 $. Horaire : 210 × 145 = 30 450 $, écart +1,7 % vs convention → cohérent (réconciliation). Le même 4 % varie de 24 000 à 31 153 $ (+30 %) selon la base. Piège : retenir la base des nus « parce que RSMeans ».

B5 — TPS/TVQ. (a) Occupant 260 000 $ : TPS 13 000 ; TVQ 25 935 ; brutes 38 935 ; remb. TPS 36 % = 4 680 (≤ 350 k$) ; remb. TVQ = 9 975 × (300 000 − 260 000)/100 000 = 3 990 ; nettes 30 265 $ (11,64 %). (b) Occupant 420 000 $ : TPS 21 000 ; TVQ 41 895 ; brutes 62 895 ; remb. TPS = 6 300 × (450 000 − 420 000)/100 000 = 1 890 ; remb. TVQ 0 (≥ 300 k$) ; nettes 61 005 $ (14,52 %). (c) Premier acheteur 420 000 $ : remb. TPS 100 % = 21 000 (remplace le 36 %, pas de cumul) ; TVQ entière 41 895 (aucun volet TVQ, C-4) ; nettes 41 895 $ (9,98 %). (c) < (b) de 19 110 $ = TPS entièrement remboursée au lieu de 1 890 $. Piège : remb. TVQ à 420 000 $ ; cumul 36 % + 100 %.

B6 — Profit et marge. (a) m = 0,09/1,09 = 8,26 %. (b) p = 0,12/0,88 = 13,64 %. (c) p = 100 000/900 000 = 11,11 % ; prix = 1 000 000 ; m = 100 000/1 000 000 = 10,00 %. Piège : (c) m = 11,11 %.

B7 — Méthode par période (300 000 $, 6 mois, 6,75 %, linéaire, capitalisé).

Mois Décaissement Cumul Intérêt Solde fin
1 50 000 50 000 0 50 000
2 50 000 100 000 281 100 281
3 50 000 150 000 564 150 845
4 50 000 200 000 849 201 694
5 50 000 250 000 1 135 252 828
6 50 000 300 000 1 422 304 251

I = Σ intérêts = 4 251 $ (= 304 251 − 300 000). Formule ½ : 300 000 × 0,0675 × 6/12 × ½ = 5 063 $. Intérêt simple discret : 300 000 × 0,0675/12 × (6 − 1)/2 = 4 219 $. Écarts : (i) ½ → (n − 1)/2n = 5/12 : −16,7 % (le premier mois ne porte pas d'intérêt et le dernier déboursé ne porte jamais) ; (ii) capitalisation : + 32 $ (4 219 → 4 251). Sur 6 mois, la discrétisation domine ; la formule ½ surestime de 19 %. Piège : intérêt sur le solde de fin de mois (donne 5 100 $ environ) sans le dire.

B8 — Extraction. Bâtiment implicite = 1 380 000 − 190 000 = 1 190 000 $ ; profit extrait = 1 190 000 − 1 010 000 = 180 000 $ ; taux sur l'assiette = 180 000/1 010 000 = 17,82 % ; marge sur le bâtiment = 180 000/1 190 000 = 15,13 % ; marge sur le prix total = 180 000/1 380 000 = 13,04 %. Comparable au 11 % du cours : le taux sur l'assiette (même base : D + C + indirects). Piège : comparer 13,04 % ou 15,13 % à 11 %.


# C — Démonstrations guidées

C1 — Facteur (n − 1)/2n.

  1. Solde de début du mois t : B_t = C × (t − 1)/n (t − 1 tranches déjà versées).
  2. Intérêt du mois t : B_t × i/12 = C × (i/12) × (t − 1)/n.
  3. Σ_{t=1}^{n} (t − 1) = n(n − 1)/2, donc I = C × (i/12) × (n − 1)/2 = C × i × (n/12) × (n − 1)/(2n).
  4. (n − 1)/(2n) = ½ − 1/(2n) < ½ ; tend vers ½ quand n → ∞ (décaissement continu) ; pour n = 14 : 13/28 = 0,4643 (−7,1 %).
  5. I = 1 018 968 × 0,0675/12 × 13/2 = 37 256 $ = 40 122 × 13/14. Capitalisation : chaque intérêt mensuel s'ajoute au solde et porte intérêt les mois suivants ; sur 14 mois à 6,75 %, + 851 $ → 38 107 $ (méthode par période linéaire). Avec la courbe en S : 38 002 $ (même centre de gravité, moins d'intérêts composés en début de chantier). Piège : sommer t au lieu de (t − 1) (donne (n + 1)/2n : déboursés en début de mois).

C2 — Profit ↔ marge.

  1. Profit = pK ; P = K(1 + p) ; m = pK / [K(1 + p)] = p/(1 + p).
  2. m(1 + p) = p → m = p(1 − m) → p = m/(1 − m).
  3. m = p/(1 + p) < p ⇔ 1/(1 + p) < 1 ⇔ p > 0 ; p − m = p²/(1 + p), croissant en p.
  4. 0,11/1,11 = 9,91 % ; 0,11/0,89 = 12,36 % ; 0,15/0,85 = 17,65 % ; 0,20/1,20 = 16,67 %. Table : p = 8 → 7,41 ; 11 → 9,91 ; 12,36 → 11,0 ; 15 → 13,04 ; 20 → 16,67 % ; m = 8 → 8,70 ; 9,91 → 11,0 ; 11 → 12,36 ; 15 → 17,65 ; 20 → 25,0 %.

C3 — Termes croisés.

  1. (1 + a)(1 + b)(1 + c) = 1 + (a + b + c) + (ab + ac + bc) + abc.
  2. a + b + c = 0,23 ; termes croisés = 0,0056 + 0,0064 + 0,0056 + 0,000448 = 0,018048 ; majoration exacte 0,248048 (+24,8 %).
  3. 100 000 × 0,018048 = 1 805 $ ; 785 000 × 0,018048 = 14 167,68 → 14 168 $ ; avec arrondis de ligne : 979 718 − 965 550 = 14 168 $ (le deck arrondit à 14 170 $).
  4. (i) Non : produit commutatif, le total est identique quel que soit l'ordre ; (ii) oui : la répartition entre les lignes CG, FG et profit EG change (chaque ligne dépend du cumul précédent) — ce qui compte pour comparer une soumission poste par poste. Piège : affirmer que l'ordre change le total.

# D — Étude de cas : six logements à Aylmer, 16 mois

  1. Directs du cours 979 718 $ ; D + C 1 018 968 $ — inchangés : la cascade et les contingences ne dépendent ni du secteur ni de la durée.
  2. Indirects : permis max(4 789 ; 2 010) = 4 789 ; GCR 0 (six logements locatif, non visé — le secteur ne change rien) ; intérêts 1 018 968 × 0,0675 × 16/12 × ½ = 45 853,56 → 45 854 (+ 5 732 vs 14 mois) ; honoraires 39 189 ; assurance 8 152 ; juridique 12 000 ; redevances 6 × 3 986,39 = 23 918,34 → 23 918 $ — indirect : frais municipal exigé au permis, hors contrat de construction, nécessaire à la réalisation ; il entre dans l'assiette du profit comme tout indirect (le promoteur avance ce capital et en porte le risque). Total des indirects : 133 902 $.
  3. Assiette 1 018 968 + 133 902 = 1 152 870 $ ; profit 11 % = 126 815,7 → 126 816 $ ; coût total neuf 1 279 686 $.
  4. Unités : 1 279 686 / 5 400 = 236,98 $/pi² hors sol ; / 7 200 = 177,73 $/pi² brut ; / 6 = 213 281 $/logement ; indirects / directs du cours = 133 902 / 979 718 = 13,7 % (contre 10,6 %).
  5. Écart vs cas de base : 1 279 686 − 1 246 774 = + 32 912 $ (+ 2,6 %) = (5 732 + 23 918) × 1,11 = 29 650 × 1,11 = 32 912 $ : effet durée 5 732 × 1,11 = 6 363 $ ; effet redevances 23 918 × 1,11 = 26 549 $. Les redevances pèsent quatre fois plus que les deux mois de chantier.
  6. Test du marché : (1 279 686 − 1 325 000)/1 325 000 = − 3,4 % (contre − 5,9 % à Hull) ; profit extrait sur la nouvelle assiette : (1 325 000 − 1 152 870)/1 152 870 = 14,9 % (contre 18,0 %). Conclusion : à bâtiment implicite égal, le promoteur d'Aylmer a un coussin plus mince (45 314 $ au lieu de 78 226 $) ; en réalité les terrains et les prix d'Aylmer diffèrent de ceux de Hull — les redevances tendent à se capitaliser dans les prix des terrains, ce que le test « à bâtiment implicite égal » ne capte pas. Le rapport doit choisir et justifier l'imputation des redevances (bâtiment ou terrain).
  7. Copropriété divise, six unités, deux par étage sur trois étages → trois parties privatives superposées ≤ 4 → visée, catégorie 2, cote A : 6 × 3 359,68 = 20 158,08 → 20 158 $ ; redevances inchangées. Chaîne complète : indirects 154 060 ; assiette 1 173 028 ; profit 129 033 ; coût total 1 302 061 $ (+ 22 375 $ = 20 158 × 1,11). Sans compter la mise en marché, le changement de fiscalité des acheteurs et un taux de profit plus élevé (12–15 %), que la question exclut. Pièges : GCR catégorie 1 (15 940 $) ; oublier que les honoraires ne changent pas ; recalculer le permis sur une base qui inclut les redevances (non : D + C).

# E — Activités de discussion (éléments de réponse)

E1 — Relever le 11 % ? Éléments attendus : (i) 18 % est un profit réalisé (2024–2025), 11 % un incitatif requis à la date d'évaluation (2026 : 6,75 %, inoccupation du neuf 10 %) ; (ii) les ventes contiennent des coûts hors chaîne — TVQ d'autocotisation (145 313 $ = 12,9 % de l'assiette, soit à elle seule plus que l'écart de 7 points), mise en marché, portage du terrain (≈ 16 500 $), redevances selon le secteur ; (iii) le profit extrait absorbe toutes les erreurs (terrain sous-estimé → profit gonflé) ; (iv) dispersion 12,6–22,0 % sur quatre ventes : la médiane n'est pas une mesure précise ; (v) relever à 18 % rendrait le test du marché circulaire. Règle : conserver 11 % (locatif courant 10–12 %), expliquer l'écart de 5,9 % entre coût et marché, et nommer la TVQ et la mise en marché ; ne jamais ajuster le profit pour « coller » au marché. Position minoritaire défendable : 12 % (haut de fourchette) si le marché de 2026 reste tendu.

E2 — TVQ d'autocotisation dans le coût neuf ? Pour : coût inévitable d'un constructeur-locateur québécois (≈ 11,7 % du coût neuf), supporté avant tout revenu, et qui influence la décision de construire. Contre : dépend du statut de l'acquéreur (un inscrit commercial ne la paie pas, un acheteur-occupant la paie partiellement) ; les comparables sont analysés hors taxes → inclure la TVQ dans le coût sans l'inclure dans le marché fausse la réconciliation ; le principe de substitution raisonne sur le coût de production du bien, pas sur la fiscalité de son détenteur. Dans le rapport : « coût neuf hors taxes ; pour un locateur autocotisé, TVQ nette estimée à ≈ 145 000 $ (JVM/logement > 225 000 $, remboursement nul), non incluse ; TPS remboursée à 100 % (C-56) ». Pour le promoteur : la TVQ dépasse le coussin coût-marché (78 226 $) ; la copropriété (six acheteurs avec remboursements partiels) est fiscalement plus légère mais ajoute GCR cat. 2 (20 158 $), mise en marché et risque d'absorption — à modéliser en flux.

E3 — Honoraires après l'abrogation. Repères : IRAC/AAPPQ (taux globaux, avec ou sans ingénieurs, dégressifs), soumissions réelles (meilleure preuve), tarif abrogé en repère historique (≈ 4,2 % plans + surveillance à 1,5 M$), test de vraisemblance (contre-exemple 18,8 %). Base : « coût des travaux tel que contracté » = directs du cours (CG, FG, profit EG inclus) ; exclure la contingence (pas un travail) ; hors taxes pour rester cohérent avec le coût neuf. Phrase type : « Honoraires professionnels estimés à 4 % des coûts directs (conditions générales, frais généraux et profit de l'entrepreneur inclus ; contingences exclues), soit 39 189 $, conformément à un mandat réduit (plans répétitifs, ingénierie limitée aux éléments hors partie 9, surveillance allégée) ; ce taux se situe sous les repères du guide IRAC/AAPPQ (6,4–8,5 % pour un mandat complet de 1 à 2 M$) et a été vérifié par une estimation horaire (260 h × 145 $ = 37 700 $). Les tarifs gouvernementaux (C-65.1, r. 9 et r. 12) sont abrogés depuis le 5 juillet 2025 et ne sont cités qu'à titre historique. »


# F — Exercices de synthèse

F1 — Soumission clés en main 1 019 000 $.

  1. Contenu : directs nus + CG + FG + profit de l'EG + réserve 39 000 $. À ajouter : permis, GCR (0, non visé), intérêts, honoraires, assurance du propriétaire, juridique, incitatif.
  2. Directs du cours = 1 019 000 − 39 000 = 980 000 $ ; D + C = 1 019 000 $.
  3. Permis max(4,70 × 1 019 ; 2 010) = 4 789 ; GCR 0 ; intérêts 1 019 000 × 0,0675 × 14/12 × ½ = 40 123,13 → 40 123 ; honoraires 4 % × 980 000 = 39 200 ; assurance 0,8 % × 1 019 000 = 8 152 ; juridique 12 000 → indirects 104 264 $ ; assiette 1 123 264 $ ; profit 123 559,04 → 123 559 $ ; coût neuf 1 246 823 $.
  4. Sous-estimation si l'on s'arrête à la soumission : 1 246 823 − 1 019 000 = 227 823 $, soit − 18,3 % du coût neuf. Écart avec le deck (1 246 774 $) : + 49 $, dû aux arrondis de la soumission (980 000 vs 979 718 ; 39 000 vs 39 250). Piège : traiter la réserve comme un indirect ; honoraires sur 1 019 000.

F2 — Triplex à Hull (nus 410 000 $, 10 mois, GCR visée, juridique 9 000 $).

  1. CG 32 800 → 442 800 ; FG 30 996 → 473 796 ; profit EG 37 904 → directs du cours 511 700 $ ; contingences 20 500 → D + C 532 200 $.
  2. Permis max(4,70 × 532,2 = 2 501 ; 3 × 335 = 1 005) = 2 501 ; GCR : triplex visé, 3 × 2 656,68 = 7 970,04 → 7 970 ; intérêts 532 200 × 0,0675 × 10/12 × ½ = 14 968,13 → 14 968 ; honoraires 4 % × 511 700 = 20 468 ; assurance 0,8 % × 532 200 = 4 257,6 → 4 258 ; juridique 9 000 → indirects 59 165 $.
  3. Assiette 591 365 $ ; profit 65 050,15 → 65 050 $ ; coût total neuf 656 415 $ ; 656 415 / 3 600 = 182,34 $/pi² hors sol ; 218 805 $/logement ; indirects / directs du cours = 11,6 %.
  4. Sans GCR : indirects 51 195 ; assiette 583 395 ; profit 64 173 ; total 647 568 $ → écart 8 847 $ (= 7 970 × 1,11), 1,3 % — une erreur de qualification visible par un relecteur.
  5. 11,6 % > 10,6 % : la GCR s'applique (+ 1,5 point) et le forfait juridique pèse plus sur un petit projet (9 000/511 700 = 1,8 % contre 1,2 %), malgré une durée plus courte (intérêts 2,9 % des directs du cours contre 4,1 %). Piège : GCR = 0 pour un locatif ; T = 10 sans /12.

F3 — Douze postes.

# Poste Classe Justification
1 Roulotte de chantier direct conditions générales (8 %)
2 Étude géotechnique indirect (chaîne) dans le forfait juridique/arpentage ; forfait estimé
3 TVQ autocotisée d'un locatif conservé indirect hors chaîne, à nommer coût neuf hors taxes ; dépend du statut fiscal ; ≈ 145 313 $ sur le cas
4 Prime GCR d'un quadruplex indirect (chaîne) visé (duplex à quintuplex) : 4 × 2 656,68 = 10 626,72 $
5 Prime GCR d'un six logements locatif exclure non visé (au-delà du quintuplex) : 0 $
6 Cautionnement de licence RBQ exclure frais généraux de l'EG (7 %)
7 Frais de dossier du prêteur indirect hors chaîne, à documenter frais de financement non isolés dans la chaîne du cours (approximation 0,5–1 % du prêt)
8 Taxes foncières pendant le chantier indirect hors chaîne (carrying cost, AoRE) / portage non compté dans la chaîne du cours ; relève souvent du terrain (taxé dès l'achat) ; à nommer
9 Valeur du terrain exclure V_T, hors coût neuf
10 Profit du constructeur-promoteur qui bâtit pour lui-même profit (entrepreneurial) + profit EG dans les directs imputé par substitution, même sans décaissement
11 Redevances de développement à Aylmer indirect (chaîne, si zone 1) 3 986,39 $/logement ; 0 à Hull
12 Loyers perdus (retard de six mois) exclure coût d'opportunité, hors coût neuf ; analyse de développement

Piège : classer 8 en « exclure » sans nuance (c'est un carrying cost reconnu par l'AoRE, simplement hors chaîne du cours) ; classer 10 en « exclure ».


# Annexe — Script Python exécuté (corriges_calculs.py)

Exécution : python3 corriges_calculs.py (le 2 novembre 2026). Même convention d'arrondi que validation/verification_calculs.py (ROUND_HALF_UP au dollar à chaque ligne) ; profil en S = 3x² − 2x³ ; intérêt du mois sur le solde de début de mois, capitalisé.

# Code

python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Annexe de CORRIGES.md — IMM1033, séance 8 (coûts indirects et profit entrepreneurial).
Reproduit, avec les conventions de validation/verification_calculs.py (arrondi au dollar à chaque ligne,
chaîne du cours = TP2), tous les calculs des exercices A–F et des quatre exercices projetés P1–P4.
Exécuter : python3 corriges_calculs.py"""
from decimal import Decimal, ROUND_HALF_UP

def r0(x):  # arrondi au dollar (demi vers le haut), comme le moteur
    return int(Decimal(str(x)).quantize(Decimal("1"), rounding=ROUND_HALF_UP))
def r2(x):
    return float(Decimal(str(x)).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP))
def f(x):  # format québécois : espace fine, sans décimales
    return f"{x:,.0f}".replace(",", " ")
def f2(x):
    return f"{x:,.2f}".replace(",", " ").replace(".", ",")

P = {"cg": 8.0, "fg": 7.0, "peg": 8.0, "cont": 5.0, "permis_1000": 4.70, "permis_min": 335, "gcr": 2656.68, "gcr_cat2": 3359.68,
     "pref": 4.70, "prime": 2.05, "hon": 4.0, "assur": 0.8, "profit": 11.0, "tps": 5.0, "tvq": 9.975, "redevance_aylmer": 3986.39}

def cascade(nus):
    cg = r0(nus * P["cg"] / 100); c1 = nus + cg
    fg = r0(c1 * P["fg"] / 100); c2 = c1 + fg
    peg = r0(c2 * P["peg"] / 100); dcours = c2 + peg
    cont = r0(nus * P["cont"] / 100); dc = dcours + cont
    return dict(nus=nus, cg=cg, apres_cg=c1, fg=fg, apres_fg=c2, peg=peg, directs_cours=dcours, cont=cont, dc=dc,
                majoration_pct=r2((dcours / nus - 1) * 100))

def permis(dc, logements):
    prop = r0(dc / 1000 * P["permis_1000"]); mini = P["permis_min"] * logements
    return dict(prop=prop, mini=mini, permis=max(prop, mini))

def interets_simpl(C, i_pct, T_mois):
    return r0(C * i_pct / 100 * T_mois / 12 * 0.5)

def chaine(nus, logements, T, juridique, gcr_applicable, i_pct=None, redevances=0, gcr_unit=None, directs_cours_impose=None, dc_impose=None):
    if directs_cours_impose is None:
        c = cascade(nus)
    else:  # F1 : soumission clés en main (directs du cours et D+C imposés)
        c = dict(nus=None, directs_cours=directs_cours_impose, dc=dc_impose, cont=dc_impose - directs_cours_impose)
    dc = c["dc"]; dcours = c["directs_cours"]
    pm = permis(dc, logements)
    gcr = r0((gcr_unit or P["gcr"]) * logements) if gcr_applicable else 0
    i = i_pct if i_pct is not None else P["pref"] + P["prime"]
    inter = interets_simpl(dc, i, T)
    hon = r0(dcours * P["hon"] / 100)
    assur = r0(dc * P["assur"] / 100)
    indirects = pm["permis"] + gcr + inter + hon + assur + juridique + redevances
    assiette = dc + indirects
    profit = r0(assiette * P["profit"] / 100)
    total = assiette + profit
    return dict(cascade=c, permis=pm, gcr=gcr, taux=i, duree=T, interets=inter, honoraires=hon, assurance=assur, juridique=juridique,
                redevances=redevances, indirects=indirects, assiette=assiette, profit=profit, total=total)

def par_periode(C, i_pct, T, profil="lineaire"):
    i_m = i_pct / 100 / 12
    cum = (lambda t: t / T) if profil == "lineaire" else (lambda t: 3 * (t / T) ** 2 - 2 * (t / T) ** 3)
    solde = 0.0; tot = 0.0; lignes = []
    for t in range(1, T + 1):
        deb = C * (cum(t) - cum(t - 1)); it = solde * i_m; solde += deb + it; tot += it
        lignes.append((t, r0(deb), r0(C * cum(t)), r0(it), r0(solde)))
    return r0(tot), lignes

def taxes(prix, premier=False):
    tps = prix * P["tps"] / 100; tvq = prix * P["tvq"] / 100
    rt = min(tps * .36, 6300) if prix <= 350000 else (6300 * (450000 - prix) / 100000 if prix < 450000 else 0.0)
    rq = min(tvq * .5, 9975) if prix <= 200000 else (9975 * (300000 - prix) / 100000 if prix < 300000 else 0.0)
    pa = 0.0
    if premier:
        pa = tps if prix <= 1000000 else (tps * (1500000 - prix) / 500000 if prix < 1500000 else 0.0)
    reff = max(rt, pa); net = tps + tvq - reff - rq
    return dict(prix=prix, tps=r2(tps), tvq=r2(tvq), brutes=r2(tps + tvq), remb_tps=r2(reff), remb_tvq=r2(rq), nettes=r2(net), pct=r2(net / prix * 100))

def h(t): print("\n" + "=" * 78 + f"\n{t}\n" + "=" * 78)

# ---------------------------------------------------------------- Cas de référence (concordance RESULTATS_CALCULS)
h("CAS DE RÉFÉRENCE — six logements, Hull, 14 mois, 6,75 %, GCR non visé (concordance RESULTATS_CALCULS.md)")
BASE = chaine(785000, 6, 14, 12000, False)
c = BASE["cascade"]
print(f"directs nus {f(c['nus'])} | CG {f(c['cg'])} → {f(c['apres_cg'])} | FG {f(c['fg'])} → {f(c['apres_fg'])} | profit EG {f(c['peg'])} → directs du cours {f(c['directs_cours'])}")
print(f"contingences {f(c['cont'])} → D+C {f(c['dc'])} ; majoration en cascade {c['majoration_pct']} %")
print(f"permis max({f(BASE['permis']['prop'])} ; {f(BASE['permis']['mini'])}) = {f(BASE['permis']['permis'])} | GCR {BASE['gcr']} | intérêts {f(BASE['interets'])} | honoraires {f(BASE['honoraires'])} | assurance {f(BASE['assurance'])} | juridique {f(BASE['juridique'])}")
print(f"indirects {f(BASE['indirects'])} | assiette {f(BASE['assiette'])} | profit {f(BASE['profit'])} | COÛT TOTAL {f(BASE['total'])}")
lin, _ = par_periode(1018968, 6.75, 14, "lineaire"); S, lignesS = par_periode(1018968, 6.75, 14, "S")
print(f"intérêts par période : linéaire {f(lin)} ; courbe en S {f(S)} ; simplifiée ½ {f(BASE['interets'])}")
attendu = dict(directs_cours=979718, dc=1018968, indirects=104252, total=1246774, i_demi=40122, lin=38107, S=38002)
ok = (c["directs_cours"], c["dc"], BASE["indirects"], BASE["total"], BASE["interets"], lin, S) == tuple(attendu.values())
print("CONCORDANCE avec RESULTATS_CALCULS.md :", "OK" if ok else "ÉCART !")

# ---------------------------------------------------------------- Exercices projetés P1–P4 (deck p. 94–101)
h("P1 (E1 du deck) — intercalaires à 7,75 % et 18 mois")
I1 = interets_simpl(1018968, 7.75, 18); d = I1 - BASE["interets"]
V1 = chaine(785000, 6, 18, 12000, False, i_pct=7.75)
print(f"I = 1 018 968 × 0,0775 × 18/12 × ½ = {f(I1)} $ ; écart vs 40 122 = +{f(d)} $ ; effet sur le coût total ≈ {f(d)} × 1,11 = {f(r0(d*1.11))} $")
print(f"chaîne complète : indirects {f(V1['indirects'])} ; assiette {f(V1['assiette'])} ; profit {f(V1['profit'])} ; coût total {f(V1['total'])} $ (écart {f(V1['total']-BASE['total'])} $, {r2((V1['total']/BASE['total']-1)*100)} %)")
print(f"facteur multiplicatif des deux chocs : (7,75/6,75) × (18/14) = {r2(7.75/6.75*18/14)}")

h("P2 (E2 du deck) — permis et GCR d'un triplex, D+C = 520 000 $")
pm = permis(520000, 3); g = 3 * P["gcr"]
print(f"permis = max({f(pm['prop'])} ; {f(pm['mini'])}) = {f(pm['permis'])} $ ; GCR = 3 × 2 656,68 = {f2(g)} $ ; total réglementaire {f2(pm['permis']+g)} $ = {r2((pm['permis']+g)/520000*100)} % de D+C")
print(f"comparaison six logements : {f(BASE['permis']['permis'])} / {f(BASE['cascade']['dc'])} = {r2(BASE['permis']['permis']/BASE['cascade']['dc']*100)} %")

h("P3 (E3 du deck) — profit sur coût ↔ marge sur prix")
print(f"(a) p = 12 % → m = 0,12/1,12 = {r2(0.12/1.12*100)} %   (b) m = 15 % → p = 0,15/0,85 = {r2(0.15/0.85*100)} %")
print(f"rappel du cas : 11 % → {r2(0.11/1.11*100)} % ; marge 11 % → p = {r2(0.11/0.89*100)} % ; profit requis {f(r0(1123220*0.11/0.89))} $")

h("P4 (E4 du deck) — classement de dix postes : voir corrigé (aucun calcul)")

# ---------------------------------------------------------------- Famille B
h("B1 — cascade sur 250 000 $ de directs nus (duplex)")
b1 = cascade(250000)
print(f"CG {f(b1['cg'])} → {f(b1['apres_cg'])} ; FG {f(b1['fg'])} → {f(b1['apres_fg'])} ; profit EG {f(b1['peg'])} → directs du cours {f(b1['directs_cours'])} ; contingences {f(b1['cont'])} → D+C {f(b1['dc'])}")
somme = r0(250000 * 1.23); print(f"majoration cascade {b1['majoration_pct']} % ; somme +23 % = {f(somme)} ; écart cascade − somme = {f(b1['directs_cours']-somme)} $ ; termes croisés exacts : 0,08×0,07 + 0,08×0,08 + 0,07×0,08 + 0,08×0,07×0,08 = {1.08*1.07*1.08-1.23:.6f}")

h("B2 — intercalaires, méthode simplifiée : 650 000 $, 7,25 %, 12 mois (puis 9 mois)")
I12 = interets_simpl(650000, 7.25, 12); I9 = interets_simpl(650000, 7.25, 9)
print(f"I(12 mois) = 650 000 × 0,0725 × 12/12 × ½ = {f(I12)} $ ({r2(I12/650000*100)} % de C) ; I(9 mois) = {f(I9)} $")
print(f"erreurs : sans ½ → {f(r0(650000*0.0725))} $ ; durée en mois sans /12 → {f(r0(650000*0.0725*12*0.5))} $ (12 fois trop)")

h("B3 — permis de construire à Gatineau (règl. 501-2005, art. 104)")
for nom, dc, n in [("unifamiliale", 95000, 1), ("duplex", 130000, 2), ("huit logements", 1400000, 8)]:
    pm = permis(dc, n); print(f"{nom:15s} D+C {f(dc):>10s} $, {n} log. : proportionnel {f(pm['prop']):>6s} ; minimum {f(pm['mini']):>6s} → permis {f(pm['permis'])} $")
print(f"seuil où le minimum cesse de mordre (8 log.) : 8 × 335 / 4,70 × 1 000 = {f(r0(8*335/4.70*1000))} $ ; (1 log.) : {f(r0(335/4.70*1000))} $")

h("B4 — honoraires : même taux de 4 %, trois bases (directs nus 600 000 $)")
b4 = cascade(600000)
print(f"directs du cours {f(b4['directs_cours'])} ; D+C {f(b4['dc'])}")
print(f"4 % des nus = {f(r0(600000*0.04))} ; 4 % des directs du cours = {f(r0(b4['directs_cours']*0.04))} (convention) ; 4 % de D+C = {f(r0(b4['dc']*0.04))}")
print(f"vérification horaire 210 h × 145 $ = {f(210*145)} $ ; écart vs convention {r2((210*145/(b4['directs_cours']*0.04)-1)*100)} %")

h("B5 — TPS/TVQ, acheteur-occupant 260 000 $ et 420 000 $ ; premier acheteur 420 000 $")
for prix, prem in [(260000, False), (420000, False), (420000, True)]:
    t = taxes(prix, prem); print(f"{'premier acheteur' if prem else 'occupant':17s} {f(prix)} $ : TPS {f2(t['tps'])} ; TVQ {f2(t['tvq'])} ; brutes {f2(t['brutes'])} ; remb. TPS {f2(t['remb_tps'])} ; remb. TVQ {f2(t['remb_tvq'])} ; NETTES {f2(t['nettes'])} $ ({t['pct']} %)")

h("B6 — profit et marge")
print(f"(a) p = 9 % → m = {r2(0.09/1.09*100)} %  (b) m = 12 % → p = {r2(0.12/0.88*100)} %  (c) assiette 900 000, profit visé 100 000 $ : p = {r2(100000/900000*100)} % ; m = {r2(100000/1000000*100)} %")

h("B7 — méthode par période : 300 000 $, 6,75 %, 6 mois, linéaire, intérêt sur solde de début de mois capitalisé")
tot, lg = par_periode(300000, 6.75, 6)
print("mois | décaissement | cumul | intérêt | solde fin")
for l in lg: print(f"{l[0]:>4} | {f(l[1]):>12} | {f(l[2]):>9} | {f(l[3]):>7} | {f(l[4]):>9}")
print(f"I par période = {f(tot)} $ ; simplifiée ½ = {f(interets_simpl(300000, 6.75, 6))} $ ; simple (n−1)/2n = 300 000 × 0,0675/12 × 5/2 = {f(r0(300000*0.0675/12*5/2))} $")

h("B8 — extraction du profit : vente 1 380 000 $, terrain 190 000 $, assiette reconstituée 1 010 000 $")
bat = 1380000 - 190000; prof = bat - 1010000
print(f"bâtiment implicite {f(bat)} ; profit extrait {f(prof)} $ ; taux sur l'assiette {r2(prof/1010000*100)} % ; marge sur le bâtiment {r2(prof/bat*100)} % ; marge sur le prix total {r2(prof/1380000*100)} %")

# ---------------------------------------------------------------- Famille C
h("C1 — facteur (n−1)/2n : 14 déboursés mensuels égaux, intérêt simple")
n = 14; C = 1018968; i = 6.75
Isimple = r0(C * i / 100 / 12 * (n - 1) / 2)
print(f"I = C × i/12 × (n−1)/2 = {f(Isimple)} $ ; = 40 122 × 13/14 = {f(r0(40122*13/14))} $ ; capitalisation (+{f(lin-Isimple)}) → {f(lin)} $ (par période linéaire)")
print(f"facteurs : (n−1)/2n = {13/28:.4f} contre 0,5 → écart {r2((13/28/0.5-1)*100)} %")

h("C2 — conversion profit ↔ marge")
for p in (0.08, 0.11, 0.1236, 0.15, 0.20): print(f"p = {p*100:.2f} % → m = {r2(p/(1+p)*100)} %", end=" ; ")
print(); 
for m in (0.08, 0.0991, 0.11, 0.15, 0.20): print(f"m = {m*100:.2f} % → p = {r2(m/(1-m)*100)} %", end=" ; ")
print()

h("C3 — écart cascade − somme = termes croisés × nus")
tc = 1.08 * 1.07 * 1.08 - 1.23
print(f"termes croisés = {tc:.6f} ; sur 100 000 $ : {f(r0(100000*tc))} $ ; sur 785 000 $ : {f(r0(785000*tc))} $ (avec arrondis de ligne : {f(BASE['cascade']['directs_cours'] - r0(785000*1.23))} $)")

# ---------------------------------------------------------------- Famille D — étude de cas (Aylmer, 16 mois)
h("D1 — le même six logements à Aylmer (redevances 6 × 3 986,39 $) et chantier de 16 mois")
red = r0(6 * P["redevance_aylmer"])
D1 = chaine(785000, 6, 16, 12000, False, redevances=red)
print(f"redevances de développement = 6 × 3 986,39 = {f2(6*P['redevance_aylmer'])} → {f(red)} $")
print(f"intérêts 16 mois = 1 018 968 × 0,0675 × 16/12 × ½ = {f(D1['interets'])} $ (vs 40 122 : +{f(D1['interets']-40122)})")
print(f"indirects : permis {f(D1['permis']['permis'])} + GCR 0 + intérêts {f(D1['interets'])} + honoraires {f(D1['honoraires'])} + assurance {f(D1['assurance'])} + juridique {f(D1['juridique'])} + redevances {f(red)} = {f(D1['indirects'])} $")
print(f"assiette {f(D1['assiette'])} ; profit 11 % {f(D1['profit'])} ; COÛT TOTAL {f(D1['total'])} $")
print(f"écart vs cas de base : {f(D1['total']-BASE['total'])} $ ({r2((D1['total']/BASE['total']-1)*100)} %) ; décomposition (5 732 + 23 918) × 1,11 = {f(r0((D1['interets']-40122+red)*1.11))} $")
print(f"unités : {r2(D1['total']/5400)} $/pi² hors sol ; {r2(D1['total']/7200)} $/pi² brut ; {f(r0(D1['total']/6))} $/logement ; indirects/directs du cours {r2(D1['indirects']/979718*100)} %")
print(f"test du marché : (1 279 686 − 1 325 000)/1 325 000 = {r2((D1['total']-1325000)/1325000*100)} % ; profit extrait médian sur la nouvelle assiette = {r2((1325000-D1['assiette'])/D1['assiette']*100)} %")
g2 = r0(6 * P["gcr_cat2"]); print(f"sous-question copropriété divise : GCR catégorie 2 = 6 × 3 359,68 = {f2(6*P['gcr_cat2'])} $ ; redevances inchangées ; coût total si visée : {f(D1['total'] + r0(g2*1.11))} $ (≈ +{f(r0(g2*1.11))})")
D1b = chaine(785000, 6, 16, 12000, True, redevances=red, gcr_unit=P["gcr_cat2"]); print(f"   (chaîne complète, GCR cat. 2 : indirects {f(D1b['indirects'])}, assiette {f(D1b['assiette'])}, profit {f(D1b['profit'])}, total {f(D1b['total'])} $)")

# ---------------------------------------------------------------- Famille F
h("F1 — soumission clés en main de 1 019 000 $ (dont réserve de 39 000 $) : reconstruire le coût neuf")
F1 = chaine(None, 6, 14, 12000, False, directs_cours_impose=980000, dc_impose=1019000)
print(f"directs du cours (soumission − réserve) = 980 000 ; D+C = 1 019 000")
print(f"permis {f(F1['permis']['permis'])} ; intérêts {f(F1['interets'])} ; honoraires 4 % × 980 000 = {f(F1['honoraires'])} ; assurance {f(F1['assurance'])} ; juridique {f(F1['juridique'])} → indirects {f(F1['indirects'])}")
print(f"assiette {f(F1['assiette'])} ; profit {f(F1['profit'])} ; coût neuf {f(F1['total'])} $ ; sous-estimation si l'on s'arrête à la soumission : {f(F1['total']-1019000)} $ = {r2((1019000/F1['total']-1)*100)} % du coût neuf")

h("F2 — triplex à Hull : chaîne complète (directs nus 410 000 $, 10 mois, GCR visée, juridique 9 000 $)")
F2 = chaine(410000, 3, 10, 9000, True)
c = F2["cascade"]
print(f"CG {f(c['cg'])} → {f(c['apres_cg'])} ; FG {f(c['fg'])} → {f(c['apres_fg'])} ; profit EG {f(c['peg'])} → directs du cours {f(c['directs_cours'])} ; contingences {f(c['cont'])} → D+C {f(c['dc'])}")
print(f"permis max({f(F2['permis']['prop'])} ; {f(F2['permis']['mini'])}) = {f(F2['permis']['permis'])} ; GCR 3 × 2 656,68 = {f(F2['gcr'])} ; intérêts {f(F2['interets'])} ; honoraires {f(F2['honoraires'])} ; assurance {f(F2['assurance'])} ; juridique {f(F2['juridique'])}")
print(f"indirects {f(F2['indirects'])} ({r2(F2['indirects']/c['directs_cours']*100)} % des directs du cours) ; assiette {f(F2['assiette'])} ; profit {f(F2['profit'])} ; COÛT TOTAL {f(F2['total'])} $ ; {f(r0(F2['total']/3))} $/logement")
print(f"sans GCR (erreur de qualification) : {f(F2['total'] - r0(F2['gcr']*1.11))} $ environ (écart {f(r0(F2['gcr']*1.11))} $)")

h("F3 — classement de douze postes : voir corrigé (aucun calcul)")
print("\nFin de l'annexe — tous les montants arrondis au dollar à chaque ligne (convention du moteur).")

# Sortie (collée telle quelle)

text

==============================================================================
CAS DE RÉFÉRENCE — six logements, Hull, 14 mois, 6,75 %, GCR non visé (concordance RESULTATS_CALCULS.md)
==============================================================================
directs nus 785 000 | CG 62 800 → 847 800 | FG 59 346 → 907 146 | profit EG 72 572 → directs du cours 979 718
contingences 39 250 → D+C 1 018 968 ; majoration en cascade 24.8 %
permis max(4 789 ; 2 010) = 4 789 | GCR 0 | intérêts 40 122 | honoraires 39 189 | assurance 8 152 | juridique 12 000
indirects 104 252 | assiette 1 123 220 | profit 123 554 | COÛT TOTAL 1 246 774
intérêts par période : linéaire 38 107 ; courbe en S 38 002 ; simplifiée ½ 40 122
CONCORDANCE avec RESULTATS_CALCULS.md : OK

==============================================================================
P1 (E1 du deck) — intercalaires à 7,75 % et 18 mois
==============================================================================
I = 1 018 968 × 0,0775 × 18/12 × ½ = 59 228 $ ; écart vs 40 122 = +19 106 $ ; effet sur le coût total ≈ 19 106 × 1,11 = 21 208 $
chaîne complète : indirects 123 358 ; assiette 1 142 326 ; profit 125 656 ; coût total 1 267 982 $ (écart 21 208 $, 1.7 %)
facteur multiplicatif des deux chocs : (7,75/6,75) × (18/14) = 1.48

==============================================================================
P2 (E2 du deck) — permis et GCR d'un triplex, D+C = 520 000 $
==============================================================================
permis = max(2 444 ; 1 005) = 2 444 $ ; GCR = 3 × 2 656,68 = 7 970,04 $ ; total réglementaire 10 414,04 $ = 2.0 % de D+C
comparaison six logements : 4 789 / 1 018 968 = 0.47 %

==============================================================================
P3 (E3 du deck) — profit sur coût ↔ marge sur prix
==============================================================================
(a) p = 12 % → m = 0,12/1,12 = 10.71 %   (b) m = 15 % → p = 0,15/0,85 = 17.65 %
rappel du cas : 11 % → 9.91 % ; marge 11 % → p = 12.36 % ; profit requis 138 825 $

==============================================================================
P4 (E4 du deck) — classement de dix postes : voir corrigé (aucun calcul)
==============================================================================

==============================================================================
B1 — cascade sur 250 000 $ de directs nus (duplex)
==============================================================================
CG 20 000 → 270 000 ; FG 18 900 → 288 900 ; profit EG 23 112 → directs du cours 312 012 ; contingences 12 500 → D+C 324 512
majoration cascade 24.8 % ; somme +23 % = 307 500 ; écart cascade − somme = 4 512 $ ; termes croisés exacts : 0,08×0,07 + 0,08×0,08 + 0,07×0,08 + 0,08×0,07×0,08 = 0.018048

==============================================================================
B2 — intercalaires, méthode simplifiée : 650 000 $, 7,25 %, 12 mois (puis 9 mois)
==============================================================================
I(12 mois) = 650 000 × 0,0725 × 12/12 × ½ = 23 563 $ (3.63 % de C) ; I(9 mois) = 17 672 $
erreurs : sans ½ → 47 125 $ ; durée en mois sans /12 → 282 750 $ (12 fois trop)

==============================================================================
B3 — permis de construire à Gatineau (règl. 501-2005, art. 104)
==============================================================================
unifamiliale    D+C     95 000 $, 1 log. : proportionnel    447 ; minimum    335 → permis 447 $
duplex          D+C    130 000 $, 2 log. : proportionnel    611 ; minimum    670 → permis 670 $
huit logements  D+C  1 400 000 $, 8 log. : proportionnel  6 580 ; minimum  2 680 → permis 6 580 $
seuil où le minimum cesse de mordre (8 log.) : 8 × 335 / 4,70 × 1 000 = 570 213 $ ; (1 log.) : 71 277 $

==============================================================================
B4 — honoraires : même taux de 4 %, trois bases (directs nus 600 000 $)
==============================================================================
directs du cours 748 829 ; D+C 778 829
4 % des nus = 24 000 ; 4 % des directs du cours = 29 953 (convention) ; 4 % de D+C = 31 153
vérification horaire 210 h × 145 $ = 30 450 $ ; écart vs convention 1.66 %

==============================================================================
B5 — TPS/TVQ, acheteur-occupant 260 000 $ et 420 000 $ ; premier acheteur 420 000 $
==============================================================================
occupant          260 000 $ : TPS 13 000,00 ; TVQ 25 935,00 ; brutes 38 935,00 ; remb. TPS 4 680,00 ; remb. TVQ 3 990,00 ; NETTES 30 265,00 $ (11.64 %)
occupant          420 000 $ : TPS 21 000,00 ; TVQ 41 895,00 ; brutes 62 895,00 ; remb. TPS 1 890,00 ; remb. TVQ 0,00 ; NETTES 61 005,00 $ (14.52 %)
premier acheteur  420 000 $ : TPS 21 000,00 ; TVQ 41 895,00 ; brutes 62 895,00 ; remb. TPS 21 000,00 ; remb. TVQ 0,00 ; NETTES 41 895,00 $ (9.98 %)

==============================================================================
B6 — profit et marge
==============================================================================
(a) p = 9 % → m = 8.26 %  (b) m = 12 % → p = 13.64 %  (c) assiette 900 000, profit visé 100 000 $ : p = 11.11 % ; m = 10.0 %

==============================================================================
B7 — méthode par période : 300 000 $, 6,75 %, 6 mois, linéaire, intérêt sur solde de début de mois capitalisé
==============================================================================
mois | décaissement | cumul | intérêt | solde fin
   1 |       50 000 |    50 000 |       0 |    50 000
   2 |       50 000 |   100 000 |     281 |   100 281
   3 |       50 000 |   150 000 |     564 |   150 845
   4 |       50 000 |   200 000 |     849 |   201 694
   5 |       50 000 |   250 000 |   1 135 |   252 828
   6 |       50 000 |   300 000 |   1 422 |   304 251
I par période = 4 251 $ ; simplifiée ½ = 5 063 $ ; simple (n−1)/2n = 300 000 × 0,0675/12 × 5/2 = 4 219 $

==============================================================================
B8 — extraction du profit : vente 1 380 000 $, terrain 190 000 $, assiette reconstituée 1 010 000 $
==============================================================================
bâtiment implicite 1 190 000 ; profit extrait 180 000 $ ; taux sur l'assiette 17.82 % ; marge sur le bâtiment 15.13 % ; marge sur le prix total 13.04 %

==============================================================================
C1 — facteur (n−1)/2n : 14 déboursés mensuels égaux, intérêt simple
==============================================================================
I = C × i/12 × (n−1)/2 = 37 256 $ ; = 40 122 × 13/14 = 37 256 $ ; capitalisation (+851) → 38 107 $ (par période linéaire)
facteurs : (n−1)/2n = 0.4643 contre 0,5 → écart -7.14 %

==============================================================================
C2 — conversion profit ↔ marge
==============================================================================
p = 8.00 % → m = 7.41 % ; p = 11.00 % → m = 9.91 % ; p = 12.36 % → m = 11.0 % ; p = 15.00 % → m = 13.04 % ; p = 20.00 % → m = 16.67 % ; 
m = 8.00 % → p = 8.7 % ; m = 9.91 % → p = 11.0 % ; m = 11.00 % → p = 12.36 % ; m = 15.00 % → p = 17.65 % ; m = 20.00 % → p = 25.0 % ; 

==============================================================================
C3 — écart cascade − somme = termes croisés × nus
==============================================================================
termes croisés = 0.018048 ; sur 100 000 $ : 1 805 $ ; sur 785 000 $ : 14 168 $ (avec arrondis de ligne : 14 168 $)

==============================================================================
D1 — le même six logements à Aylmer (redevances 6 × 3 986,39 $) et chantier de 16 mois
==============================================================================
redevances de développement = 6 × 3 986,39 = 23 918,34 → 23 918 $
intérêts 16 mois = 1 018 968 × 0,0675 × 16/12 × ½ = 45 854 $ (vs 40 122 : +5 732)
indirects : permis 4 789 + GCR 0 + intérêts 45 854 + honoraires 39 189 + assurance 8 152 + juridique 12 000 + redevances 23 918 = 133 902 $
assiette 1 152 870 ; profit 11 % 126 816 ; COÛT TOTAL 1 279 686 $
écart vs cas de base : 32 912 $ (2.64 %) ; décomposition (5 732 + 23 918) × 1,11 = 32 912 $
unités : 236.98 $/pi² hors sol ; 177.73 $/pi² brut ; 213 281 $/logement ; indirects/directs du cours 13.67 %
test du marché : (1 279 686 − 1 325 000)/1 325 000 = -3.42 % ; profit extrait médian sur la nouvelle assiette = 14.93 %
sous-question copropriété divise : GCR catégorie 2 = 6 × 3 359,68 = 20 158,08 $ ; redevances inchangées ; coût total si visée : 1 302 061 $ (≈ +22 375)
   (chaîne complète, GCR cat. 2 : indirects 154 060, assiette 1 173 028, profit 129 033, total 1 302 061 $)

==============================================================================
F1 — soumission clés en main de 1 019 000 $ (dont réserve de 39 000 $) : reconstruire le coût neuf
==============================================================================
directs du cours (soumission − réserve) = 980 000 ; D+C = 1 019 000
permis 4 789 ; intérêts 40 123 ; honoraires 4 % × 980 000 = 39 200 ; assurance 8 152 ; juridique 12 000 → indirects 104 264
assiette 1 123 264 ; profit 123 559 ; coût neuf 1 246 823 $ ; sous-estimation si l'on s'arrête à la soumission : 227 823 $ = -18.27 % du coût neuf

==============================================================================
F2 — triplex à Hull : chaîne complète (directs nus 410 000 $, 10 mois, GCR visée, juridique 9 000 $)
==============================================================================
CG 32 800 → 442 800 ; FG 30 996 → 473 796 ; profit EG 37 904 → directs du cours 511 700 ; contingences 20 500 → D+C 532 200
permis max(2 501 ; 1 005) = 2 501 ; GCR 3 × 2 656,68 = 7 970 ; intérêts 14 968 ; honoraires 20 468 ; assurance 4 258 ; juridique 9 000
indirects 59 165 (11.56 % des directs du cours) ; assiette 591 365 ; profit 65 050 ; COÛT TOTAL 656 415 $ ; 218 805 $/logement
sans GCR (erreur de qualification) : 647 568 $ environ (écart 8 847 $)

==============================================================================
F3 — classement de douze postes : voir corrigé (aucun calcul)
==============================================================================

Fin de l'annexe — tous les montants arrondis au dollar à chaque ligne (convention du moteur).
Files main
Menu

Theme