An assignment connects a member to an asset: a private office, dedicated desk, mailbox, parking spot, or other recurring space. Once an assignment is active, the space is occupied by that member and Deskie generates the recurring invoices for it on a schedule. This article covers how assignments are created, how the recurring rate works, how the billing cycle is anchored, and how to schedule a termination for a future date.
What an assignment is
An assignment is a record linking one member to one asset, with its own rate and billing cadence. It carries the information Deskie needs to bill the space over time:
- The member who occupies the space.
- The asset being assigned.
- A recurring rate, copied from the asset at the time of assignment so it can be adjusted per member without changing the asset's base rate.
- A billing interval (daily, weekly, monthly, quarterly, or yearly) and a cycle anchor (calendar or rolling), both inherited from the asset.
- A start date and, optionally, a scheduled end date.
- Who pays: the member directly, or a team the member belongs to.
Assignments are never hard-deleted. When an assignment ends, Deskie marks it inactive and records an end date rather than removing the row, so your history stays intact.
Assigning a member to an asset
When you create an assignment, Deskie runs a series of checks and setup steps:
- Member and asset validation. Both the member and the asset must belong to your current workspace, and the asset must be active.
- Occupancy check. For most asset types (private office, dedicated desk, mailbox, parking, other), an asset can only have one active assignment at a time. If the asset is already assigned to another member, the new assignment is blocked. Flex assets are the exception: they can hold multiple active assignments at once.
- Rate and cadence are copied from the asset. The new assignment takes the asset's rate, billing interval, and cycle anchor. This snapshot means later edits to the asset's own settings do not retroactively change existing assignments.
- Next billing date is scheduled. Deskie computes the first upcoming billing date based on the asset's interval and anchor (described below) so the recurring billing process can pick the assignment up at the right time.
- Billing responsibility is resolved. Deskie decides whether the recurring invoices go to the member or to a team. See Teams for how team billing works.
The optional first invoice
When creating the assignment you can choose to issue an invoice immediately. If you do, Deskie generates a first invoice for the space. For calendar-anchored assignments this first charge can be prorated for the remaining portion of the current cycle; you can also supply a custom amount for that first invoice. If you do not choose to invoice immediately, no invoice is created at creation time and the member's first charge will come from the regular recurring billing process on the next billing date.
Applying a coupon
You can attach a coupon code when creating the assignment. The coupon is validated against the asset's rate before the assignment is saved; an invalid code blocks creation. When a first invoice is issued, the discount is recomputed against the actual amount being charged that day (which may be a prorated or custom amount) so the discount lines up with what is invoiced. Percentage coupons take a share of the base amount, and fixed-amount coupons are capped so they never exceed the amount being charged. Repeating coupons continue to apply on future recurring invoices for as long as they have remaining duration.
The recurring rate
Each assignment stores its own rate, set from the asset's rate when the assignment is created. Because the rate lives on the assignment, you can give one member a different price for the same asset without touching the asset's base rate or any other member's assignment.
You can update the recurring rate on an active assignment at any time. When you do:
- The new rate is validated: it must be a valid, non-negative number, and it is rounded to cents for storage.
- Only the assignment's rate changes. The asset's base rate is left untouched, so this is a per-member override.
- The new rate applies to the next billing cycle and every cycle after it. Invoices that have already been issued are not changed; if you need to adjust an invoice that already went out, do that manually.
Billing intervals and the cycle anchor
Every assignment bills on one of five intervals: daily, weekly, monthly, quarterly, or yearly. Each assignment also has a cycle anchor that determines what its renewal dates line up with. Both values are inherited from the asset when the assignment is created.
Calendar anchor
A calendar-anchored assignment renews on fixed calendar boundaries:
- Monthly renews on your workspace's billing anchor day. By default this is the 1st of the month. The anchor day can be set anywhere from the 1st to the 28th in workspace settings, which keeps it valid in every month including February.
- Quarterly renews on the calendar quarter starts: January 1, April 1, July 1, and October 1.
- Yearly renews on January 1.
- Daily and weekly advance from the assignment's own start date rather than the calendar.
With a calendar anchor, a member who joins partway through a cycle can be prorated for the remainder of that cycle on their first invoice, so everyone lines up on the same renewal dates afterward.
Rolling anchor
A rolling-anchored assignment renews on the assignment's own anniversary instead of a calendar boundary. The first cycle starts on the assignment's start date and the renewal lands exactly one interval later. Rolling plans do not prorate.
Because rolling plans do not prorate, there is an important detail when you skip the immediate first invoice: with a rolling anchor and no invoice today, the member is not charged anything until the anniversary date, effectively giving them the first cycle free. The assignment screen warns you about this so it is never a surprise. If you want to charge the full rate immediately instead, turn on the option to invoice today.
How recurring invoices are generated
Deskie runs a daily billing process that creates recurring invoices automatically. Each assignment carries a next billing date, and when that date arrives the assignment is billed for one full cycle at its current rate, with no proration on these recurring charges. After an invoice is generated, the next billing date advances by one interval so the assignment is ready for its next cycle.
- Daily, weekly, quarterly, and yearly assignments, and monthly rolling assignments, are billed by the daily process as each next billing date arrives.
- Monthly calendar assignments are billed through the monthly invoice run on the workspace's anchor day, where they can be bundled together for the member.
- The invoice's due date follows your workspace's invoice-due-days policy, and the team-versus-member billing decision from the assignment is carried forward onto each invoice.
- Any active repeating coupon on the assignment is applied to the recurring charge until its duration runs out.
See Billing cycles and auto-charge and Invoices for more on how these charges are collected.
The billing preview
When you set up an assignment, Deskie shows a plain-language billing preview so you can confirm exactly what will happen before saving. The preview only appears once there is enough information (a rate and an interval) to compute the charges, and it shows:
- The charge today, if you have chosen to invoice immediately, including any proration and any coupon discount applied to that first amount. If you are not invoicing today, it says so.
- The recurring charge and the next renewal date, with a short note describing the cadence (for example, recurs every month, or on the signup anniversary for rolling plans).
- A warning for the rolling free first cycle described above, when a rolling plan is set up with no invoice today.
The amounts shown in the preview are calculated the same way the server actually invoices, so what you see is what the member is charged.
Ending an assignment
There are two ways to end an assignment: immediately, or on a future date.
Removing an assignment immediately
Removing an assignment marks it inactive right away and records today as its end date. The space is freed for reassignment. If the assignment had a future termination scheduled, removing it now clears that schedule, since an immediate removal supersedes the future date.
Scheduling a termination for a future date
Instead of ending an assignment now, you can schedule it to terminate on a future date. The assignment stays active and the space stays occupied until that date passes. Deskie normalizes the chosen date to the end of that day, so the member keeps the space for the full termination date and it frees up the following day. The date must be in the future; for an immediate end, use Remove instead.
An automatic background process checks for active assignments whose scheduled termination date has passed and flips them to inactive, with the same effect as an immediate removal. It runs ahead of the daily billing process, so a space terminating on a given day is freed before billing runs and is not charged for a cycle it will not use.
You can cancel a pending scheduled termination at any time before it takes effect. Canceling clears the scheduled end date and the assignment continues normally with no end date.
Previewing termination charges
Before you commit to a termination date, Deskie can preview the charges that will still occur between now and that date, so you can show the member exactly what remains to be billed. The preview mirrors the real billing behavior: it lists each full-rate charge per cycle, with no proration, up to and including the scheduled date. For monthly calendar assignments it also tells you whether the current period has already been charged, since a charge that already ran will not be refunded.
The waitlist option
When scheduling a termination, you can optionally turn on the asset's waitlist. A space with a future scheduled termination can surface on your public website as a "Coming Soon" listing, and when the waitlist is enabled that listing shows a join-the-waitlist call to action, letting interested members register their interest before the current member moves out.
Who pays for an assignment
Each assignment records whether its recurring invoices are billed to the member directly or to a team the member belongs to. By default this follows the member's team billing setting, but when creating an assignment an admin can override it: force member billing, or bill a specific team. Whatever is decided is carried forward onto every recurring invoice the assignment generates, so the charge is always addressed to the right payer. See Teams for details on team billing.
