5c7783eca0
added subprocessors link from trust portal ... |
||
---|---|---|
.. | ||
Application-security.md | ||
business-operations.rituals.yml | ||
README.md | ||
security-audits.md | ||
security-policies.md | ||
security.md | ||
vendor-questionnaires.md |
Business Operations
This handbook page details processes specific to working with and within the Business Operations (BizOps) department.
Team
Role | Contributor(s) |
---|---|
Head of Business Operations | Joanne Stableford (@jostableford) |
Community Advocate | JD Strong (@spokanemac) |
Business Operations Engineer | Nathan Holliday (@hollidayn), Isabell Reedy (@ireedy) |
Contact us
- To make a request of this department, create an issue and a team member will get back to you within one business day (If urgent, mention a team member in #g-business-operations.
- Please use issue comments and GitHub mentions to communicate follow-ups or answer questions related to your request.
- Any Fleet team member can view the kanban board for this department, including pending tasks and the status of new requests.
Responsibilities
The Business Operations department is directly responsible for finance + invoicing, people operations, legal + deal desk, and corporate information technology (IT).
Run payroll
Many of these processes are automated, but it's vital to check Gusto and Plane manually for accuracy.
- Salaried fleeties are automated in Gusto and Plane.
- Hourly fleeties and consultants are a manual process each month in Gusto and Plane.
Payroll type | What to use | DRI |
---|---|---|
Commissions and ramp | "Off-cycle" payroll | Head of Business Operations |
Sign-on bonus | "Bonus" payroll | Head of Business Operations |
Performance bonus | "Bonus" payroll | Head of Business Operations |
Accelerations (quarterly) | "Off-cycle" payroll | Head of Business Operations |
US contractor payroll | "Off-cycle" payroll | Head of Business Operations |
Reconcile monthly recurring expenses
Recurring monthly or annual expenses, such as the tools we use throughout Fleet, are tracked as recurring, non-personnel expenses in "🧮 The Numbers" (¶confidential Google Sheet), along with their payment source. Reconciliation of recurring expenses happens monthly.
Use this spreadsheet as the source of truth. Always make changes to it first before adding or removing a recurring expense. Only track significant expenses. (Other things besides amount can make a payment significant; like it being an individualized expense, for example.)
Register a domain for Fleet
Domain name registrations are handled through Namecheap. Access is managed via 1Password.
Access a background check
Fleet team members with access to Fleet's infrastructure undergo a background check provided through Vetty. Only the most recent background checks appear on the home page of Vetty's dashboard. To access a complete list of background checks run in Vetty, scroll down to the bottom of the candidates page and click "View Historical".
Secure company-issued equipment for a team member
As soon as an offer is accepted, Fleet provides laptops and YubiKey security keys for core team members to use while working at Fleet. The BizOps engineer will work with the new team member to get their equipment requested and shipped to them on time.
-
Check the Fleet IT warehouse before purchasing any equipment including laptops, monitors, and Yubikeys to ensure we efficiently utilize existing assets before spending money. If Fleet IT warehouse inventory can meet the needs of the request, file a warehouse request.
-
Apple computers shipping to the United States and Canada are ordered using the Apple eCommerce Portal, or by contacting the business team at an Apple Store or contacting the online sales team at 800-854-3680. The BizOps team can arrange for same-day pickup at a store local to the Fleetie if needed.
-
Note: Most Fleeties use 16-inch MacBook Pros. Team members are free to choose any laptop or operating system that works for them, as long as the price is within reason.
-
When ordering through the Apple eCommerce Portal, look for a banner with Apple Store for FLEET DEVICE MANAGEMENT | Welcome [Your Name]. Hovering over Welcome should display Your Profile. If Fleet's account number is displayed, purchases will be automatically made available in Apple Business Manager (ABM).
-
-
Apple computers for Fleeties in other countries should be purchased through an authorized reseller to ensure the device is enrolled in ADE. In countries that Apple does not operate or that do not allow ADE, work with the authorized reseller to find the best solution, or consider shipping to a US based Fleetie and then shipping on to the teammate.
A 3-year AppleCare+ Protection Plan (APP) should be considered default for Apple computers >$1500. Base MacBook Airs, Mac minis, etc. do not need APP unless configured beyond the $1500 price point. APP provides 24/7 support, and global repair coverage in case of accidental screen damage or liquid spill, and battery service.
Process an email from a state agency
From time to time, you may get notices via email (or in the mail) from state agencies regarding Fleet's withholding and/or unemployment tax accounts. You can resolve some of these notices on your own by verifying and/or updating the settings in your Gusto account.
If the notice is regarding an upcoming change to your deposit schedule or unemployment tax rate, make the required change in Gusto, such as:
- Update your unemployment tax rate.
- Update your federal deposit schedule.
- Update your state deposit schedule.
In Gusto, you can click How to review your notice to help you understand what kind of notice you received and what additional action you can take to help speed up the time it takes to resolve the issue.
Note: Many agencies do not send notices to Gusto directly, so it’s important that you read and take action before any listed deadlines or effective dates of requested changes, in case you have to do something. If you can't resolve the notice on your own, are unsure what the notice is in reference to, or the tax notice has a missing payment or balance owed, follow the steps in the Report and upload a tax notice in Gusto.
Inform managers about hours worked
Every Friday at 1:00pm CT, we gather hours worked for anyone who gets paid hourly by Fleet. This includes core team members and consultants, regardless of employment classification, and regardless whether inside or outside of the United States.
Here's how:
- For every hourly core team member in Gusto or Plane.com, find the DRI by looking up (who they report to).
- If any direct report is hourly in Plane.com and does not submit their hours until the end of the month, still list them, but explain.
- Consultants don't have a formal reporting structure. They submit their hours through Gusto (US consultants) or Plane.com (international consultants), which require approval from a DRI. You can find the DRI by looking at the Business Operations KPIs
Then, send the DRI a direct message in Slack with a screenshot of the HRIS portal, showing hours logged since last Saturday at midnight and tasks undertaken during those hours (if provided). Ensure the screenshot does not contain any compensation information.
More info: https://fleetdm.com/handbook/business-operations#inform-managers-about-hours-worked
Change the DRI of a consultant
- In the KPIs sheet, find the consultant's column.
- Change the DRI documented there to the new DRI who will receive information about the consultant's hours.
Run US contractor payroll
For Fleet's US contractors, running payroll is a manual process:
- Add the amount to be paid to the "Gross" line.
- Review hours ("Time tools > Time tracking")
- Adjust time frame to match current payroll period (the 27th through 26th of the month)
- Sync hours and run contractor payroll.
Grant role-specific license to a team member
Certain new team members, especially in go-to-market (GTM) roles, will need paid access to paid tools like Salesforce and LinkedIn Sales Navigator immediately on their first day with the company. Gong licenses that other departments need may request them from BizOps and we will make sure there is no license redundancy in that department. The table below can be used to determine which paid licenses they will need, based on their role:
Role | Salesforce CRM | Salesforce "Inbox" | LinkedIn (paid) | Gong (paid) | Zoom (paid) |
---|---|---|---|---|---|
🐋 AE | ✅ | ✅ | ✅ | ✅ | ✅ |
🐋 CSM | ✅ | ✅ | ❌ | ✅ | ✅ |
🐋 SC | ✅ | ✅ | ❌ | ❌ | ✅ |
⚗️ PM | ❌ | ❌ | ❌ | ✅ | ✅ |
⚗️ PD | ❌ | ❌ | ❌ | ✅ | ✅ |
🔦 CEO | ✅ | ✅ | ✅ | ✅ | ✅ |
Other roles | ❌ | ❌ | ❌ | ❌ | ✅ |
Warning: Do NOT buy LinkedIn Recruiter. AEs and SDRs should use their personal Brex card to purchase the monthly Core Sales Navigator plan. Fleet does not use a company wide Sales Navigator account. The goal of Sales Navigator is to access to profile views and data, not InMail. Fleet does not send InMail.
Add a seat to Salesforce
Here are the steps we take to grant appropriate Salesforce licenses to a new hire:
- Go to "My Account".
- View contracts -> pick current contract.
- Add the desired number of licenses.
- Sign DocuSign sent to the email.
- The order will be processed in ~30m.
- Once the basic license has been added, you can create a new user using the new team member's
@fleetdm.com
email and assign a license to it. - To also assign a user an "Inbox license", go to the "Setup" page and select "User > Permission sets". Find the inbox permission set and assign it to the new team member.
Run US commission payroll
- Update commission calculator with new revenue from any deals that are closed/won (have a subscription agreement signed by both parties) and have an effective start date within the previous month.
- Find detailed notes on this process in Notes - Run commission payroll in Gusto.
- Let the Head of Business Operations know they can run the commission payroll. Use the off-cycle payroll option in Gusto. Be sure to classify the payment as "Commission" in the "other earnings" field and not the generic "Bonus."
- Once commission payroll has been run, update the commission calculator to mark the commission as paid.
Convert a Fleetie to a consultant
If a Fleetie decides they want to move to being a consultant, either the Fleetie or their manager need to create a custom issue for the BizOps team to notify them of the change. Once notified, BizOps takes the following steps:
- Confirm the following details with the Fleetie:
- Date of change
- Term of consultancy (time period)
- Hours/capacity expected (hours per week or month)
- Confirm hourly rate
- Once details are confirmed, use the information given to create the consulting agreement for the Fleetie (either in docusign (US-based) or via Plane (international)), and send to their personal email for signature. Once signed, save in Fleetie's employee file.
- Schedule the Fleetie's final day in HRIS (Gusto or Plane).
- Update final day in "🧑🚀 Fleeties" spreadsheet.
- Create an offboarding issue for the Fleetie converting to a consultant, and confirm with their manager if there is a need to retain any tools or access while they are a consultant (default to removing all access from Fleet email, and migrating to personal email for Slack and other tools unless there is a business case to retain the Fleet email and associated tool access).
- Follow the offboarding issue for next steps, including communicating to teammates and updating equity plan.
Updating personnel details
When a Fleetie, consultant or advisor requests an update to their personnel details (name, location, phone, etc), follow these steps to ensure accurate representation across systems.
- Team member submits a custom issue to update their personnel details (or BizOps team creates if the request comes via email or is sensitive and needs a classified issue).
- If change is for a primary identification or contact method, ask for evidence of change and capture in employee's personnel file.
- BizOps makes change to HRIS (Gusto or Plane) to reflect change.
- Note: if making the change requires follow up steps, resolve those steps to action the change.
- Once change is effected in HRIS, BizOps makes changes to "🧑🚀 Fleeties" spreadsheet.
- If required, BizOps makes any relevant changes to Fleet's equity plan.
- If required, BizOps makes any relevant changes to the "🗺️ Geographical factors" spreadsheet and follows through on any action items involving tax implications (i.e. registering with a new state for employer taxes).
- If required, BizOps also makes changes to other core systems (e.g: creating a new email alias in google workspace; updating details in Carta; etc).
- The change is now actioned, notify the team member and close the issue.
Change a Fleetie's job title
When BizOps receives notification of a Fleetie's job title changing, follow these steps to ensure accurate recording of the change across our systems.
- Update the "🧑🚀 Fleeties" spreadsheet:
- Search the spreadsheet for the Fleetie in need of a job title change.
- Input the new job title in the Fleetie's row in the "Job title" cell.
- Navigate to the "Org chart" tab of the spreadsheet, and verify that the Fleetie's title appears correctly in the org chart.
- Update the relevant HRIS system.
- For updating Gusto (US-based Fleeties):
- Login to Gusto and navigate to "People > Team members".
- Find the Fleetie and select them to see their profile page.
- Under the "Compensation" heading, select edit and update the "Job title" and input the specific date the change happened. Save the changes.
- For updating Plane (non-US Fleeties):
- Login to Plane and navigate to "People > Team".
- Find the Fleetie and select them to see their profile page.
- Use the "Help" function, or email support@plane.com to notify Plane of the need to change the job title for the Fleetie. Include the Fleetie's name, current title, new title, and effective date.
- Take any relevant steps as directed by Plane in order to make the required changes to the Fleetie's profile.
- For updating Gusto (US-based Fleeties):
Change a Fleetie's manager
When BizOps receives notification of a Fleetie's manager changing, follow these steps to ensure correct recording in our systems.
- Update the Fleeties.
- Search for the Fleetie's new manager, and copy the new manager's unique ID from the far left "Unique ID" column.
- Search for the Fleetie who's manager is changing, and paste (without formatting) their new manager's unique ID in the "Reports to: (manager unique ID)" cell in the Fleetie's row.
- Verify that the "Reports to (auto: manager name and job title)" cell in the Fleetie's row reflects the new manager's details.
- Verify that in the new manager's row, the "# direct reports" cell reflect the correct number.
- Navigate to the "Org chart" tab in the spreadsheet, and verify that the Fleetie now appears in the correct place in the org chart.
Note: The Fleeties spreadsheet is the source of truth for this information, and any other systems reflecting reporting lines should be disregarded.
Prepare salary benchmarking information
- Use the relevant template text in the README section of the ¶¶ 💌 Compensation decisions document for a current Fleetie, a new role, a prospective hire, or other benchmarking use case.
- Copy the template text and paste at the end of the document.
- Fill in details as required, pulling from 🧑🚀 Fleeties spreadsheet and equity spreadsheet as required.
- Use the teammate's information to benchmark in Pave (login details in 1Password). You can pattern match from previous benchmarking entries, and include all company assumtions. Add the direct link to the Pave benchmark.
Update a team member's compensation
To change a team member's compensation, follow these steps:
- Create a copy of the "Values assessment" template and move it to the team member's personnel folder in Google Drive.
- Share the values assessment document with the manager and ask them to perform the values assessment.
- Once the values assessment is complete, prepare salary benchmarking information and set a meeting between the manager, head of department, and Head of Business Operations about level of job skill in relation to compensation benchmarking levels.
- Schedule a new calendar event for the Head of Business Operations with the founders over an existing founders' 1:1 to discuss if an adjustment needs to be made to team member's compensation to align with benchmarking. During the 1:1 call, founders review values assessment, benchmarking for role and geography, and decide if there will be an adjustment.
- Head of Business Operations will post in slack to
#help-classified
with the decision on compensation changes and effective date, if any. - Communicate via Slack DM the decision to the teammate's people manager, who will then communicate to their teammate.
- Update the respective payroll platform (Gusto or Plane) by navigating to the personnel page, selecting salary field, and updating with an effective date that makes the next payroll.
- Update the equity spreadsheet (internal doc) by copying existing OTE to the bottom of the "Notes" cell, updating the OTE column with the new compensation information, and updating the "Last compensation change" column with the effective date from payroll platform.
If the company decides on an additional equity grant as part of a compensation change, note the previous equity and new situation in detail in the "Notes" column of the equity plan. Update the "Grant started?" column to "todo" which adds it to the queue for the next time grants are processed (quarterly).
Process monthly accounting
Create a new montly accounting issue for the current month and year named "Closing out YYYY-MM" in GitHub and complete all of the tasks in the issue. (This uses the monthly accounting issue template.
- SLA: The monthly accounting issue should be completed and closed before the 7th of the month.
- The close date is tracked each month in KPIs.
- When is the issue created? We create and close the monthly accounting issue for the previous month within the first 7 days of the following month. For example, the monthly accounting issue to close out the month of January is created promptly in February and closed before the end of the day, Feb 7th. A convenient trick is to create the issue on the first Friday of the month and close it ASAP.
Check franchise tax status
No later than the second month of every quarter, we check Delaware divison of corporations to ensure that Fleet has paid the quarterly franchise tax amounts to remain in good standing with the state of Delaware.
- Go to the DCIS - eCorp website and use the details in 1Password to look up Fleet's status.
- If no outstanding amounts: the tax has been paid.
- If outstanding amounts shown: ensure payment before due date to avoid penalties, interest, and entering bad standing.
Check finances for quirks
Every quarter, we check Quickbooks Online (QBO) for discrepancies and follow up on quirks.
- Check to make sure bookkeeping quirks are all accounted for and resolved or in progress toward resolution.
- Check balance sheet and profit and loss statements (P&Ls) in QBO against the latest monthly workbooks in Google Drive.
- Reach out to Pilot with any differences or quirks, and ask them to resolve/provide clarity. This often will need to happen over a call to review sycnhronously.
- Once quirks are resolved, note the day it was resolved in the spreadsheet.
Report quarterly numbers in Chronograph
Follow these steps to perform quarterly reporting for Fleet's investors:
- Login to Chronograph and upload our profit and loss statement (P&L), balance sheet and cash flow statements for CRV (all in one book saved in Google Drive.
- Provide updated metrics for the following items using Fleet's KPI spreadsheet.
- Headcount at end of the previous quarter.
- Starting ARR for the previous quarter.
- Total new ARR for the previous quarter.
- "Upsell ARR" (new ARR from expansions only- Chronograph defines "upsell" as price increases for any reason. - Fleet does not "upsell" anything; we deliver more value and customers enroll more hosts), downgrade ARR and churn ARR (if any) for the previous quarter.
- Ending ARR for the previous quarter.
- Starting number of customers, churned customers, and the number of new customers Fleet gained during the previous quarter.
- Total amount of Fleet customers at the end of the previous quarter.
- Gross margin %
- How to calculate: (total revenue for the quarter - cost of goods sold for the quarter)/total revenue for the quarter (these metrics can be found in our books from Pilot). Chronograph will automatically conver this number to a %.
- Net dollar retention rate
- How to calculate: (starting ARR + new subscriptions and expansions - churn)/starting ARR.
- Cash burn
- How to calculate: start of quarter runway - end of quarter runway.
Grant equity
Equity grants for new hires are queued up as part of the hiring process, then grants and consents are batched and processed quarterly.
Doing an equity grant involves:
- Executing a board consent
- The recipient and CEO signing paperwork about the stock options
- Updating the number of shares for the recipient in the equity plan
- Updating Carta to reflect the grant
For the status of stock option grants, exercises, and all other common stock including advisor, founder, and team member equity ownership, see Fleet's equity plan. For information about investor ownership, see Carta.
Fleet's equity plan is the source of truth, not Carta. Neither are pro formas sent in an email attachment, even if they come from lawyers.
Anyone can make mistakes, and none of us are perfect. Even when we triple check. Small mistakes in share counts can be hard to attribute, and can cause headaches and eat up nights of our CEO's and operations team's time. If you notice what might be a discrepancy between the equity plan and any other secondary source of information, please speak up and let Fleet's CEO know ASAP. Even if you're wrong, your note will be appreciated.
Deliver annual report for venture line
Within 60 days of the end of the year, follow these steps:
- Provide Silicon Valley Bank (SVB) with our balance sheet and profit and loss statement (P&L, sometimes called a cashflow statement) for the past twelve months.
- Provide SVB with our board-approved annual operating budgets and projections (on a quarterly granularity) for the new year.
- Deliver this as early as possible in case they have questions.
Process a tool upgrade request from a team member
- A Fleetie may request an upgraded license seat for Fleet tools by submitting an issue through ZenHub.
- BizOps will upgrade or add the license seat as needed and let the requesting team member know they did it.
Downgrade an unused license seat
- On the first Wednesday of every quarter, the CEO, head of BizOps and apprentice to the CEO will meet for 30 minutes to audit license seats in Figma, Slack, GitHub, Salesforce and other tools.
- During this meeting, as many seats will be downgraded as possible. When doubt exists, downgrade.
- Afterward, post in #random letting folks know that the quarterly tool reconciliation and seat clearing is complete, and that any members who lost access to anything they still need can submit a ZenHub issue to BizOps to have their access restored.
- The goal is to build deep, integrated knowledge of tool usage across Fleet and cut costs whenever possible. It will also force conversations on redundancies and decisions that aren't helping the business that otherwise might not be looked at a second time.
Process a new vendor invoice
- After making sure that an invoice received from a new vendor is valid, add the new vendor to the recurring expenses section of "The numbers" before paying the invoice.
Process a request to cancel a vendor
- Make the cancellation notification in accordance with the contract terms between Fleet and the vendor, typically these notifications are made via email and may have a specific address that notice must be sent to. If the vendor has an autorenew contract with Fleet there will often be a window of time in which Fleet can cancel, if notification is made after this time period Fleet may be obligated to pay for the subsequent year even if we don't use the vendor during the next contract term.
- Once cancelled, update the recurring expenses section of The Numbers to reflect the cancellation by changing the projected monthly burn in column G to $0 and adding "CANCELLED" in front of the vendor's name in column C.
Update weekly KPIs
- Create the weekly update issue from the template in ZenHub every Friday and update the KPIs for BizOps by 5pm US central time.
- Check the KPI sheet at 5pm US central time to ensure all departments have updated their KPIs on time. If any departments are delinquent, notify the department head and let the Apprentice to the CEO know so they can put it on the agenda for their next one-on-one with the CEO.
Enroll a macOS host in dogfood
When a device is purchased using the Apple eCommerce store, the device is automatically enrolled in Apple Business Manager (ABM) and assigned to the correct server to ensure the device is in dogfood. You can confirm that the device has been ordered correctly by following these steps:
- Log into ABM
- Use the device serial number to find the device.
- Note: if the device cannot be found, you will need to manually enroll the device.
- View device settings and ensure the "MDM Server" selected is "Fleet Dogfood".
On occasion there will be a need to manually enroll a macOS host in dogfood. This could be due to a BYOD arrangement, or because the Fleetie getting the device is in a country when DEP (automatic enrollment) isn't supported. To manually enroll a macOS host in dogfood, follow these steps:
- If you have physical access to the macOS host, use Apple Configurator (docs are here).
- If you do not have physical access to the device, the user will need to undertake the following steps:
- Install the fleetd package for your device from shared drive folder here.
- Once fleetd is installed, click on Fleet desktop icon in top right menu bar, and select "My device".
- In Fleet desktop, follow the instructions to turn on MDM.
- Once complete, follow instructions to reset disk encryption key.
- Disk encryption key will now be stored in Fleet dogfood, which signifies that the device is now enrolled in dogfood.
Enroll a Windows or Ubuntu Linux device in dogfood
To enroll a windows or Ubuntu Linux device in dogfood, instruct the user to install fleetd for their platform from internal shared drive folder here. Once the user has installed fleetd, verify the device is correctly enrolled by confirming the device encryption key is in dogfood.
Enroll a ChromeOS device in dogfood
ChromeOS devices are automatically enrolled in dogfood after the IT admin sets up automatic enrollment. This is done in dogfood by following the steps found in the dialog popup when selecting "Add hosts > ChromeOS" from the dogfood Hosts page.
Lock a macOS host in dogfood using fleetctl CLI tool
- Download the lock command XML file from Google Drive here.
- Customize any messaging that will appear on the locked device, and modify the pin for unlocking the device by editing the file in text editor.
- Note you will need to safely store the recovery pin for the device, suggest using 1Password or other secure storage method
- Run this command with fleetctl CLI tool:
fleetctl mdm run-command --hosts=hostname --payload=Downloads/command-lock-macos-host.xml
- Note that
hostname
must be replaced with Hostname in Fleet (not the display name) - Note that the payload path may change based on where the file is stored once downloaded
- Note that if you haven't logged into fleetctl recently, will need to follow authentication steps (see Logging in with SAML (SSO) authentication ).
- Note that
- Device will be locked
- When device needs to be unlocked, enter the security pin (from XML file) in the input field of the device
- The device will then open to the regular login screen, asking for password
- If you do not have the password available, you can choose the option to enter recovery key/disk encryption key (this option might be behind
?
icon). - Get disk encryption key from Fleet dogfood (using the action menu from the individual host page).
- Enter disk encryption key on laptop. This should prompt you to create a new password.
- If you do not have the password available, you can choose the option to enter recovery key/disk encryption key (this option might be behind
- You will then be logged into the default device profile, and can complete any needed actions (wipe, recover data).
Book an event
The Business Operations department is responsible for booking events that Fleet has chosen to attend and/or sponsor. To book an event, complete the steps in each event issue. Contact the Head of Demand Generation as needed with any questions or blockers to booking an event.
Note: The Demand department settles all event strategy prior to booking an event.
Rituals
The following table lists this department's rituals, frequency, and Directly Responsible Individual (DRI).
Stubs
The following stubs are included only to make links backward compatible.
Vetty
Please see hanbook/business-operations#access-a-background-check.
Role-specific licenses
Please see hanbook/business-operations#grant-role-specific-license-to-a-team member.
Recurring expenses
Tools we use
Please see hanbook/business-operations#grant-role-specific-license-to-a-team member.
Namecheap
Please see handbook/register-a-domain-for-fleet.