-- #migration 2026_07_09_086
-- Guide pas à pas complet (tutoriel) pour tous les points de checklist de C-061-070 (sauf C-065)

UPDATE card_guide SET checklist_json = '[{"id": "charges_fixes", "type": "boolean", "label": "Lister toutes tes charges fixes mensuelles", "detail": "Loyer atelier, assurances, abonnements, charges sociales fixes, remboursements de prêt.", "tutoriel": {"intro": "Connaître précisément ses charges fixes est la base de tout calcul de rentabilité.", "steps": [{"titre": "Liste tous tes frais récurrents mensuels", "contenu": "Loyer atelier, assurances, abonnements, remboursements de prêt."}, {"titre": "Ajoute les charges sociales fixes", "contenu": "Celles qui tombent indépendamment de ton chiffre d''affaires."}, {"titre": "Additionne le tout pour un total mensuel", "contenu": "Ce montant est le socle minimum que ton activité doit couvrir chaque mois."}], "pieges": ["Oublier des charges annuelles à répartir mensuellement (assurance, cotisations), ce qui sous-estime le vrai montant."]}}, {"id": "cout_variable_moyen", "type": "boolean", "label": "Calculer le coût variable moyen par vente", "detail": "Matières premières et frais directs liés à chaque vente, rapportés à ton panier moyen actuel.", "tutoriel": {"intro": "Le coût variable moyen complète le calcul du seuil de rentabilité.", "steps": [{"titre": "Calcule le coût matière moyen par vente", "contenu": "En te basant sur ton panier moyen actuel."}, {"titre": "Ajoute les frais directs liés à chaque vente", "contenu": "Emballage, frais de transaction, livraison si à ta charge."}, {"titre": "Exprime ce coût en pourcentage du prix de vente", "contenu": "Pour l''utiliser facilement dans le calcul du seuil."}], "pieges": ["Se baser sur une seule vente non représentative plutôt que sur une vraie moyenne de ton activité."]}}, {"id": "seuil_mensuel", "type": "boolean", "label": "Déterminer le CA minimum mensuel nécessaire", "detail": "Charges fixes / (1 - pourcentage de coût variable) = seuil de rentabilité mensuel.", "tutoriel": {"intro": "Ce calcul donne le chiffre d''affaires minimum à atteindre chaque mois.", "steps": [{"titre": "Applique la formule du seuil de rentabilité", "contenu": "Charges fixes divisées par (1 moins le pourcentage de coût variable)."}, {"titre": "Vérifie le résultat par rapport à ton CA actuel", "contenu": "Pour savoir si tu es au-dessus ou en dessous de ce seuil."}, {"titre": "Utilise ce chiffre comme repère mensuel", "contenu": "Un objectif clair à garder en tête chaque mois."}], "pieges": ["Calculer ce seuil une seule fois sans jamais le remettre à jour quand tes charges évoluent."]}}]' WHERE card_id = 'C-061';
UPDATE card_guide SET checklist_json = '[{"id": "mesurer_dependance", "type": "boolean", "label": "Mesurer ta dépendance actuelle", "detail": "Calcule le pourcentage de ton CA qui dépend de ton canal principal — au-delà de 70-80%, la diversification devient urgente.", "tutoriel": {"intro": "Mesurer sa dépendance actuelle révèle si la diversification est vraiment urgente.", "steps": [{"titre": "Calcule la part de CA de ton canal principal", "contenu": "Sur les derniers mois d''activité."}, {"titre": "Compare ce pourcentage au seuil de 70-80%", "contenu": "Au-delà, la diversification devient prioritaire."}, {"titre": "Identifie les canaux secondaires existants", "contenu": "Même faibles, pour voir sur quoi t''appuyer pour diversifier."}], "pieges": ["Ne jamais calculer précisément cette dépendance et rester dans une impression approximative."]}}, {"id": "choisir_canaux", "type": "boolean", "label": "Choisir 2-3 canaux complémentaires", "detail": "Privilégie des canaux qui touchent des profils de clients différents de ton canal actuel.", "tutoriel": {"intro": "Les bons canaux complémentaires touchent des profils différents de ton canal actuel.", "steps": [{"titre": "Identifie les profils de clients non touchés", "contenu": "Ceux que ton canal principal n''atteint pas ou peu."}, {"titre": "Choisis 2-3 canaux qui les touchent", "contenu": "Marché physique, marketplace, B2B selon ton activité."}, {"titre": "Priorise selon la faisabilité", "contenu": "Commence par le canal le plus accessible à mettre en place rapidement."}], "pieges": ["Choisir un canal complémentaire qui touche exactement le même profil que ton canal principal, sans vrai gain de diversification."]}}, {"id": "developper_progressivement", "type": "boolean", "label": "Développer progressivement sans tout abandonner", "detail": "Teste un nouveau canal avec un investissement limité avant d''y consacrer des ressources importantes.", "tutoriel": {"intro": "Un développement progressif limite le risque avant d''investir davantage.", "steps": [{"titre": "Teste le nouveau canal avec un investissement limité", "contenu": "Temps ou budget réduit pour une première évaluation."}, {"titre": "Mesure les résultats sur quelques semaines", "contenu": "Avant de décider d''investir davantage."}, {"titre": "Augmente progressivement si les résultats sont positifs", "contenu": "Sans jamais abandonner totalement ton canal principal en cours de route."}], "pieges": ["Investir massivement d''un coup dans un nouveau canal non testé, au risque de perdre du temps et des ressources."]}}]' WHERE card_id = 'C-062';
UPDATE card_guide SET checklist_json = '[{"id": "identifier_recurrent", "type": "boolean", "label": "Identifier ce qui peut devenir récurrent", "detail": "Un client B2B qui recommande régulièrement, un produit consommable, ou un intérêt client pour la nouveauté régulière.", "tutoriel": {"intro": "Certains éléments de ton activité ont un vrai potentiel de récurrence à exploiter.", "steps": [{"titre": "Repère les clients qui reviennent naturellement", "contenu": "Un client B2B qui recommande régulièrement par exemple."}, {"titre": "Identifie un produit consommable dans ta gamme", "contenu": "Qui pourrait justifier un réachat régulier."}, {"titre": "Note l''intérêt client pour la nouveauté", "contenu": "S''il existe une demande récurrente de renouvellement."}], "pieges": ["Chercher à créer de la récurrence artificiellement là où la demande naturelle n''existe pas."]}}, {"id": "formaliser_engagement", "type": "boolean", "label": "Formaliser l''engagement réciproque", "detail": "Définis clairement la fréquence, le contenu, le prix et les conditions d''arrêt.", "tutoriel": {"intro": "Un engagement réciproque clair évite les malentendus dans la durée.", "steps": [{"titre": "Définis la fréquence de l''engagement", "contenu": "Mensuelle, trimestrielle selon ce qui est pertinent."}, {"titre": "Précise le contenu ou le prix", "contenu": "Ce que chaque partie reçoit et paie exactement."}, {"titre": "Prévois les conditions d''arrêt", "contenu": "Comment l''engagement peut se terminer, des deux côtés."}], "pieges": ["Démarrer un engagement récurrent sans avoir formalisé les conditions d''arrêt, source de tension plus tard."]}}, {"id": "capacite_soutenable", "type": "boolean", "label": "Calculer la capacité de production soutenable", "detail": "Un engagement récurrent te lie dans la durée — vérifie que tu peux l''honorer sans épuisement.", "tutoriel": {"intro": "Un engagement récurrent te lie dans la durée — vérifie que tu peux l''honorer sans épuisement.", "steps": [{"titre": "Estime le temps ou l''effort par engagement", "contenu": "Pour honorer la récurrence sur la durée prévue."}, {"titre": "Calcule combien tu peux en soutenir", "contenu": "Sans compromettre le reste de ton activité."}, {"titre": "Prévois une marge de sécurité", "contenu": "Pour absorber les imprévus sans rompre l''engagement pris."}], "pieges": ["Accepter trop d''engagements récurrents sans avoir vérifié la capacité réelle de les honorer durablement."]}}]' WHERE card_id = 'C-063';
UPDATE card_guide SET checklist_json = '[{"id": "selectionner_revendeurs", "type": "boolean", "label": "Sélectionner des revendeurs cohérents avec ton positionnement", "detail": "La boutique partenaire doit correspondre à l''image et à la gamme de prix que tu veux véhiculer.", "tutoriel": {"intro": "Le bon revendeur reflète l''image que tu veux véhiculer pour ta marque.", "steps": [{"titre": "Identifie des boutiques cohérentes avec ton univers", "contenu": "Style, gamme de prix, clientèle similaires aux tiennes."}, {"titre": "Vérifie leur positionnement actuel", "contenu": "Pour t''assurer que ton travail y trouvera bien sa place."}, {"titre": "Contacte-les avec une présentation soignée", "contenu": "Qui montre la cohérence entre vos deux univers."}], "pieges": ["Accepter n''importe quel revendeur juste pour élargir la distribution, au risque de nuire à ton image de marque."]}}, {"id": "conditions_gros", "type": "boolean", "label": "Définir des conditions de gros claires", "detail": "Remise grossiste (40-50% généralement), minimum de commande, délais et conditions de paiement formalisés par écrit.", "tutoriel": {"intro": "Des conditions de gros claires et écrites évitent les malentendus commerciaux.", "steps": [{"titre": "Fixe une remise grossiste standard", "contenu": "Généralement 40-50% sur le prix public."}, {"titre": "Définis un minimum de commande", "contenu": "Pour protéger ta rentabilité sur chaque partenariat."}, {"titre": "Formalise délais et paiement par écrit", "contenu": "Un document simple envoyé à chaque nouveau revendeur."}], "pieges": ["Négocier des conditions différentes avec chaque revendeur sans grille de référence, source d''incohérence."]}}, {"id": "securiser_reassort", "type": "boolean", "label": "Sécuriser les modalités de réassort et de fin de partenariat", "detail": "Anticipe comment se passe le réassort régulier et les conditions si l''un des deux souhaite arrêter.", "tutoriel": {"intro": "Anticiper le réassort et la fin de partenariat évite les situations bloquantes.", "steps": [{"titre": "Définis le processus de réassort régulier", "contenu": "Fréquence, quantité minimum, délai de livraison."}, {"titre": "Prévois les conditions de fin de partenariat", "contenu": "Comment l''un ou l''autre peut mettre fin à la collaboration."}, {"titre": "Communique ces modalités dès le départ", "contenu": "Pour que chacun sache à quoi s''attendre dans la durée."}], "pieges": ["Ne jamais aborder la question de la fin de partenariat, ce qui complique une éventuelle séparation plus tard."]}}]' WHERE card_id = 'C-064';
UPDATE card_guide SET checklist_json = '[{"id": "choisir_plateforme_marketplace", "type": "boolean", "label": "Choisir la plateforme adaptée à ton type de création", "detail": "Etsy pour l''artisanat créatif international, MadeIn pour le made in France.", "tutoriel": {"intro": "Le choix de la marketplace dépend du type de création et du public visé.", "steps": [{"titre": "Compare les marketplaces pertinentes", "contenu": "Etsy pour l''international, MadeIn pour le made in France notamment."}, {"titre": "Vérifie la cohérence avec ton style", "contenu": "Le public de chaque plateforme diffère selon les univers."}, {"titre": "Teste avec quelques produits d''abord", "contenu": "Avant d''y transférer toute ta gamme."}], "pieges": ["Choisir une marketplace sans avoir vérifié que son audience correspond à ton univers créatif."]}}, {"id": "optimiser_fiches", "type": "boolean", "label": "Optimiser tes fiches produit pour le SEO interne", "detail": "Titre, mots-clés, description et photos sont déterminants pour apparaître dans les recherches internes à la plateforme.", "tutoriel": {"intro": "Le SEO interne de la plateforme détermine ta visibilité dans les recherches internes.", "steps": [{"titre": "Choisis un titre riche en mots-clés", "contenu": "Ceux que les acheteurs de la plateforme utilisent réellement."}, {"titre": "Rédige une description complète", "contenu": "Avec des mots-clés naturels intégrés au texte."}, {"titre": "Ajoute des photos de qualité", "contenu": "Déterminantes autant pour le clic que pour l''algorithme de la plateforme."}], "pieges": ["Copier une description générique sans l''adapter aux habitudes de recherche spécifiques à la plateforme."]}}, {"id": "calculer_rentabilite_commission", "type": "boolean", "label": "Calculer la rentabilité réelle après commission", "detail": "Intègre les frais de mise en ligne, de transaction et de commission dans ton prix final.", "tutoriel": {"intro": "Les frais de plateforme doivent être intégrés dans ton prix final pour rester rentable.", "steps": [{"titre": "Liste tous les frais de la plateforme", "contenu": "Mise en ligne, transaction, commission sur chaque vente."}, {"titre": "Calcule leur impact sur ta marge", "contenu": "En les intégrant à ton prix de revient."}, {"titre": "Ajuste ton prix final si nécessaire", "contenu": "Pour rester rentable malgré ces frais additionnels."}], "pieges": ["Fixer le même prix que sur ta boutique propre sans tenir compte des frais spécifiques à la marketplace."]}}]' WHERE card_id = 'C-066';
UPDATE card_guide SET checklist_json = '[{"id": "brief_initial", "type": "boolean", "label": "Formaliser l''étape de brief initial", "detail": "Un document ou échange écrit qui capture précisément ce que le client souhaite, avant tout devis chiffré.", "tutoriel": {"intro": "Un brief initial écrit clarifie les attentes avant tout engagement financier.", "steps": [{"titre": "Pose des questions précises sur le besoin", "contenu": "Usage, contraintes, inspirations du client."}, {"titre": "Formalise ces échanges par écrit", "contenu": "Email ou document, pas seulement une conversation orale."}, {"titre": "Fais valider ce brief avant de chiffrer", "contenu": "Pour t''assurer d''avoir bien compris avant de proposer un prix."}], "pieges": ["Chiffrer directement sur la base d''un échange oral rapide, sans brief écrit qui pourrait révéler des malentendus."]}}, {"id": "devis_acompte", "type": "boolean", "label": "Établir un devis détaillé et un acompte de 40%", "detail": "Le devis précise prix, délai et conditions. L''acompte sécurise l''engagement matériel et financier de ton côté.", "tutoriel": {"intro": "Un devis détaillé et un acompte sécurisent l''engagement des deux côtés.", "steps": [{"titre": "Détaille prix, délai et conditions dans le devis", "contenu": "Sans zone d''ombre qui pourrait créer un désaccord plus tard."}, {"titre": "Fixe un acompte à 40%", "contenu": "Pour sécuriser ton engagement matériel dès le départ."}, {"titre": "Précise les conditions du solde", "contenu": "Modalités et moment du paiement final."}], "pieges": ["Démarrer une commande importante sans acompte, s''exposant à un risque financier en cas d''annulation."]}}, {"id": "validation_intermediaire", "type": "boolean", "label": "Définir l''étape de validation intermédiaire et le solde final", "detail": "Pour les commandes importantes, une validation à mi-parcours rassure le client avant le solde.", "tutoriel": {"intro": "Une validation à mi-parcours rassure le client avant l''engagement financier final.", "steps": [{"titre": "Prévois un point à mi-fabrication", "contenu": "Photo ou description de l''avancement pour les commandes importantes."}, {"titre": "Fais valider cet avancement par le client", "contenu": "Avant de poursuivre vers la finalisation."}, {"titre": "Ajuste si des retours apparaissent à ce stade", "contenu": "Plus facile à corriger à mi-parcours qu''une fois la pièce terminée."}], "pieges": ["Ne montrer la pièce qu''une fois totalement terminée, sans possibilité d''ajustement en cas de désaccord."]}}]' WHERE card_id = 'C-067';
UPDATE card_guide SET checklist_json = '[{"id": "identifier_pieces_location", "type": "boolean", "label": "Identifier les pièces adaptées à la location", "detail": "Privilégie des pièces robustes, facilement transportables et suffisamment polyvalentes.", "tutoriel": {"intro": "Les bonnes pièces à louer doivent être robustes et faciles à transporter.", "steps": [{"titre": "Sélectionne des pièces solides", "contenu": "Qui résistent à une utilisation répétée sans s''abîmer."}, {"titre": "Vérifie leur facilité de transport", "contenu": "Pour faciliter la logistique de location et de récupération."}, {"titre": "Choisis des pièces suffisamment polyvalentes", "contenu": "Adaptées à plusieurs types d''usages ou d''événements."}], "pieges": ["Proposer à la location des pièces fragiles, exposées à un risque de casse trop élevé pour ce modèle."]}}, {"id": "tarif_garantie", "type": "boolean", "label": "Fixer un tarif de location et les conditions de garantie", "detail": "Le tarif doit couvrir l''usure potentielle et le risque de dommage, avec une caution ou assurance en complément.", "tutoriel": {"intro": "Le tarif et la garantie doivent couvrir l''usure et le risque de dommage.", "steps": [{"titre": "Calcule un tarif de location cohérent", "contenu": "Qui couvre l''amortissement et le risque associé."}, {"titre": "Prévois une caution ou une assurance", "contenu": "En complément du tarif, pour te protéger en cas de dommage."}, {"titre": "Formalise ces conditions clairement", "contenu": "Par écrit, avant chaque location."}], "pieges": ["Fixer un tarif trop bas qui ne couvre pas le risque réel de dommage ou d''usure des pièces."]}}, {"id": "cibler_clients", "type": "boolean", "label": "Cibler les bons types de clients pour ce service", "detail": "Photographes, organisateurs d''événements, décorateurs d''intérieur sont des cibles naturelles.", "tutoriel": {"intro": "Certains types de clients sont naturellement plus intéressés par la location.", "steps": [{"titre": "Identifie les photographes locaux", "contenu": "Souvent en recherche d''accessoires pour leurs mises en scène."}, {"titre": "Cible les organisateurs d''événements", "contenu": "Mariages, expositions, ou autres occasions ponctuelles."}, {"titre": "Contacte les décorateurs d''intérieur", "contenu": "Qui peuvent avoir besoin de pièces pour des projets temporaires."}], "pieges": ["Communiquer sur ce service uniquement à ta clientèle habituelle d''acheteurs, sans cibler les profils spécifiques à la location."]}}]' WHERE card_id = 'C-068';
UPDATE card_guide SET checklist_json = '[{"id": "choisir_plateforme_crowdfunding", "type": "boolean", "label": "Choisir la plateforme adaptée à ton projet", "detail": "Ulule ou KissKissBankBank sont les plateformes francophones les plus utilisées pour ce type de projet créatif.", "tutoriel": {"intro": "La plateforme doit correspondre à la nature de ton projet et à ton public.", "steps": [{"titre": "Compare Ulule et KissKissBankBank", "contenu": "Les deux plateformes francophones les plus utilisées pour ce type de projet."}, {"titre": "Vérifie leurs conditions et commissions", "contenu": "Pour comprendre l''impact sur le montant final récolté."}, {"titre": "Choisis celle dont l''audience est la plus proche", "contenu": "De ton propre public cible."}], "pieges": ["Choisir une plateforme sans avoir vérifié quelle communauté elle attire réellement."]}}, {"id": "paliers_recompense", "type": "boolean", "label": "Construire des paliers de récompense attractifs", "detail": "Chaque palier de contribution doit correspondre à une récompense claire et désirable, en lien direct avec le projet.", "tutoriel": {"intro": "Des paliers attractifs et cohérents encouragent des contributions plus généreuses.", "steps": [{"titre": "Construis plusieurs niveaux de contribution", "contenu": "Avec une récompense claire pour chacun."}, {"titre": "Lie chaque récompense au projet lui-même", "contenu": "Une exclusivité ou un lien direct avec ce qui est financé."}, {"titre": "Vérifie la faisabilité de chaque récompense", "contenu": "Que tu peux réellement honorer tous les paliers proposés."}], "pieges": ["Proposer des récompenses trop généreuses ou difficiles à honorer, ce qui te mettrait en difficulté après la campagne."]}}, {"id": "mobiliser_communaute", "type": "boolean", "label": "Mobiliser activement ta communauté existante avant et pendant la campagne", "detail": "Le succès se joue surtout dans les premiers jours — ton audience déjà engagée doit être sollicitée dès le lancement.", "tutoriel": {"intro": "Le succès d''une campagne se joue surtout dans les tout premiers jours.", "steps": [{"titre": "Prépare ta communauté avant le lancement", "contenu": "Annonce la campagne à venir à ta liste email et tes abonnés."}, {"titre": "Sollicite les premiers soutiens dès l''ouverture", "contenu": "Ton audience déjà engagée doit être la première informée."}, {"titre": "Relance régulièrement pendant la campagne", "contenu": "Pour maintenir la dynamique sur toute sa durée."}], "pieges": ["Compter uniquement sur la visibilité de la plateforme sans mobiliser activement sa propre communauté dès le début."]}}]' WHERE card_id = 'C-069';
UPDATE card_guide SET checklist_json = '[{"id": "identifier_propriete", "type": "boolean", "label": "Identifier ce qui constitue ta propriété intellectuelle distinctive", "detail": "Un motif récurrent, une palette de couleurs signature, ou un univers graphique reconnaissable.", "tutoriel": {"intro": "Identifier ce qui te rend distinctif est la base de toute licence à céder.", "steps": [{"titre": "Repère un motif ou une palette signature", "contenu": "Quelque chose de reconnaissable dans ton travail."}, {"titre": "Vérifie son originalité", "contenu": "Assez distinctif pour justifier une licence commerciale."}, {"titre": "Documente cet élément clairement", "contenu": "Pour pouvoir le présenter facilement à un partenaire potentiel."}], "pieges": ["Proposer en licence un élément trop générique, qui n''apporte pas de vraie valeur distinctive au partenaire."]}}, {"id": "cadre_utilisation", "type": "boolean", "label": "Définir le cadre d''utilisation concédé", "detail": "Précise exactement ce qui est autorisé : type de support, durée, exclusivité ou non, territoire géographique.", "tutoriel": {"intro": "Un cadre d''utilisation précis évite les malentendus sur les droits accordés.", "steps": [{"titre": "Précise le type de support autorisé", "contenu": "Textile, papeterie, ou tout autre support concerné."}, {"titre": "Fixe une durée de licence", "contenu": "Limitée dans le temps plutôt qu''illimitée par défaut."}, {"titre": "Indique l''exclusivité et le territoire", "contenu": "Si la licence est exclusive ou non, et sur quelle zone géographique."}], "pieges": ["Céder une licence sans limites claires de durée ou de territoire, ce qui peut limiter tes propres opportunités futures."]}}, {"id": "remuneration_adaptee", "type": "boolean", "label": "Fixer une rémunération adaptée au modèle choisi", "detail": "Forfait unique pour une utilisation ponctuelle, ou royalties récurrentes basées sur les ventes générées.", "tutoriel": {"intro": "Le modèle de rémunération doit correspondre au type d''accord conclu.", "steps": [{"titre": "Choisis entre forfait unique ou royalties", "contenu": "Selon la nature ponctuelle ou continue de l''utilisation."}, {"titre": "Calcule un montant cohérent avec la valeur cédée", "contenu": "Ni trop bas par rapport à ta propriété intellectuelle, ni dissuasif pour le partenaire."}, {"titre": "Formalise l''accord de rémunération par écrit", "contenu": "Pour éviter tout malentendu sur les modalités de paiement."}], "pieges": ["Accepter un forfait unique trop bas pour une utilisation qui génère des revenus continus au partenaire."]}}]' WHERE card_id = 'C-070';