diff --git a/config/form.ts b/config/form.ts index bd6cd30..73e8ee4 100644 --- a/config/form.ts +++ b/config/form.ts @@ -124,7 +124,7 @@ const stage0: StageSectionConfig = { label: "Members (current)", type: "number", civiField: `${G0}.Members__current_`, - help: "How many paid members does the co-op currently have? Include partially paid (e.g. installment plans).", + help: "How many paid members does the co-op currently have? This can include partially paid, e.g. on installment plans.", }, { name: "Total_members_at_opening", @@ -132,6 +132,7 @@ const stage0: StageSectionConfig = { type: "number", civiField: `${G0}.Total_members_at_opening`, visibleWhen: visibleAtOrAfter(S.Stabilize), + help: "How many members will be required at opening for this store?", }, // { // name: "Volunteers_Helping_In_Store", @@ -156,6 +157,7 @@ const stage0: StageSectionConfig = { civiField: `${G0}.Total_square_ft`, step: 1, visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), + help: "Size, in sq ft, of the total storefront planned, including retail and non-retail areas", }, { name: "Retail_sq_ft", @@ -164,6 +166,7 @@ const stage0: StageSectionConfig = { civiField: `${G0}.Retail_sq_ft`, step: 1, visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), + help: "Size, in sq ft, of the retail areas of the store being planned", }, // { // name: "Latest_Sources_and_Uses_doc", @@ -193,6 +196,7 @@ const stage0: StageSectionConfig = { civiField: `${G0}.Actual_FTE`, step: 0.1, visibleWhen: visibleAtOrAfter(S.Stabilize), + help: "Actual number of employees (or full-time equivalents) working in the store after open. i.e. if you have 10 employees working full time and 20 employees working half time, that would be 20 full-time equivalents.", }, { name: "Total_cost_of_project", @@ -200,6 +204,7 @@ const stage0: StageSectionConfig = { type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Total_cost_of_project`, + help: "Current estimate of the total cost of the project, up to store opening", }, // { // name: "Member_equity_total", @@ -212,7 +217,8 @@ const stage0: StageSectionConfig = { label: "Member equity raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), - civiField: `${G0}.Member_equity_raised` + civiField: `${G0}.Member_equity_raised`, + help: "Member equity raised, as of the time of check-in", }, // { // name: "Member_loans_total", @@ -225,7 +231,8 @@ const stage0: StageSectionConfig = { label: "Member loans raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), - civiField: `${G0}.Member_loans_raised` + civiField: `${G0}.Member_loans_raised`, + help: "Total amount (USD) raised from member loans, as of the time of check-in", }, // { // name: "Member_preferred_shares_total", @@ -239,13 +246,14 @@ const stage0: StageSectionConfig = { type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Member_preferred_shares_raised`, + help: "Total amount (USD) raised from preferred shares sold to members in the latest Sources and Uses doc", }, // { name: "Bank_debt_total", label: "Bank debt total needed", type: "currency", civiField: `${G0}.Bank_debt_total` }, - { name: "Bank_debt_raised", label: "Bank debt raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Bank_debt_raised` }, + { name: "Bank_debt_raised", label: "Bank debt raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Bank_debt_raised`, help: "Total amount (USD) raised from bank debt (or other first position lender) in the latest Sources and Uses doc" }, // { name: "Grant_Donations_Needed", label: "Grants / Donations Needed", type: "currency", civiField: `${G0}.Grant_Donations_Needed` }, - { name: "Grants_Donations_Raised", label: "Grants / Donations Raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Grants_Donations_Raised` }, + { name: "Grants_Donations_Raised", label: "Grants / Donations Raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Grants_Donations_Raised`, help: "Total amount (USD) raised from Grants and Donations in the latest Sources and Uses doc" }, // { name: "Other_sources_total", label: "Other sources total needed", type: "currency", civiField: `${G0}.Other_sources_total` }, - { name: "Other_sources_raised", label: "Other sources raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Other_sources_raised` }, + { name: "Other_sources_raised", label: "Other sources raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Other_sources_raised`, help: "Total amount (USD) successfully raised from other sources in the latest Sources and Uses doc (e.g. community loans or grants, free fill, vendor credit, landlord contribution, etc). Does not include member contributions (loans or equity) or bank debt." }, // { name: "Date_Closed_Folded", label: "Date Closed / Folded", type: "date", civiField: `${G0}.Date_Closed_Folded` }, { name: "FTEs", @@ -254,7 +262,7 @@ const stage0: StageSectionConfig = { visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), civiField: `${G0}.FTEs`, step: 0.1, - help: "Number of full-time equivalent (FTE) employees planned to work at the store.", + help: "Number of full-time equivalent (FTE) employees planned to work at the store", }, ] as FieldConfig[], }; @@ -279,6 +287,7 @@ const stage1: StageSectionConfig = { label: "Preliminary Market Assessment — Upload", type: "file", civiField: `${G1}.Preliminary_Market_Assessment_Upload`, + help: "Please upload your Preliminary Market Assessment here.", }, { name: "Preliminary_Sources_Uses", @@ -292,6 +301,7 @@ const stage1: StageSectionConfig = { label: "Preliminary Sources and Uses — Upload", type: "file", civiField: `${G1}.Preliminary_Sources_Uses_Upload`, + help: "Please upload your Preliminary Sources & Uses.", }, { name: "Vision", @@ -300,7 +310,7 @@ const stage1: StageSectionConfig = { civiField: `${G1}.Vision`, help: "What date was your vision document completed?", }, - { name: "Vision_Upload", label: "Vision — Upload", type: "file", civiField: `${G1}.Vision_Upload` }, + { name: "Vision_Upload", label: "Vision — Upload", type: "file", civiField: `${G1}.Vision_Upload`, help: "Please upload your vision document." }, { name: "Business_Concept", label: "Business Concept", @@ -313,6 +323,7 @@ const stage1: StageSectionConfig = { label: "Business Concept — Upload", type: "file", civiField: `${G1}.Business_Concept_Upload`, + help: "Please upload your Business Concept", }, ] as FieldConfig[], // Visual clustering — each pair (date + upload) reads as one item. @@ -343,10 +354,10 @@ const stage2: StageSectionConfig = { label: "Stage 2 — Grow & Plan", visibleWhen: visibleAtOrAfter(S.Feasibility, S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), fields: [ - { name: "Market_Study_Date", label: "Market Study Date", type: "date", civiField: `${G2}.Market_Study_Date` }, - { name: "Market_Study_Upload", label: "Market Study — Upload", type: "file", civiField: `${G2}.Market_Study_Upload` }, - { name: "Pro_Forma_date_completed", label: "Pro Forma — date completed", type: "date", civiField: `${G2}.Pro_Forma_date_completed` }, - { name: "Pro_Forma_Upload", label: "Pro Forma — Upload", type: "file", civiField: `${G2}.Pro_Forma_Upload` }, + { name: "Market_Study_Date", label: "Market Study Date", type: "date", civiField: `${G2}.Market_Study_Date`, help: "What date was your market study completed?" }, + { name: "Market_Study_Upload", label: "Market Study — Upload", type: "file", civiField: `${G2}.Market_Study_Upload`, help: "Please upload your most recent Market Study" }, + { name: "Pro_Forma_date_completed", label: "Pro Forma — date completed", type: "date", civiField: `${G2}.Pro_Forma_date_completed`, help: "What date was your most recent Pro Forma completed?" }, + { name: "Pro_Forma_Upload", label: "Pro Forma — Upload", type: "file", civiField: `${G2}.Pro_Forma_Upload`, help: "Please upload your most recent Pro Forma." }, // { // name: "Pro_Forma_Viability", // label: "Pro Forma Viability", @@ -362,7 +373,7 @@ const stage2: StageSectionConfig = { civiField: `${G2}.Business_Plan`, help: "What date was your most recent business plan completed?", }, - { name: "Business_Plan_Upload", label: "Business Plan — Upload", type: "file", civiField: `${G2}.Business_Plan_Upload` }, + { name: "Business_Plan_Upload", label: "Business Plan — Upload", type: "file", civiField: `${G2}.Business_Plan_Upload`, help: "Please upload the most recent copy of your business plan." }, { name: "Board_Self_Assessment", label: "Board Self Assessment", @@ -375,6 +386,7 @@ const stage2: StageSectionConfig = { label: "Board Self Assessment — Upload", type: "file", civiField: `${G2}.Board_Self_Assessment_Upload`, + help: "Please upload the results of your most recent Board Self Assessment.", }, { name: "Governance_System_Used", @@ -417,68 +429,76 @@ const stage3: StageSectionConfig = { label: "Site: Letter of Intent Date", type: "date", civiField: `${G3}.Site_Letter_of_Intent_Date`, + help: "What date was your Letter of Intent for your site signed?", }, { name: "Site_Letter_of_Intent_Upload", label: "Site: Letter of Intent — Upload", type: "file", civiField: `${G3}.Site_Letter_of_Intent_Upload`, + help: "Please upload the Letter of Intent for your Site.", }, - { - name: "Own_the_building_property", - label: "Own the building / property", - type: "select", - civiField: `${G3}.Own_the_building_property`, - optionGroupId: 139, - help: "Will the co-op own the building or property?", - }, + // { + // name: "Own_the_building_property", + // label: "Own the building / property", + // type: "select", + // civiField: `${G3}.Own_the_building_property`, + // optionGroupId: 139, + // help: "Will the co-op own the building or property, if so select YES. Select NO if the co-op will be leasing or have some other type of arrangement", + // }, { name: "Capital_Stack", label: "Capital Stack", type: "multiselect", civiField: `${G3}.Capital_Stack`, optionGroupId: 134, - help: "Select all the types of funding that are part of your Sources.", - }, - { - name: "Capital_Campaign_Owner_Participation_", - label: "Capital Campaign: Owner Participation %", - type: "percent", - civiField: `${G3}.Capital_Campaign_Owner_Participation_`, - }, - { - name: "Capital_Campaign_Average_Owner_Investment", - label: "Capital Campaign: Average Owner Investment", - type: "currency", - civiField: `${G3}.Capital_Campaign_Average_Owner_Investment`, + help: "Please select all the types of funding that are part of your Sources.", }, { name: "Project_Manager_Date_of_Hire", label: "Project Manager — Date of Hire", type: "date", civiField: `${G3}.Project_Manager_Date_of_Hire`, + help: "What date did your hire a project manager for co-op development? (This is NOT the construction-specific Project Manager.)", }, { name: "Store_Design_Plan_Completion", label: "Store Design — Plan Completion", type: "date", civiField: `${G3}.Store_Design_Plan_Completion`, + help: "What date was the design for your co-op completed?", }, - { name: "Store_Designer", label: "Store Designer", type: "text", civiField: `${G3}.Store_Designer` }, - { name: "NCG_Member", label: "NCG Member", type: "select", civiField: `${G3}.NCG_Member`, optionGroupId: 136 }, - { name: "NCG_Corridor", label: "NCG Corridor", type: "select", civiField: `${G3}.NCG_Corridor`, optionGroupId: 143 }, - { name: "INFRA_Member", label: "INFRA Member", type: "select", civiField: `${G3}.INFRA_Member`, optionGroupId: 137 }, + { name: "Store_Designer", label: "Store Designer", type: "text", civiField: `${G3}.Store_Designer`, help: "Which professional or team created your store design?" }, + // { name: "NCG_Member", label: "NCG Member", type: "select", civiField: `${G3}.NCG_Member`, optionGroupId: 136, help: "Are you an NCG member, or considering NCG Membership?" }, + // { name: "NCG_Corridor", label: "NCG Corridor", type: "select", civiField: `${G3}.NCG_Corridor`, optionGroupId: 143, help: "Which NCG corridor is this co-op in?" }, + // { name: "INFRA_Member", label: "INFRA Member", type: "select", civiField: `${G3}.INFRA_Member`, optionGroupId: 137, help: "Are you an INFRA member, or considering INFRA membership?" }, + // { + // name: "Other_Distributors", + // label: "Other Distributors", + // type: "select", + // civiField: `${G3}.Other_Distributors`, + // optionGroupId: 138, + // help: "Are you using or considering one of these other distributors as your primary distributor?", + // }, { - name: "Other_Distributors", - label: "Other Distributors", - type: "select", - civiField: `${G3}.Other_Distributors`, - optionGroupId: 138, - help: "Are you using or considering one of these other distributors as your primary?", + name: "Capital_Campaign_Owner_Participation_", + label: "Capital Campaign: Owner Participation %", + type: "percent", + civiField: `${G3}.Capital_Campaign_Owner_Participation_`, + help: "What percentage of your owners have contributed to your capital campaign?", + }, + { + name: "Capital_Campaign_Average_Owner_Investment", + label: "Capital Campaign: Average Owner Investment", + type: "currency", + civiField: `${G3}.Capital_Campaign_Average_Owner_Investment`, + help: "What is the average investment size from your owners? (i.e. total raised divided by number of owners participating. If your co-op raised $100,000 from 100 owners, the average owner investment would be $1,000. $100,000 / 100 = $1,000.)", }, ] as FieldConfig[], fieldGroups: [ - { id: "site", fields: ["Site_Letter_of_Intent_Date", "Site_Letter_of_Intent_Upload"] } + { id: "site", fields: ["Site_Letter_of_Intent_Date", "Site_Letter_of_Intent_Upload"] }, + { id: "store_design", fields: ["Store_Designer", "Store_Design_Plan_Completion"] }, + { id: "cap_camp", fields: ["Capital_Campaign_Owner_Participation_", "Capital_Campaign_Average_Owner_Investment"]}, ], }; @@ -494,6 +514,7 @@ const stage4: StageSectionConfig = { label: "General Manager — Date of Hire", type: "date", civiField: `${G4}.General_Manager_Date_of_Hire`, + help: "What date was your GM hired?", }, { name: "General_Manager_Background", @@ -503,9 +524,9 @@ const stage4: StageSectionConfig = { optionGroupId: 135, help: "What professional background does your General Manager have?", }, - { name: "General_Manager_Name", label: "General Manager — Name", type: "text", civiField: `${G4}.General_Manager_Name` }, - { name: "General_Manager_Phone", label: "General Manager Phone", type: "phone", civiField: `${G4}.General_Manager_Phone` }, - { name: "GM_Email", label: "General Manager Email", type: "email", civiField: `${G4}.GM_Email` }, + { name: "General_Manager_Name", label: "General Manager — Name", type: "text", civiField: `${G4}.General_Manager_Name`, help: "Please enter the name of your current General Manager." }, + { name: "General_Manager_Phone", label: "General Manager Phone", type: "phone", civiField: `${G4}.General_Manager_Phone`, help: "What is your GM's phone number?" }, + { name: "GM_Email", label: "General Manager Email", type: "email", civiField: `${G4}.GM_Email`, help: "What is the best email for your GM?" }, { name: "GM_Support_Training", label: "GM Support and Training", @@ -520,24 +541,27 @@ const stage4: StageSectionConfig = { civiField: `${G4}.GM_Support_Team`, help: "Who is providing support and training to your GM?", }, - { name: "Projected_Opening_Date", label: "Projected Opening Date", type: "date", civiField: `${G4}.Projected_Opening_Date` }, + { name: "Projected_Opening_Date", label: "Projected Opening Date", type: "date", civiField: `${G4}.Projected_Opening_Date`, help: "Date the co-op is projected to open." }, { name: "Construction_Completion_Date", label: "Construction Completion Date", type: "date", civiField: `${G4}.Construction_Completion_Date`, + help: "What date was construction completed on the co-op?", }, { name: "Missions_Transition_Plan_Date", label: "Mission Transition Plan — Date", type: "date", civiField: `${G4}.Missions_Transition_Plan_Date`, + help: "What date was your Mission Transition Plan adopted?", }, { name: "Mission_Transition_Plan_Upload", label: "Mission Transition Plan — Upload", type: "file", civiField: `${G4}.Mission_Transition_Plan_Upload`, + help: "Please upload your Mission Transition Plan.", }, ] as FieldConfig[], fieldGroups: [ @@ -637,8 +661,8 @@ const stage5: StageSectionConfig = { label: "Stage 5 — Fulfill & Stabilize", visibleWhen: visibleAtOrAfter(S.Stabilize), fields: [ - { name: "Date_Opened", label: "Date Opened", type: "date", civiField: `${G5}.Date_Opened` }, - { name: "Y1_Actual_Sales", label: "Y1 Actual Sales", type: "currency", civiField: `${G5}.Y1_Actual_Sales` } + { name: "Date_Opened", label: "Date Opened", type: "date", civiField: `${G5}.Date_Opened`, help: "What day did the co-op officially open for business?" }, + { name: "Y1_Actual_Sales", label: "Y1 Actual Sales", type: "currency", civiField: `${G5}.Y1_Actual_Sales`, help: "Total Sales from Year 1" } ] as FieldConfig[], // STAGE_5_FIELDS, // matrixGroups: [