What this site is for, who uses it, and how to get help without leaving the page you are on.
What the bid portal does
The site as a whole
The portal publishes Americon bid opportunities and their deadlines, and hands out plan documents to the contractors invited to price them.
The Americon Bid Portal does three jobs, and everything on the site is in service of one of them.
It publishes bid opportunities. Every project carries a bid due date, a location, the trades wanted, and the drawings. Public projects appear on the bid calendar for anyone to find. Private projects appear nowhere and are reached only through an invite link.
It distributes plan documents. Drawings and bid documents are attached to the project and served through an access-checked endpoint, so a private project's plans cannot be downloaded by someone who was never sent the link.
It keeps track of who is bidding. Contractors are asked to identify themselves when they take the plans. That list is what makes it possible to tell everyone when an addendum is issued or a bid date moves.
Two audiences use it, and they use it very differently. Americon staff sign in and manage projects. Contractors never sign in at all — they arrive from an email link, read the project, take the plans, and leave.
Project Managers and Project Coordinators hold identical permissions. Administrators hold those plus account management and the WordPress admin.
Role
Signs in?
What they can do
Administrator
Yes
Everything below, plus creating and suspending accounts, and access to the WordPress admin and the Americon tools pages.
Project Manager
Yes
Create, edit and delete projects; see private projects; upload and remove plan files; send invitations and plan-holder notifications; answer what contractors send back; record, compare and award bids; work the bounce log and the audit trail; export project lists.
Project Coordinator
Yes
Exactly the same as Project Manager.
Contractor / bidder
No
Views public projects and the bid calendar. Views a private project only when holding its invite link. Downloads plan files. Subscribes to the calendar feed. Answers "are you bidding?", asks questions and sends the bid itself by ordinary email, and can state their own figure on the project page.
NoteManager and Coordinator are deliberately identical. The distinction is who is responsible for a project, not what the software will let them press — and deleting a project moves it to the Trash rather than wiping it, so granting that broadly is safe.
Staff never need the WordPress admin screens. Anyone who is not an administrator is redirected out of /wp-admin and back to the calendar dashboard, and the admin bar is hidden for them.
Press any "?" on the site for a short explanation of the control beside it, with a link into the full manual.
Small "?" buttons sit beside the controls that are worth explaining. Press one — with the mouse, with a finger, or by tabbing to it and pressing Enter — and a short explanation appears. Press Escape, or click anywhere else, to dismiss it.
Each one carries a Read more link into the matching entry in this manual, so the popup can stay short.
NoteThe help text and this manual are generated from the same source, so they cannot disagree with each other. When a feature changes, both change.
Section 2
For project managers and coordinators
What the portal takes off your desk, what it can prove afterwards, and the short path through your first project. Everything here is covered in full further down — this is the map.
What the portal does for you
The site as a wholeAmericon staff
It publishes the job, sends the invitations, hands out the drawings, takes the questions and bids back, lets you compare and award them, and keeps the record of all of it.
Bidding used to live in an Outlook folder, a spreadsheet of addresses, and somebody's memory. The portal takes the jobs that were spread across those and does them in one place, against one project.
The job
What the portal does
Where
Publish the opportunity
A project carries its bid date, location, trades and drawings. Public ones appear on the bid calendar for any contractor to find; private ones appear nowhere and open only from an invite link.
Creating a project
Ask people to bid
Pick contacts and groups from the shared directory, see who is excluded and why before anything sends, then send. Each firm gets its own link.
Invitations
Hand out the drawings
Plan files are served through an access check, not from a public folder. Contractors identify themselves as they take them, which is what makes it possible to tell them about an addendum later.
Plan holders
Take the answers back
A contractor replies to the invitation from their own email. The reply files itself on the job, you are emailed that it arrived, and the bid itself — sent with its own button — lands sealed with the other bids, documents and all.
Questions, bids and what contractors send back
Compare and award
Every bid on the job in one table, grouped by trade, with what does not add up marked beside each number; a levelling sheet for bids that priced different things; and one press to award and tell every bidder.
Comparing bids side by side
Keep the record
Who was asked, when, whether it was delivered, whether it was opened, whether they said they are bidding, what they sent and what they were told — exportable as a spreadsheet.
Who has been invited
Manager and Coordinator hold identical permissions. The distinction is who is responsible for the job, not what the software will let you press.
TipThe fastest way to understand the whole thing is to make a private draft and send yourself a test invitation. A draft is invisible to everyone outside Americon until you publish it, so there is nothing to break.
Create Project, then the project editorAmericon staff
Create a draft, fill in the editor, publish, invite, answer what comes back, then compare the bids and award. Nothing leaves the building until you publish.
The whole path, in the order you will actually walk it. Each step is a topic of its own further down.
Create the draft. Name, city and state, bid due date, and the two people responsible. Everything else can wait. Choose Public or Private here — see Visibility, because publishing a job that should have been private cannot be undone once the calendar has served it.
Fill in the editor. The rail down the left side is the whole project; each entry shows its own summary, so you can see what is still empty without opening it. Add the scope, the trades, the drawings.
Upload the drawings, and give each one a revision label that matches its title block. This is the single most consequential field on the screen — see Revision labels.
Publish. Until you do, the project is off the calendar, sends no reminders, and its plan files will not download — an invitation sent from a draft arrives with dead links.
Invite. Open Contractor invite email, press Choose who to invite, pick contacts, groups or a whole trade, and read the review step before you send. Send a test to yourself first.
Watch the plan holders. Contractors who take the drawings identify themselves, and appear in the project. That list is who you notify when a drawing is revised or the date moves.
Answer what comes back. Replies land in the editor's Mail section and you are emailed within minutes. Say what each message is — Bid or Question — and answer questions with Reply, which records the answer for you. A question answered after the job closes was not answered.
Compare, then award. Bids sent with the Send your bid button collect sealed until the bid date. Afterwards, open Compare these bids side by side from the Offers panel, type or confirm each figure, level the bids that priced different things, and press Award on the winning row. One more press tells the winner and thanks everyone else.
ImportantSteps 4 and 5 are in that order for a reason. Invitations sent from an unpublished draft carry links that lead nowhere, and the contractor who follows one has no way of knowing the job exists.
NoteStep 7 does not wait for the others to finish. Questions start arriving the afternoon the invitations go out, and the ones worth answering come in before a firm has decided whether to bid at all.
The contractor-facing side of the siteAmericon staff
Lost links, calendar subscriptions and "we are not bidding this one" are all self-service. None of them need anybody at Americon to be at their desk.
Every one of these used to be a phone call, and every one of them arrived at the worst possible moment — out of hours, or on the afternoon of the deadline.
Get their invitation back. A contractor who lost the email asks for it again from the site, and it is sent to the address already on the invitation. Nothing is revealed to somebody typing in a stranger's address.
Say they are not bidding this one — without unsubscribing from everything. That is the column a bid board needs and a blanket unsubscribe destroys.
Subscribe to the bid calendar, so public deadlines appear in their own calendar automatically, with no account.
Add one bid date to their calendar from the project page.
Take the drawings, identifying themselves as they go.
NoteA contractor never signs in. There is no account, no password, and nothing for you to create — they arrive from a link in an email and leave when they are done.
Project editor, Who has been invitedAmericon staff
Every invitation sent from the portal is recorded with its delivery outcome. That record is what answers a good-faith solicitation question months later.
On a public job, or a job with a participation goal, somebody may eventually ask who was invited to bid. That question arrives long after the memory of it has gone, and an Outlook sent-items folder is not an answer — it does not say whether the message was delivered, and it does not survive the person leaving.
The portal records, per firm: that they were invited, when, what the mail server said about delivery, whether the invitation was opened, whether they took the drawings, and whether they told us they are bidding.
Download the record saves all of it as a spreadsheet — the version to hand to an owner or an auditor.
ImportantThis only holds for invitations sent from the portal. An invitation composed in Outlook records nothing, honours no unsubscribe, and leaves the project unable to say the firm was ever asked. That is why the panel no longer offers a way to copy one out.
Dashboard, under the figures — **Audit trail**Americon staff
An append-only record of who changed what and when — deadlines, visibility, plan files and access links. Months later, it is what settles the argument.
Bid deadlines, visibility, plan attachments and access codes are contractual facts, and WordPress keeps no history of them on its own. The audit trail does.
It answers "the due date was different when I looked" and "when did that invite link stop working", long after everybody has stopped remembering. Each entry records what was done, on which job, by whom, and when — with the person's name kept alongside their account, so an entry still names somebody after they have left.
Search by job or by person, narrow it to one kind of change with the Action dropdown, or set From and To dates. The newest entries are first.
The same record is also on every project page, for staff, under Activity at the foot — the last few changes to that one job, folded closed until you open it. That is the quicker route to "who moved this due date" when you are already looking at the project.
NoteNothing in the portal edits or removes an entry, and nothing ages out. An audit trail that can be edited is not evidence, and one that quietly deletes itself after a year is no use to a question asked in the second year.
The screen shows changes to jobs — deadlines, visibility, plan files, invitation links, bid correspondence, figures, awards, and every opening of a sealed bid. Account changes and sign-ins are recorded too, and an administrator can see those under Tools → Americon Audit Log; they are site administration rather than anything about a bid, so they are not listed here.
The end-of-day summary, deadline reminders, bid-closed notices and the nightly health check all run on their own. You are told when something needs you.
An end-of-day summary is emailed to you at five, listing everything still open on your jobs — every line a link to the screen where it gets worked. It repeats each day until the item is dealt with.
A contractor writing to a job emails you within minutes, with a link straight into the reply box.
Deadline reminders go to plan holders as a bid date approaches.
Bidding closes on its own at the due date. Closing early, or reopening, is a deliberate act you can take in the editor.
Addresses that stop working are set aside automatically when mail bounces, so the same dead address is not written to forever.
The site checks itself every night and mails administrators when something breaks — rather than waiting for a contractor to ring up and report it.
NoteReminders and notices only go out for published projects. A draft sends nothing, which is usually what you want and occasionally a surprise.
For Americon staff. Contractors do not have accounts and never need to sign in.
Signing in and where you land
The Sign in button in the header, or /loginAmericon staff
Sign in with your username or email address. Staff land on the calendar dashboard.
Use the Sign in button in the site header. You can enter either your username or the email address on your account.
After signing in, Project Managers and Coordinators are taken to the calendar dashboard, because that is where the day's work starts. Administrators are taken wherever they asked to go.
NoteThe one exception is a link you pressed first. Follow a link from the end-of-day summary or a "contractor wrote to you" email with your sign-in expired, and after signing in you land on the screen you clicked — the reply box, the record, the worklist — rather than on the dashboard.
The old WordPress login screen at /wp-login.php redirects to the branded sign-in page, so a bookmark to either one works.
A wrong password says so. A suspended account says so separately — that one needs an administrator, not a password reset. Ten failed tries locks the connection for fifteen minutes.
Wrong username or password. You are returned to the sign-in page with a message. Use Forgot your password? to have a reset link emailed to you.
Your account has been suspended. The sign-in is refused with its own distinct message. A password reset will not help; an administrator has to restore the account in User Management.
You never set a password. New accounts are created without one. The set-password email is the only way in until it is used. Ask an administrator to resend it.
Too many failed attempts. After ten failures from the same connection within fifteen minutes, further attempts are refused for fifteen minutes. The page says so, and says how long is left.
The lock is on the connection, not on your account: it clears itself after fifteen minutes with nothing to reset and nobody to ring. Your account is not suspended, disabled, or changed in any way by it.
TipLocked out and genuinely cannot wait? Use Forgot your password? from a phone on mobile data. That is a different connection, so it is not locked, and the reset email arrives regardless.
NoteThe limit exists because the sign-in page is the one door into this portal that anybody on the internet can reach, and it guards accounts that can read every private project and the whole contact directory. Ten tries is far more than a person mistyping a password needs, and far fewer than guessing one requires.
ImportantIf nobody can sign in as an administrator, the WordPress admin is still reachable directly at /wp-admin. That is the recovery path, and it is why at least one administrator account should always be kept live.
The home page of the portal: every project with a bid due date, plotted on a month grid, with the figures that matter above it. Signed-out visitors see public projects only; staff see public and private together.
The headline tiles
Calendar Dashboard, above the calendar
A live count of what needs attention now. Each tile is a link into the list or screen already filtered to exactly what it counted. Every tile counts jobs, so the numbers are comparable.
A month grid is good at "how does next month look" and bad at "what needs me today". The tiles answer the second question without any clicking, and each one is a link into the matching filtered list. Hover a tile for a one-line reminder of what it counts.
Tile
Counts
Goes to
Closing today
Bids whose deadline falls before midnight tonight.
Public Projects, filtered to today.
Closing this week
Bids due within the next seven days.
Public Projects, filtered to this week.
Open public bids
Public projects still accepting bids.
Public Projects.
Open private bids
Invite-only projects still accepting bids. Staff only.
Private Projects.
Contractors not told
Jobs whose plans or bid date changed after invitations went out, with firms who have not heard. Staff only.
The project list, narrowed to those jobs — public and private together.
Unpublished drafts
Jobs written up and never published. Red once one of them is past its own bid date. Staff only.
The project list, showing drafts from both boards.
Waiting for an answer
Jobs with mail from contractors that nobody has dealt with — an unread message, an unanswered question, a bid nobody has checked. Staff only.
The Waiting for an answer screen, every job at once.
The first four count work that is out; the last three count work that is owed. Each tile keeps its own colour whatever the number is — red for today, amber for anything that wants attention soon, blue for public, teal for private. A tile showing zero is dimmed rather than recoloured, so the row still reads as distinct things on a quiet week, and colour still means "this needs you".
Under the tiles, staff have three plain links rather than tiles, because none of them has a number that means "act on me": Bounce log, Bid mailbox and Audit trail. They are places you go with a question — did that firm's invitation bounce, is bid mail arriving at all, who changed this due date — and each has its own entry in this manual.
The dashboard staff land on after signing in. The tiles answer "what needs me today"; the grid answers "how does next month look".
Each marker is one bid deadline. Colour says whether it is public or private, and whether it is close enough to worry about.
A marker sits on the day a bid closes, not on the day work starts. Colour carries two facts at once:
Blue — a public project, open for bidding.
Teal — a private, invite-only project. Only staff ever see these.
Amber — closing soon. Anything inside 72 hours of its deadline.
Grey — the deadline has passed.
NoteSeventy-two hours is the site-wide definition of "closing soon". The reminder emails to plan holders use the same number, so the calendar and the mail cannot disagree about what is urgent.
Click a day to list everything closing on it, with a link straight to each project.
Clicking a day opens a panel listing every project closing that day, each one a link to its details page. Press Escape or the close button to dismiss it.
This works with the keyboard as well as the mouse, and on touch screens. There is no hover behaviour to miss.
Subscribing to bid deadlines
Calendar Dashboard, below the calendar
Subscribe once and every public bid deadline we post from then on appears in your own calendar automatically. No account needed.
The Subscribe in your calendar button hands the feed to whichever calendar application is registered on your machine — usually Outlook or Apple Calendar — and opens its subscribe dialog.
If that button does nothing, which is common on locked-down corporate machines, use Copy feed URL instead and paste the address into your calendar's "add calendar by URL" option.
The feed carries public, open bids only. Private projects never appear in it.
Your calendar refreshes it on its own schedule, typically every few hours.
When a bid date moves, the existing entry moves. You do not accumulate duplicates.
Times are published as fixed points in time, so a bidder in Denver sees a Chicago deadline correctly converted to their own clock.
NoteThis is the single most useful thing a contractor can do on this site, and it takes one click. It is the only way to hear about a new bid without visiting the site or waiting for an email.
Public Projects and Private Projects are the same list over different data, so every control below behaves identically on both. Projects open sorted by bid deadline, soonest first; click the Project, Location or Bid due heading to sort by it, and again to reverse it. On a phone the same three appear as a row of Sort by buttons.
Searching
The filter bar at the top of any project list
Matches the project name and its description. Press "/" anywhere on the page to jump straight into this box.
Type a project name or a city and press Filter. The search runs over the project name and description.
Search combines with every other filter rather than replacing them: a search term plus a state plus a due-date preset narrows to the intersection of all three.
NotePressing / anywhere on a page that has a search box puts the cursor in it. See the keyboard shortcuts.
One project list, with every control this section describes on it. The chips carry their own counts, so you can see whether a filter is worth pressing before you press it.
Narrows to projects in one US state. The list is the same on every page of the site, so a state chosen here means the same thing everywhere.
Choose a state and press Filter. Leave it on All states to clear it.
The state comes from the project record, which is why it is a dropdown rather than free text — a project entered as "Wisc." would never be found by someone filtering on WI.
Filtering by trade
The filter bar, when trades have been set up
Narrows to projects wanting a particular trade. Only appears once Americon has set up its trade list.
Trades are the work packages a project wants priced — electrical, mechanical, sitework, and so on. Choosing one narrows the list to projects tagged with it.
This control is hidden entirely until trades have been created, rather than sitting in the filter bar as an empty dropdown.
NoteFor a contractor this is the fastest way to a shortlist: filter to your trade, then subscribe to the calendar so you hear about the next one without checking back.
One-click versions of the questions people actually arrive with. Press an active one again to clear it.
Closing today, Closing this week and Closing soon are one-click deadline filters. Each carries a count, so you can see whether it is worth pressing before you press it. The active one is marked; pressing it again removes it.
They are ordinary links carrying the filter in the address, so any one of them can be bookmarked or pasted into a message and will open showing the same thing.
Staff see a second row — All, Published, Drafts — whenever there is a draft to separate out. Drafts is the one filter that widens the list: it shows drafts from both boards, public and private, and says so above the table.
A chip appears above the list showing which filter is in force, with an × to remove it — so a narrowed list can never be mistaken for the whole list. Arriving from the Contractors not told tile on the dashboard, the chip reads exactly that, because nothing in the columns would otherwise say why the list is three jobs rather than forty.
How many projects to show before paginating. Ten, twenty or fifty.
Sets how many rows appear before the list paginates. Larger pages are worth it when you are about to select rows for export, since selection applies to the page you are looking at.
Brings past-deadline and closed projects back into the list. Off by default, and never available to the public.
By default a project drops out of the lists once its deadline passes or it is marked Closed. Ticking this brings them back, which is what you want when looking up a job that has already been bid.
ImportantThis control is staff-only, and the restriction is enforced on the server rather than by hiding the checkbox. A signed-out visitor cannot see closed projects by editing the page address.
The status column of each row in a project list, staff onlyAmericon staff
A row says nothing when a job is in order. A badge is an exception: Draft, contractors not told about a change, or nobody holding the plans.
The column only carries exceptions. A row that read "7 plan holders" would be reporting that things are fine, on every project, which is how a list stops being scanned. So the ordinary state is blank, and anything printed is worth reading.
Badge
It means
Draft
Written up, never published. Off the calendar, sends nothing, and its plan files will not download. It outranks everything else on the row — "bidding open" beside it is true and misleading.
3 not told
The plans or the bid date changed after these firms were invited, and they have not been sent the update. The one with a deadline on it: a firm pricing a superseded sheet is a dispute.
No plan holders
Nobody has taken the drawings yet. On a job with a bid date approaching, this is the one to act on — invitations go out today.
The public and private lists do not badge visibility, because every row on each would carry the same word as the page title. Closed Projects is the one list where the two appear together, so it is the one place a Public or Private badge answers a question, and it is the one place that shows it.
NoteRows in the Private Projects list carry the access code in their links already, so clicking straight through from the list works — you are seeing what the invited contractor sees.
Puts the address of the list exactly as you have filtered it on your clipboard, ready to paste into an email.
Every filter lives in the page address, so the address is the saved view. This button copies it.
Whoever opens it sees the same search, state, trade and deadline filter you had — subject to their own permissions. Send a colleague a link to "everything in Wisconsin closing this week" and that is what they get.
ImportantA link to the Private Projects list only works for someone signed in as staff. To send a contractor a private project, use the invite link on that project instead.
The checkbox on each row, staff onlyAmericon staff
Tick rows to export just those. Shift-click a second box to take everything in between.
Tick individual projects, or use the checkbox in the toolbar to take the whole page at once.
Shift-click selects a range, the way a file manager or mail client does: tick the first row, then shift-click the last, and everything between them follows.
A bar appears at the foot of the list once anything is ticked, showing the running count with Export CSV and Clear.
NoteSelection covers the page you are looking at. To export beyond it, use Export all in the toolbar instead.
The toolbar above the list, and the bar at the footAmericon staff
Two exports: "Export all" takes everything matching your filters across every page; "Export CSV" in the selection bar takes only the rows you ticked.
There are two, and the difference matters:
Export all N in the toolbar carries your live filters, not a list of rows. It exports everything matching — including the rows on pages you never clicked through to.
Export CSV in the selection bar exports exactly the rows you ticked, and nothing else.
The file downloads immediately and opens in Excel or Google Sheets. It carries the project name, location, deadline, visibility, trades and assigned staff.
ImportantAn export of the private list contains invite-only project details. Treat the file the way you would treat the invite links themselves.
Compact fits roughly a third more rows on screen. Your choice is remembered on this device.
Comfortable is the default. Compact tightens the rows so more fit on screen, which is worth it when working through a long list.
The setting is stored in your own browser and applies to every list on the site. It is per-device, not per-account, so choosing it on your desktop does not change your phone.
Section 6
Creating a project
The Create Project form takes a project from nothing to a draft in one submission; publishing it is a separate press on the project's own screen. The name, city, state, bid due date and the two people responsible for it are required — everything else can be added later in the editor.
How the form is organised
Create Project, down the leftAmericon staff
Overview, Schedule, Contacts, Photo and Plan files are five views onto one form. Nothing is created until you press Create draft — and what it creates is a draft, not a live job.
The sections are the same five the project editor uses, in the same order, so creating a project and later editing it are the same screen doing the same work. Moving between sections changes nothing and creates nothing.
Each entry in the rail says what is still needed — "2 to fill" against a section means a required field in it is empty — and the line under the rail counts every required field across all five, including sections you have not opened.
The button is Create draft, and it means it. The project lands in the editor as a draft — off the calendar, sending nothing, invisible outside Americon — and Publish is a separate press there once there is something to look at. See Drafts and publishing.
NotePlan files are the exception to "nothing happens until you press Create draft". They upload as you drop them, so a large drawing set is already transferred by the time the rest of the form is filled in; they attach to the project when it is created.
ImportantLeaving the page with a part-filled form prompts first, and nothing is kept. A project that has not been created cannot be resumed later.
The create form, empty. The rail counts what is still needed per section, and the line beneath totals it across sections you have not opened yet.
This is the heading contractors see on the calendar, in the lists and in the subject line of the invite email. Name it the way the drawings do.
The project name appears in more places than anything else on the form: the calendar marker, both project lists, the details page heading, the invite email subject, and the entry in a contractor's own calendar once they subscribe.
Use the name that appears in the title block of the drawings. A contractor who receives an invite for "Devil's Lake Villas" and finds "DL Multi-Unit Phase 2" on the drawings has to stop and check whether they are the same job.
City and state
Create Project, OverviewAmericon staff
Both are required. State is what the list filters run on, so it has to be picked from the list rather than typed.
City is free text and appears under the project name in the lists. State is a dropdown because it drives the state filter — a typed abbreviation would make the project invisible to anyone filtering.
Public puts the project on the bid calendar for anyone to find. Private keeps it off every public surface and reachable only through its invite link.
This is the most consequential field on the form. It can be changed later, but changing it later means a project was briefly in the wrong place.
Public
Private
On the bid calendar
Yes
No
In the Public Projects list
Yes
No
In the subscribable calendar feed
Yes
No
Details page
Open to anyone
Needs the access code in the link
Plan files
Downloadable by anyone
Needs the access code in the link
ImportantSetting a project public publishes its drawings to the open internet. If in doubt, create it private — moving a project to public later is a deliberate act, and moving it back does not un-publish what was already downloaded.
NoteNone of the above happens while the project is still a draft. Visibility decides where a project goes when you publish it; until then it goes nowhere. See "Drafts and publishing".
The project editor, in the bar at the top — the draft is created on the Create Project formAmericon staff
Every project starts as a draft, visible only to Americon staff. Publishing is a separate button, and it is the moment the project becomes real to anyone outside.
A project has two independent settings, and they answer different questions. Confusing them is the commonest mistake on this screen, because "private" sounds like it means "not published" and it does not.
What it decides
Draft or published
Whether the project exists to anyone outside Americon at all.
Public or private
Where it goes once published — the open bid calendar, or invite links only.
So a private published project is live: invited contractors can open it and take the plans. A public draft is not live at all — it is not on the calendar, and nobody outside can reach it even with the link.
While a project is a draft:
it is off the bid calendar, the subscribable feed and the public lists,
its plan files will not download, for anyone,
it sends no deadline reminders,
invitations cannot be sent — the console refuses, because every link in that email would open the "not found" page,
and it appears on the staff boards with a Draft chip, and in the "Unpublished drafts" tile on the dashboard.
Publishing is one button in the bar at the top of the project screen — Publish to the calendar on a public project, Publish to invitees on a private one. On a project marked public it asks first, and states exactly what is about to become visible, including how many plan files.
NoteUnpublish, on the Delete panel, takes a live project back to a draft without losing anything entered. Anyone already invited loses access until it is published again — which is the point, but tell them if a bid is in progress.
ImportantA draft is safe, not finished. Nothing chases you about one: if a job is written up and never published, it will sit there past its own bid date. That is what the red "Unpublished drafts" tile on the dashboard is counting.
The work packages you want priced. Contractors filter the project lists by these, so a project with none set is harder for the right bidder to find.
Tick every trade you want bidding. They appear on the project row in the lists and drive the trade filter.
Leaving them empty does not break anything — the project is still listed and still on the calendar — but a contractor who filters to their own trade will not see it.
Required, and it drives almost everything: the calendar position, list sort order, the reminder emails, and when invite links expire.
Pick the date and time from the picker rather than typing, so the value stored is unambiguous. This one field drives:
where the project sits on the bid calendar,
the sort order of both project lists — soonest first, always,
the "closing today" and "closing this week" counts on the dashboard,
the reminder emailed to plan holders as the deadline approaches,
the entry in a contractor's own calendar,
and when the project's invite links stop working.
NoteThe deadline is shown to contractors with its time zone spelled out. A bid deadline is contractual, and "2:00 PM" means different things in Denver and Chicago.
ImportantMoving a bid date after invites have gone out is exactly what the plan-holder notification is for. Change the date, then tell the people holding the plans — they will not check the site again on their own.
Optional. Shown on the project page so a bidder can judge whether the schedule suits their book.
Both are optional and neither affects the calendar or any filter. They appear on the project details page, where they answer a question a contractor asks before deciding whether to price the job at all: can we actually staff this, when it runs?
Leave them blank rather than guessing. A date on the page reads as a commitment.
Project manager and coordinator
Create Project, ContactsAmericon staff
Both are required when the project is created. They are named in the invite email, and are who a contractor reaches by replying to it.
Both are chosen from portal accounts. They are named on the project details page and in the contractor invite email under "Submitting your bid".
An invitation the portal sends carries a per-project reply address, so a contractor answers by replying to the message and their answer is filed against the job before it reaches either of you. The invitation names the two of you without printing your addresses — a contractor who writes to an address directly is writing somewhere the project record cannot see. There is no longer any way to copy that invitation out and send it from your own mailbox — see The contractor invite email for what replaced it.
Project manager — responsible for the project and the final bid decision.
Project coordinator — handles invites, documents and contractor questions.
Naming them is not a permanent assignment — either can be reassigned at any time in the project editor. The requirement is that a project never starts life with nobody answerable for it, because a project sent out with no contacts gives a contractor with a question nobody to ask.
NoteIf no account holds one of the two roles yet, the form says so and lets the project through without it — a site with no coordinators would otherwise be unable to create any project at all. Assign the role in User Management, then set the contact in the editor.
Optional. Used as the image on the project page and in listings. Unlike plan files, this one is public.
A rendering or a site photograph. Optional, and purely presentational.
ImportantThe photo is deliberately not access-protected, because it is shown on public listings. Never use a drawing sheet or anything confidential as the project photo, even on a private project — upload it as a plan file instead.
Drag files in or browse for them. Large sets upload in pieces, so a big drawing package will not fail part-way through, and you can keep adding while one is still going.
Drop files onto the box or use Browse. Multiple files at once are fine, and each shows its own progress.
Large files are uploaded in chunks rather than in one request, which is what makes a several-hundred-megabyte drawing set survive a slow office connection. If the sign-in token expires during a long upload, it is renewed automatically rather than failing the upload.
Files land in a protected location, not in the public media library.
Nothing is served to anyone until the project's visibility and access code have been checked.
Plan files can be added, replaced and removed later in the project editor.
Dropping more while one is uploading is fine and expected — it is how this form is normally used. The second drop joins the queue behind the first rather than competing with it. Save is the only thing an upload holds; it comes back as soon as everything has finished.
TipA file dropped anywhere on the page — not just on the dashed box — is caught. If you miss, the page tells you where the box is instead of doing anything drastic.
NoteThat safety net matters more than it sounds. A file dropped on a page that is not expecting one makes the browser navigate to it: the tab leaves for the PDF, and everything typed into the form so far goes with it. On the create form, where the file list renders below the box and quickly becomes the thing that looks like the drop area, that is very easy to do.
ImportantDo not close the tab while an upload is running. You will be warned first, but a part-uploaded drawing set is not attached to anything.
Opening any project as staff gives you the editor: the same page a contractor sees, with everything editable. It is divided into sections down the left, because a project with fifty drawings is otherwise one very long page.
The section rail
Project editor, down the leftAmericon staff
Overview, Schedule, Contacts, Photo, Plan files, Invite email, Mail and Delete. Everything except Invite, Mail and Delete saves together with one Save button.
The sections are views onto one form, not separate forms. Moving between them changes nothing and saves nothing; the Save changes button at the foot commits every section at once.
Three sections are separate because they act immediately rather than on save:
Contractor invite email — copying and regenerating the access link happen there and then.
Mail — marking what a message was records it on the spot.
Delete this project — its own confirmation, its own action.
Each entry in the rail carries a short summary of what is in it, so you can see the file count or the visibility without opening the section.
The editor, on a project that is still a draft. Note the rail: Contacts 2 named, Plan files 0 files — the summaries mean you can see what is missing without opening anything.
Everything contractors have sent about this job, in the job. The rail says how many are waiting before you open it.
Mail about a job used to be reachable only through the invitation record, several moves from the project itself. It is now a section of the editor, next to Invite email: what the portal sent, then what came back.
It is the same Correspondence panel that appears on the invitation record — one screen drawn in two places, not two lists that can disagree. Marking a message here marks it there.
The summary beside Mail in the rail is what you need before opening it:
It says
It means
2 waiting, in amber
Two messages nobody has read, or questions nobody has answered. Amber because a question answered after the job closes was not answered.
3 to check
Three bids arrived saying they are bids and nobody has opened them. Not amber — they are collecting as intended until the bid date.
5 messages
Everything on this job is dealt with.
None
Nothing has arrived about this job.
Paused, in amber
The bid mailbox is not being read at all. Nothing has bounced and no contractor has been told, so what is listed is only what arrived before it stopped.
Answering a question with Reply brings you back here when it has gone, rather than to the invitation record — the answer, and the fact that it is now marked as replied to with your name on it, appears on the row it came from.
Project editor, at the foot of the section railAmericon staff
Live count of required fields still empty, across every section — including ones you have not opened.
It reads "Ready to save" when every required field is filled, and names how many are still empty when they are not. It checks all sections, not just the one on screen, so a missing city on the Overview section is reported while you are looking at Plan files.
Unsaved changes
Project editorAmericon staff
Leaving the page with edits in progress prompts first. Filter and search boxes do not count as edits.
If you have changed anything and try to leave, the browser asks before discarding it.
The trade filter, the file filter and the section you are on are excluded from that check — narrowing a list to find something is not an edit, and being asked to confirm it would train people to click through the warning without reading it.
When two people edit the same project
Project editor, on saveAmericon staff
If the project changed while you had it open, your save is refused rather than applied — so nobody's work is overwritten without being seen.
Nothing stops two coordinators opening the same project, and on a deadline afternoon two people on one job is normal. What is checked is the save.
When you press Save changes, the portal compares the project as it stands against the project as it was when your page was drawn, field by field. If nothing you could overwrite has moved, the save goes through exactly as it always has — which is the ordinary case, and you will never see any of this.
If something has moved, the save is refused. Not partly applied, not applied with a warning: nothing is written at all, so the other person's work is intact and yours is not half-landed somewhere.
The notice names who changed the project, how long ago, and which fields your save would have put back to their earlier values. Then:
The form reloads showing the project as it now stands — their version, not yours.
Make your change again on top of it and save. The second save goes through.
Any plan files or a photo you had queued were not attached. Add them again.
NoteThere is deliberately no save anyway button. Overwriting would throw away work you cannot see, and a confirmation dialog in front of that is still throwing it away — it just makes it your fault. Redoing one field is the cheaper half of the trade.
The fields watched are the ones the form writes: project name, city, state, visibility, bid due date, estimated start and completion, project manager, coordinator, scope of work, trades, and which plan files are on the project. Actions with their own buttons — publishing, closing bidding, regenerating the access link — write one thing each and cannot silently undo an edit, so they are not gated.
Switching between Public and Private changes the invite link below immediately, but nothing is live until you save.
Two cards rather than a dropdown, because the two options do entirely different things and a closed dropdown explains neither.
Selecting one updates the invite link shown below it straight away, so the link and the setting can never disagree on screen. A warning appears under the link until you save, because until then the new link is not live.
ImportantMoving a project from private to public publishes its plan files to anyone. Moving it from public to private removes it from the calendar and the feed, and from then on only the invite link opens it — but it does not retrieve anything already downloaded.
A line or two on what is actually being bid. It is the field a contractor uses to decide whether to price the job at all.
A name, a city and a deadline tell a contractor where and when. They do not tell them whether the work is theirs. This is the field that does, and it is why an electrical sub can rule a job out — or in — without downloading a set of drawings first.
It appears in three places, from this one box: on the project page under Scope of work, in the invitation email above the estimated dates, and in the plain-text version of that email for contractors whose mail client shows no formatting.
Say what work is included, and roughly how much of it — "Interior demolition and metal stud framing, 12,000 sf".
Say the conditions that change a price — prevailing wage, night or weekend phasing, an occupied building, a hard completion date.
Leave the specification to the drawings. Two thousand characters is the ceiling and far more than the field needs.
Blank lines start a new paragraph and single line breaks are kept, so a short list of trades on separate lines reaches the contractor on separate lines.
NoteIt is optional. Left empty, the block is dropped from the project page and from both versions of the invitation — no heading, no empty space, nothing that reads as a field somebody forgot.
ImportantEditing it does not tell anyone already invited. Scope is not one of the changes that raises the "out of step" notice, so if it changes materially after invitations have gone out, use Notify these plan holders on the Plan files section.
The URL to send contractors. For a private project it carries the access code, and it is the only address that will open the project.
Use Copy link and paste it into your email. Do not copy the address out of your browser's address bar — for a private project that address may not carry the access code, and a contractor who receives it lands on a page they cannot open.
Public project — the link is a plain address with no code. Anyone can open it.
Private project — the link carries a long access code. Anyone holding it can open the project and download the plans, so treat it as the credential it is.
A private project's links stop working 30 days after its bid deadline.
NoteOpen in a new tab beside the field shows exactly what the contractor will see, which is the only reliable way to check an invite before sending it.
The work packages you want priced — contractors filter the project lists by these. Type in the filter box to find one; filtering only hides rows, so a ticked trade scrolled out of view is still ticked and still saves.
The list runs to several dozen trades, so it has a filter box and a running count of how many are selected. Clear all appears once anything is ticked.
NoteThe filter hides rows; it never removes them from the form. Whatever is ticked saves, whether or not it is on screen when you press Save.
The bid deadline and the estimated construction dates. Changing the deadline moves the project on the calendar and re-times its reminders.
Changing the bid deadline takes effect everywhere the moment you save: the calendar, the list order, the dashboard counts, the subscribed calendar feeds, and the reminder schedule.
ImportantIt does not tell anybody. Contractors holding the plans will not check back on their own — use Notify these plan holders on the Plan files section to tell them the date moved.
Project details, beside the status badgeAmericon staff
The bid date closes a project on its own. Close bidding ends it sooner — when a job is awarded or pulled — and Reopen bidding undoes that.
A published project closes itself when its bid date passes, and that stays true whether or not anybody touches these buttons. What they add is the ability to end bidding at a different moment from the one on the calendar.
Managers and coordinators both have them. They are one press with no confirmation, because either one undoes the other.
What decides open or closed
Left alone
The bid date. Checked hourly, in both directions.
Closed or reopened by hand
Your decision, until somebody changes the bid date.
Bid date changed
The new date takes over again, straight away.
That last row is the way back. If a bid was closed early and should now run to a new deadline, set the new date in Schedule — it reopens the project and closes it again on the new date, with no second button to remember.
Closing bidding, early or on time, means the project:
leaves the bid calendar, the open lists and the subscribable feed,
stays reachable to staff — tick Include closed in the filter bar of either list, or open the Closed Projects board at /closed-projects, which is not in the header — where it can still be read and exported,
sends no further deadline reminders, and drops out of the staff digest,
and shows Bidding closed to any contractor who opens it.
Closing sends no email by itself. What it does instead is ask: close a bid ahead of its published date and the project screen names the firms who are working on it and offers the notice, already written, with a They already know button beside it. Both answers are recorded; neither is the default.
The offer goes to the people we know are spending money on the job:
everyone who took the drawings,
plus any firm that answered We are bidding — they may never have downloaded anything here,
minus anyone who said they were not bidding, and anyone who has unsubscribed.
NoteSay why it closed. The draft states the facts — when bidding ended, what the published date was, who to ask — and deliberately stops there, because "awarded" and "postponed" are very different things to a bidder and only you know which this was.
ImportantNobody is told automatically, and the question is only put when a bid closes EARLY — a bid that reaches its own date is not news. Invite links keep working either way: closing a bid does not take the drawings away from anyone already holding one.
NoteReopening a bid whose date has already gone leaves the project taking bids with a deadline that reads as past. Nothing will close it again on its own while it is in that state, and the editor says so until you give it a new date.
Neither button appears on a draft. Nothing is bidding on a project that has not been published.
Uploading a new photo replaces the current one. The photo is public even on a private project.
Choosing a file replaces the existing photo when you save.
ImportantProject photos are served publicly so they can appear in listings. Never put a drawing or anything confidential here — that is what plan files are for.
Every attached file has a Keep box. Unticking one removes the file from the project when you save — nothing is removed until then.
Each attached file shows its name, type and size, with a Keep checkbox. Files stay attached while their box is ticked; unticking one and saving removes it from the project.
Past six files the list gains its own filter box and a Keep all button, and past eight it gets its own scroll so it cannot swallow the page.
ImportantFiltering the file list hides rows, it does not detach them — but a row you unticked and then filtered out of view is still unticked and will still be removed on save. Use Keep all if you lose track.
NoteThere is deliberately no "remove all" button. The restorative bulk action is worth a button; the destructive one sitting two pixels away from it is not.
Project editor, Plan files, on each fileAmericon staff
The version number is automatic — v1 on upload, v2 the next time a file of the same name lands. The label is free text on top of it: write whatever the drawing's own title block says.
Every plan file carries a version and a date, both set by the portal. A file uploaded for the first time is v1. Upload a file with the same name again and it becomes v2, then v3, and so on. You never type the number.
A replacement takes the old file's place in the list rather than sitting beside it, and keeps its displayed name, so nobody is ever shown two rows called "A-201.pdf" and left to guess. The file it replaced leaves the list but is not deleted — the save confirmation says so each time it happens.
On top of the version, each file can still carry a revision label: free text, and optional. "Rev B", "Addendum 2", "2026-08-04 reissue". Construction has no single convention, and the label on the portal has to match the label in the title block of the drawing itself. The paper wins — so when a label is filled in, it is what contractors see in place of the version number.
There are two ways to issue a revision, and both end in the same place:
Press Replace on the file's row and pick the new drawing. This states outright which sheet is being superseded, so it works no matter what the new file is called. Use it whenever the reissue arrives under a different name — "A-201_RevB.pdf" for "A-201.pdf".
Upload a file with the same name. Picked up on its own, no button needed. Unticking Keep on the old row in the same save works too and counts as the same replacement — you never have to save twice.
NotePressing Replace always wins. If the file names also happen to match something else, the row you pressed Replace on is the one that gets superseded.
ImportantUpload a drawing whose sheet number is already on the project under a different file name — "A-201_RevB.pdf" beside "A-201.pdf" — and it is added as a separate file at v1, with the save telling you so. It is not linked automatically: guessing wrong would drop a live drawing off the bid list. Press Replace on the row it supersedes to link them.
NoteContractors are only shown version numbers once something on the project has actually reached v2. Before that the column would read "v1" on every row, which is noise. Your own list here always shows them.
A row that has been revised gains an earlier issues line you can open. Every superseded drawing is listed there with its version, its label, the date it was replaced and a link to the file itself. Nothing is ever deleted, and this is where it stays.
NoteThere is no Restore button, on purpose. Putting an old drawing back is issuing it again: download it from the history and upload it through Replace. That keeps the history a straight line, so months later it still answers which sheet was live in which week.
ImportantOnce a drawing is superseded, its old download link stops working for contractors — anyone following one from an email sent before the reissue is sent to the current set instead, and told why. Staff links keep working. This is the main thing that stops a bid being priced off a superseded sheet.
NoteAfter uploading a revision, tell the plan holders. The notification email lists what changed automatically, and now does so whether or not a label was typed.
A revised file is not yet an addendum. Once the revised sheets are uploaded, open the Addenda section and issue the numbered addendum that carries them — see *Issuing an addendum*. The number is what bidders acknowledge; a label is what the drawing says.
A numbered change to the bid documents. Issue it here after uploading any revised sheets; the number is assigned for you, and every bidder is asked to acknowledge it on their bid form.
An addendum is how a change to the bid documents becomes something a bidder can be held to. Every set of bidding instructions in the industry works the same way: addenda are numbered, issued in writing to every bidder of record, and each bidder acknowledges them by number on the bid form. A bid that leaves one out can be set aside. Revision labels on files cannot do that job — "Rev B" on three sheets is not something anybody can acknowledge or fail to acknowledge.
The section lists what has been issued, newest first, with what changed, the files it carried, whether the bid date moved, and how many firms have been told. Below it is the form for the next one. The number is assigned by the portal — Addendum 1, 2, 3 — and never typed, for the same reason file versions are automatic: it is a fact the portal knows for certain, and asking a person for it is how it ends up wrong.
What this addendum changes is one line, and it is the line every bidder is asked to acknowledge and the one a protest reads. Write it as the bid form will need it.
The plan files it carries. Upload the revised sheets in Plan files first; files revised since the last addendum are ticked for you. An addendum can also carry no files at all — a clarification, or a moved date, is still an addendum.
The bid date. Standard bidding instructions move the bid date for an addendum issued inside four days of it. Inside that window the form will not submit until you have said either that the date moves, and to when, or that it stands because the change is minor. Either answer is recorded with the addendum, by name.
NoteIssuing sends nothing. The moment you press it, every invited firm is marked as not yet told, and the banner on this section and on Invite email says so with the addendum’s number in it, until somebody presses Tell them. Plan holders who were never invited are reached from the plan-holders panel, as before. The Told column here counts both, and separately counts the firms that pressed the receipt link in the notice.
The notice a firm receives — whether a re-issued invitation or a plan-holder update — carries every addendum on the job, numbered, with what changed, the files, the new bid date if it moved, and a Confirm you received this addendum link. That link is a courtesy that tells you whom to phone before bid day. It is not the acknowledgment; the bid form is.
ImportantAn addendum cannot be edited or withdrawn once issued. If it was wrong, issue the next one saying so — that is how the paper record works too, and it is the only way the numbers a bidder wrote on their form stay meaningful.
A ready-made, branded email built from this project. Preview it here, then send it from the portal so the job can say who was asked.
The email is built from the project: name, location, bid deadline with its time zone, the scope of work, the plan documents, the manager and coordinator by name, and a button to the project — carrying the access code when the project is private. Where the directory knows the contact, it opens by name.
Below the button are the two things a contractor can do from the message itself: the Will you be bidding? panel, and Send your bid, which opens their own email addressed to this job and this firm. The manager and coordinator are named without their addresses, because replying to the message is the route that reaches both of them and lands on the record. Only on a site whose bid mailbox is not yet being read are the addresses printed and the two buttons left out — see Who the message comes from, and where replies go.
Choose who to invite is the way out of this panel. You pick contacts and groups, see who is excluded and why before anything goes, and the project remembers who was asked. Each firm gets their own link, so an opening can be attributed to a company, and replies reach the project manager rather than the website.
The preview shows exactly what will be sent, clipped to a readable height. Show the whole email expands it. This is the cheapest place to catch a wrong bid date.
The panel on a project that has not been published yet — which is why it opens with the warning rather than the preview. Publish first, then invite.
NoteThis panel used to offer Copy formatted email and Copy subject, for pasting the invitation into Outlook. Both are gone: a message sent that way carried no per-firm link, honoured no unsubscribe, and left the project unable to say who was asked to bid — the record you need if the job is ever audited for good-faith solicitation. What people used them for is now Add a note to this invitation on the review step, and Message on a firm’s row for a word to one contractor.
NoteA contractor who receives this can add the bid deadline straight to their own calendar from the project page, without an account.
Project editor, Contractor invite email, Choose who to inviteAmericon staff
Pick contacts by group, trade or name, and add addresses by hand. Nothing is sent until you have seen the review page.
The list opens narrowed to the trades on this project, shown as chips above it. Remove a chip to widen the list; clear them all to see every contact. The line above the list always says how many contacts the filters are hiding, so the list is never quietly shorter than you think.
Tick rows to choose them. Shift-click picks a range.
The list follows your typing. There is no Apply to press — narrow the search or take a chip off and the rows underneath change, along with the count and the pager. The filtering is done on the server, so Select all matching still means every contact behind the page and not the fifty on it.
Ticks travel with you. Search again, turn the page, remove a chip, come back from the review — whoever you have ticked stays ticked. Your selection, beside the list, names everyone chosen so far with an × to take them out again, and a chosen row is tinted in the list; anyone the current view no longer shows is also listed under Also selected at the foot of the list. To take everything the filters match in one go, Select all matching is still the faster control.
Groups and trades narrow together: picking the group "Southern Wisconsin regulars" and the trade "Concrete" gives you the concrete subs in that group, not both lists added together.
Addresses typed into the box at the bottom are invited and added to the contact list, so nobody has to retype them next time.
Contacts who cannot be written to still appear, greyed, with the reason in place — already invited, unsubscribed, or a dead address. They are shown rather than hidden so that "why didn’t Bob get it?" is answered while the list is still in front of you.
NoteSomebody in two chosen groups, or in a group and typed in by hand as well, is invited once. The duplicate is counted on the review page so you can see it happened.
Project editor, Contractor invite email, after choosingAmericon staff
What pressing Send would actually do, before it does it: who receives an invitation, who is excluded, and why.
These recipients are outside contractors on a live bid. A send reaches all of them at once and cannot be recalled, so everything the portal knows that you do not gets a page of its own first.
First invitation — firms that have not been told about this project.
Revised plans — firms already invited, being told that the drawings or the bid date have moved since. They get the invitation again under a heading saying why.
Already invited — nothing has changed for them, so they are left alone.
Unsubscribed or bounced — addresses we may not or cannot write to.
Listed twice — reached through more than one route in this selection, and invited once.
Add a note to this invitation puts a paragraph of your own into the invitation itself — *“Addendum 2 is already posted”*, *“we are targeting a GMP by the 30th”*. It goes to every firm listed above, so it is for something they all need to know.
ImportantIt is not the place for a word to one firm. *“Bob, we would especially like your number on the sitework”* typed here goes to all of them. Use Message on that firm’s row in Who has been invited, or narrow the send by trade first and let the note speak to that trade.
Send a test to myself first sends the real message for this real project to your own address only — including your note. It is the cheapest way to catch a wrong date or a missing drawing, and it leaves your selection intact.
NoteThe numbers are worked out again at the moment you press Send. If somebody unsubscribes in between, the count you are told afterwards is the one that actually went.
The last step names them. Under the count, Where each one went lists every firm in that send with what became of its message beside it: Waiting while the queue is still working through them, Server accepted once it has gone, and anything that came straight back sorted to the top. It is one send and not the whole history of the job — the full list is Who has been invited — and Server accepted means the same thing here as it does on that screen: the receiving server took the message, which is not the same as somebody reading it.
Invitation screen, at the top of both stepsAmericon staff
Invitations are held until the bid mailbox has been read once, so every firm on a job is given the same reply address. One press by an administrator clears it for good.
Invitations cannot go out yet at the head of the invitation screen means one thing, and it is not a fault on this project: the bid mailbox has never been read successfully, so the portal will not print a reply address it cannot yet prove anybody is collecting.
It is drawn on the step where firms are chosen and again on the review, deliberately early — the cost of it appearing late is an afternoon spent building a list of four hundred that cannot be sent. While it stands, Send cannot be pressed, and Send again on a single firm's row is refused for the same reason.
The remedy is one press by an administrator: Tools → Americon Bid Mailbox, then Read the mailbox now. It has to succeed once and is never asked for again. Nothing is being switched on — the mailbox is simply proving it can be read before four hundred contractors are told to write to it.
ImportantIt refuses rather than warns because the mistake cannot be undone. A job whose firms hold two different reply addresses has half its contractors replying somewhere nobody reads, and unread mail does not bounce — the first anybody would know is a bid that never arrived.
NoteA site with no bid mailbox configured at all is held up too. It used not to be — invitations went out with replies pointing at the people assigned to the job — but a reply that lands in somebody's own inbox is a reply the record never sees, and that is the one thing an invitation from here must never invite. The refusal names the line in wp-config.php that finishes the setup. In an emergency, AMERICON_BID_ADDRESS_FORCE routes replies to the project address before the mailbox has been proved; they wait there rather than in Outlook. See Who the message comes from, and where replies go.
Project editor, Who has been invited, the Message link on a firm’s row; Reply on a message in the bid mailboxAmericon staff
A message to a single invited contractor, sent from the portal so it is on the record.
For the thing you would otherwise open Outlook to write: *“We would especially like your number on the sitework package”*, or a question about a bid that has not arrived. It goes to that firm alone.
Reached from Reply on a contractor’s message, it answers that message properly: the question is shown above the box so you are not answering from memory, the subject is filled in as a reply to theirs, and what they wrote is quoted underneath your answer. In their mail client it arrives in the same conversation rather than as a separate email — so a firm that asks three things about one job sees one thread, not three loose messages.
Sending an answer this way marks the question answered — you do not have to go back and press anything. That is the whole reason to answer from here rather than from Outlook: the press that gets forgotten is the one that leaves a question sitting on the worklist with a deadline running against it.
Sent from the portal, it carries their own link to the project, replies reach the project manager, and it lands on that firm’s delivery history with whatever the mail server said about it. Sent from Outlook, none of that is true and there is nothing three weeks later saying you wrote to them at all.
What you type is kept. The firm’s row on Who has been invited gets a Messaged mark, and opening it shows the message in full with the date and your name on it — so "did we tell them the sitework was split out?" is answered from the project rather than from somebody’s Sent folder.
The project name, the bid date and their link are added for you — write only your own words.
It does not re-send the invitation. Send again on the same row does that.
It does not change what the firm has been told about revised plans, so it will not remove them from the list of people who still need to hear about a change.
NoteA firm that has unsubscribed or whose address has bounced cannot be written to here, and the screen says which. That is not a technicality to work around by emailing them directly — an unsubscribe is a decision the contractor made.
Project editor, and the invitation screenAmericon staff
When the bid date moves or plans are revised, the project says how many invited firms have not been told. Sending is still your decision.
The portal records what each firm was told: the bid due date, and the plan files with their revision labels. When either changes, everyone invited under the old version is counted as not yet told, and the project says so until somebody acts.
It is never sent automatically, deliberately. Saving a project is not a decision to email forty-seven firms — a revision is often uploaded in pieces over an afternoon, and each save would be its own blast. An unwanted email cannot be recalled.
Correcting a spelling, a description or a job title tells nobody. It is not something a contractor would do anything differently about.
A moved bid date and revised or added drawings both count.
Removing a drawing is reported but does not re-invite anyone: there is nothing for them to act on.
NoteRe-sending picks up firms added to a chosen group since the first invitation. They have never seen the project, so they get the full invitation and are counted under First invitation.
“The deadline they were shown cannot be confirmed.” On a few older projects the reason given is this rather than a change. It means the firm was invited before the portal kept a change trail, so there is no record of which bid date was in front of them — not that anything has moved.
It is shown because the honest answer to “have they been told?” is that we cannot say, and a record that quietly assumed either way would not be worth having.
Contractors never see that wording. If you do re-send, the invitation reads simply as updated.
Re-sending clears it: the firm is then recorded against the project as it stands today.
NoteIt appears once per affected project and does not come back on its own. Leaving it is a legitimate choice — on a job whose deadline has not moved in months there is nothing to tell anyone.
Project editor and the invitation screenAmericon staff
Whether the trades this job is tagged for have anybody invited, and anybody bidding. It only appears when something is missing.
Every other count on this portal is measured in firms. A job needs trades, and five trades covered out of six looks identical to six out of six on every other screen — forty-seven invited, all healthy, and nobody at all pricing the electrical.
This is the only check that asks whether the bid will actually work. It compares the trades on the project against the trades on the contacts who were invited.
Nobody has been invited for X — a mistake, and one you can fix this afternoon by inviting people. Shown as a warning.
No contact in the directory does X — nobody to invite yet. A different problem with a different remedy, so it is worded differently: add contacts, or the trade tag is wrong.
Invited but nobody bidding yet — a risk, not a mistake, and usually just week one. Shown quietly, because a screen that shouts at the normal state of a bid on its first day is a screen people learn to scroll past.
The trades that are covered are left out entirely. This panel is silent on a healthy project, on purpose — it has to still be legible on the morning it says something that matters.
NoteA project with no trades tagged gets nothing at all rather than a complaint. Tagging is optional, plenty of jobs are one trade or none, and nagging about it would only teach people to tag projects to silence the nagging.
ImportantA firm that declined does not cover its trade. They answered, which is useful, but they are not going to price it.
The same check runs across every open job and is listed on the Waiting for an answer screen and in the end-of-day summary, so a trade nobody is on cannot hide on a job nobody has opened this week. The quiet third state — invited, nobody bidding — joins those lists only inside the last three days before the bid date, when silence stops being week one.
Project editor, Who has been invitedAmericon staff
Contractors answer “are you bidding?” from their invitation email. Silence is not a decline — it usually means nobody has opened it yet.
Every invitation carries a Will you be bidding? panel under the plan documents button, with two answers in it: Yes, we are bidding and Not this one. The answer lands on the invitation record against that firm, and the line above it counts the three states.
Bidding — expect a number from them, and they are told first when anything changes.
Not bidding — they have passed on this one job. They stay on the invitation list and will hear about the next.
No answer — the commonest state, and not a decline. Usually nobody has opened the invitation yet.
"47 invited" is not coverage. Eleven bidding is coverage. Three days from a deadline those two numbers tell you completely different things, and before this existed both looked the same on every screen.
A contractor can change their answer at any time by following the link again — a firm that declined in week one and finds capacity in week three needs to be able to say so. Every change is recorded, so "when did they say they were out" has an answer after the job is awarded.
NoteOccasionally somebody answers who is not on the invitation list — the link was forwarded to them by a colleague. They are counted separately so the figures measured against the invitation list stay honest.
ImportantEach answer is signed for one firm on one project. Nobody can answer on another firm's behalf, and a link from one job cannot be used on another.
Invitation screen, the “Fix this” link on a greyed rowAmericon staff
Bounced addresses are fixed by entering the correct one. Unsubscribes can only be reversed by the firm asking — and the note you write is the record of them asking.
A contact is greyed out and unselectable for one of two reasons, and they are not the same kind of problem. Fix this on the row opens the right remedy for whichever it is.
The address bounced. The receiving server said no such mailbox — usually a typo, somebody who has left the firm, or a domain that changed. Enter the address that is actually correct and it replaces the one on the contact.
Retyping the same address is refused. We have the receiving server's word that it does not work, so retyping it changes nothing.
The old address stays on the do-not-mail list. It still does not work, and the next person to type it by hand should get the same warning you did.
An address already belonging to another contact is refused, because saving it would merge the two firms into one row and the losing firm would drop out of every group it was in.
The address is right and the bounce was wrong. This does happen — a mailbox created that morning, a receiving server misconfigured for a day, a domain part-way through a move. The panel underneath clears the block, and asks you to write down how you know. That note is recorded against your name, and if mail to the address fails again it is blocked again.
ImportantDo not use that panel to get past a bounce you have not checked. It exists for addresses you have confirmed by other means; clearing one you have not costs the domain's sending reputation, which affects delivery for every other firm on every other bid.
The firm unsubscribed. There is no address field here, because nothing about the address is in question — they asked us to stop. Only they can reverse that, and only by asking.
If they have asked, record how: a phone call and roughly when, an email, a conversation on site.
Wanting them to bid is not consent. Neither is a colleague saying they are probably fine with it.
That note is what the portal will show if anyone ever asks why an unsubscribed firm was written to again.
NoteEverything on this screen is recorded — what was cleared, by whom, and the reason given. The suppression entry itself is deleted when the block is lifted, so the audit trail is the only thing that survives.
Invitation screen, beside the contact listAmericon staff
A running count of what you have chosen and what it would do, so you do not have to reach the review page to find out.
The panel beside the list keeps up with what is ticked. It changes nothing and sends nothing — it is the answer to "what have I actually got here" while you are still building the selection.
What would happen splits the selection into firms that have never seen this job and firms already invited who would be told what has changed since. Those are different messages, and the balance between them is usually the thing worth checking.
Reached by shows which group chip brought in each part of the selection, biggest first. This is how you catch a chip you did not mean to leave ticked — twenty firms arriving from a group you forgot about show up here as a line with a number beside it.
Not selectable on this page counts the rows the list is showing but will not let you tick: already invited, or blocked. Each one is greyed in the list with its reason on the row.
Contacts added by hand appear under Reached by as "Added by hand", because a firm nobody's group named is worth being able to see.
NoteThe panel counts the page you are on. Select all matching extends the selection across every page the filters match, and the review step is where the whole set is counted and checked.
Project editor, Contractor invite email, Who has been invitedAmericon staff
Every firm on this project, when it was asked, what became of the message, and whether they said they are bidding. Click a row to read everything exchanged with that firm.
This is the solicitation record for the job — the list to open when somebody asks who was invited, and the list to open when one of them cannot find their email.
The tiles across the top are where the bid stands: how many firms said they are bidding, how many said they are not, and how many have not answered. A fourth tile appears once a bid has actually been marked as received. Those figures are what tell a healthy bid from one where everybody passed — both are the same number of firms invited.
Two of the columns are easy to confuse and are deliberately separate:
Invited is the date this firm was brought into the bid. It never changes, no matter how many messages go out afterwards. It is the date that matters if the job is ever audited for good-faith solicitation. Underneath it is how the firm came to be on the list — the group that named it, or "Added by hand".
Delivery is what became of the last message to them — whether the contractor’s own mail server accepted it, delayed it or bounced it. The line under that badge counts the invitations: a firm invited in June and sent revised plans in July reads "2 invitations", with the date of the last one.
Opened is the first time that firm followed the link in their own invitation and landed on the project. It is not a read receipt, and it is not the plan files — taking the drawings puts a firm on the plan holders list instead, which is the stronger signal of the two. Repeat looks are counted beside the date, and a tab left open and refreshed all afternoon still counts as one.
NoteA row reads Not known where the portal cannot tell either way, and that is different from "not yet". Only an invitation that carries a link issued to that firm can be attributed, so a link a colleague forwarded, and a firm invited before this site sent a link per contractor, both read Not known rather than being reported as silent. Send again issues them one, and from then on their openings are attributed.
Where there is something recorded, click anywhere on the row to open that firm’s Delivery history — every message sent to them on this job, every reply, and the whole exchange in order. The firm’s name, the delivery badge and the messaged mark are all links to the same screen, so ctrl-click or the middle button opens it in a new tab and you keep your place in the list.
NoteClicking Send again, Message or Mark bid received does what that control says and nothing else — the row only takes a click that landed on none of them, and it never interrupts you selecting an address to copy. A firm with nothing recorded yet is not a link at all, because the screen behind it would have nothing to show.
A Messaged mark under that line means somebody here has written to this firm in their own words, and it says when and how many times. It is only on the rows it is true of, so it is worth scanning for. Open it to read what was said.
ImportantThe two counts are separate, and adding them gives the total mail. Invitations counts what the portal composed — the invitation and any revision notices. A message you typed does not raise it, so a firm invited once and written to twice reads "1 invitation" with a "Messaged 2 times" mark beside it, not "3". They are kept apart deliberately: the count that tracks invitations also tracks what a firm was last told about the drawings, and letting a note about sitework pricing advance that would quietly drop them off the list of firms who still have not heard the plans moved.
Bidding? is what that firm has told us, from the buttons in their own invitation: bidding, not bidding, or no answer yet. Silence is not a decline — it usually means nobody has opened it. Under that badge is Mark bid received, which records that their numbers turned up; it sends nothing, it can be undone from the same spot, and both directions are on the audit trail.
A firm with nothing marked beside its name holds the current version of the bid. Only the exceptions carry a badge there: Not told what changed means the drawings or the deadline have moved since they were last written to, and Will not receive mail means the address unsubscribed or bounced.
Send again re-delivers the invitation to one firm. Use it when a contractor deleted the email, never received it, or is holding a link that no longer opens.
It does not change the Invited date, and it does not create a second invitation.
If the plans or the deadline have moved since they were invited, the message they get says so in the first line — they are not sent a stale invitation quietly.
Firms who unsubscribed or whose address bounced show the reason in place of the button. That refusal cannot be overridden from here, because it is not ours to override.
The same address cannot be sent to twice within a few minutes. Mail takes that long to arrive, and a second copy does not make the first one faster.
Message writes to that firm on its own, in your own words — the thing you would otherwise open Outlook for. It does not re-send the invitation, and it does not change what they have been told about revised plans. See Writing to one firm.
Download the record saves the whole thing as a spreadsheet — every firm asked, every message, and every outcome. That is the version to hand to an owner or an auditor; see The solicitation record, as a file.
NoteA contractor can also ask for their own invitation back without contacting anybody — see When a contractor loses their invite link.
Project editor, Who has been invited, a firm’s name or its delivery badgeAmericon staff
The whole exchange with one firm about this job — what they wrote, what was written back, when each message left and what their own mail server said.
This is the answer to the phone call that starts "we never got the invitation". It shows the address the portal wrote to, the date and time each message left, and the reply from the mail server on the other end.
The head names the firm, the person there and their phone, and the job the screen is about, with its bid date. Under it is one row of facts about this firm on this job: when they were invited, what became of the last message, whether they opened it, what they said, whether a bid came in, and how many of their messages are waiting on us. Copy as a sentence turns the delivery facts into a line for pasting into a reply.
The conversation comes next, when there is any: what the firm wrote to the bid address and what somebody here typed back, in one list, newest at the top. Every message says who wrote it and when; each of theirs says whether it has been dealt with — Replied 1 Sep by Dana, Acknowledged 1 Sep by Dana — or is still Waiting for an answer, in which case Reply and Acknowledge are on the message itself. A reply says which question it answered. Clicking a subject on a project’s Correspondence panel lands you here, on that message.
The two halves are not held the same way, and the screen says so. Our side is the prose that was typed, in full, with the date and the person who wrote it. Their side is the opening of their message: the portal records that it arrived and how it began, and the message itself, with anything attached to it, stays in the bid mailbox and is never deleted from it.
Invitations and revision notices are not in the conversation; they are the ones the portal composed, and they are in the table underneath — Sent to this address — with what became of each one.
Two sections are folded at the foot, each with its counts on the line, and open on a click. Their record with us is this firm across every job they have been invited to. Elsewhere with this firm is their correspondence on the other jobs, one line per message, so a question you are about to answer can be checked against the one they asked in March — click the job to read that exchange in full.
The outcomes mean different things and call for different replies:
Accepted by their mail server — their end took the message. Ask them to check their junk folder before it is sent again.
Their mail server delayed it — a temporary refusal, usually greylisting or our own hourly limit. It is retried.
Bounced back — refused outright. The address is wrong or gone, and the right fix is a new address rather than another attempt.
Sending failed — the message never left us. Worth raising, and worth sending again.
Important"Accepted" is not "read". It means the contractor's mail server took the message, not that a person saw it — it can still have been filed as junk at their end. Saying more than that to a contractor is claiming something the portal cannot see.
Two lines on this screen mean the portal cannot tell you, and they are deliberately not written as failures:
Sent before delivery logging began — the invitation went out before the portal started recording outcomes. The invitation itself is still on the record with its date; there is simply nothing to show about its delivery.
No delivery record — the invitation record says a message went out after logging began, and no message was logged. Those two disagree. Raise it before promising the contractor anything.
NoteThe Invited date on the record is the fact that matters for a good-faith-effort audit, and it stands whether or not there is a delivery outcome beside it.
Project editor, Who has been invited, Download the recordAmericon staff
A spreadsheet of every firm asked to bid this job and what happened to each message — the version to hand to an owner or an auditor.
The screens answer a question somebody is asking now. This answers the one asked months later by somebody who was not in the room: show me that this job was solicited widely, and show me the evidence. It downloads as a spreadsheet you can attach to an email or file with the bid tab.
One row per message, plus a row for every invited firm the delivery log has nothing for. The columns are:
Firm, Email and Invited — who was asked and when. The invitation date is the fact a good-faith effort is judged on, and it is in the file whether or not there is a delivery outcome beside it.
On the invitation record — "No" marks mail this site sent about the job that was not an invitation: a plan-holder notice, or a coordinator’s test send. They are included so the file is a complete account rather than a selection.
Outcome and What the mail server said — the same words the Delivery history screen uses, and the recipient’s own reply where there was one.
ImportantA firm with no delivery outcome has not been left out and was not missed. The column says why in words — usually that they were invited before the portal started recording outcomes. Exporting the delivery log on its own would have dropped those firms entirely, which is why this file is built from the invitation record instead.
NoteIf a project has more logged messages than one file can carry, no file is produced and the screen says so. A partial record is indistinguishable from a complete one once it is on somebody else’s desk.
Anywhere — this is the answer to a phone callAmericon staff
They can get it back themselves from the portal, or you can send it from Who has been invited. Never regenerate the access code to fix one lost email.
This is the commonest support call on the portal, and there are three ways to answer it. Two of them are right.
Let them do it. A contractor who follows a dead or missing link lands on a page offering Send my invitation again. They enter the address the invitation was sent to and it goes back to that address. Nobody at Americon has to be at their desk, which matters most on a deadline afternoon.
Do it for them. Open the project, go to Who has been invited, find the firm and press Send again. This is the route when they are on the phone, or when the address they are asking from is not the one that was invited.
ImportantDo not regenerate the access code to solve a lost email. Regenerating kills the link for every firm on the job — dozens of contractors mid-bid lose access, to fix one person's inbox. The access code is shared by everyone invited, so sending it again to one firm gives away nothing they were not already given.
The self-service page never says whether an address was recognised, and that is deliberate: a page that confirmed it would be a way for a competitor to learn who is bidding a job. It shows the same sentence either way, so a contractor who typed the wrong address sees exactly what one who typed the right address sees.
The commonest genuine failure is not a lost email at all. The invitation went to the office manager and the estimator is asking from their own address, which was never on the list. The self-service page will find nothing — invite the estimator's address properly instead, so the record shows they were asked.
NoteA private project's links stop working 30 days after its bid deadline. Past that, no amount of resending helps, and the row says so rather than sending a dead link.
The other half of regenerating the access code: puts a working link back in the hands of everyone already invited.
Regenerating the access code stops every link already sent. This is how the firms who should still have access get a working one back.
It is a separate press rather than part of regenerating, on purpose. The usual reason to regenerate is that a link reached somebody it should not have — and re-sending automatically in the same click would mail a fresh link straight back to them. Rotate first, look at who is on the record, then decide.
Every firm on the invitation record is sent the invitation again, carrying the current access code.
The date each firm was first invited does not change.
Unsubscribed and bounced addresses are excluded, and you are told how many.
If an invitation run is still going out, this refuses rather than taking it over — starting a second run would abandon the first one part-way.
NoteTo send to some of the list rather than all of it, use Send again on individual rows in Who has been invited instead.
How many distinct devices have opened this project's invite link, in total. Zero opens two days before a deadline is a delivery failure, not a quiet week.
Who has been invited says, per firm, whether their own link was opened. This is the same fact added up across the whole job: how many distinct devices have opened the invite link at all, and when the first and most recent open happened.
The two answer different questions. The per-firm column says which firm is about to miss a deadline. This number says whether the send got out of the building — a stale list, a message filtered as spam everywhere, and a link pasted wrong all look identical from the per-firm view, and all three are still fixable if you notice before the deadline.
Shown on private projects only. A public project is on the calendar for anyone to find, so its open count says nothing about whether an invite was delivered.
It counts devices, not people, and never records who they were. One contractor opening the link on a phone and a laptop counts twice; a firm whose link was forwarded round the office counts once per device.
No IP address, browser or referrer is stored. A device is reduced to a one-way hash purely so one person refreshing four times counts once.
That list is capped, and discarded once the bid is well past its date. The per-firm record of who opened what is part of the solicitation record and stays with the project.
NoteThe first open of every project is written to the audit trail, because "the invitation reached somebody at 9:14 on Tuesday" is worth being able to prove later. Later opens are counted, not logged.
Issues a new access code and kills every link already sent. Use it when a private link has gone somewhere it should not have.
This is the revocation control. Pressing it issues a fresh access code; every invite link handed out up to that moment stops working immediately.
ImportantEveryone you already invited loses access, including contractors mid-bid. The notice afterwards tells you how many firms that is.
Once you have regenerated, Send everyone the new link appears below it. That is how the firms who should still have access get a working link back — the invitation screen will not do it, because it skips everyone already invited.
Every regeneration is recorded — who did it, when, and why — so the question "when did that link stop working" has an answer later.
A public project has no access code and nothing to regenerate; the panel says so instead of offering a button that would do nothing.
NoteThis is not the way to help one contractor who lost their email. See When a contractor loses their invite link — resending to one firm gives away nothing, and costs nobody else their access.
Moves the project to the Trash. It leaves the calendar and every list at once and invite links stop working. An administrator can restore it.
Deleting is recoverable — the project goes to the WordPress Trash, not to nothing — which is why both staff roles are allowed to do it. You are asked to confirm, and the panel tells you how many plan files are attached before you decide.
The moment it is deleted:
it disappears from the bid calendar, both project lists and the subscribable feed,
its invite links stop working,
and contractors holding those links lose access to the plans.
NoteAn administrator can restore it from the WordPress Trash. If a project is simply finished rather than mistaken, Close bidding is usually the better move — it keeps the record, the plan holder list and the invite links intact, and it is one press beside the status badge.
A plan holder is a contractor who has taken the drawings. Keeping that list is the only way the portal knows who to tell when something changes — and telling them is the whole reason it is collected.
Who has taken the plans
Project editor, Plan files, below the file listAmericon staff
Contractors who gave their name and email before downloading the plans. Each row shows when they took the plans and when the portal last told them about a change — "Not yet" means it has not.
Each row is a contractor who filled in the short form before downloading: company, contact name, email, when they took the plans, and when they were last notified.
The Notified column is the one to read before issuing an addendum. "Not yet" means that contractor has heard nothing from the portal since they downloaded.
ImportantThis list is a courtesy record, not proof of identity. Anyone can type anything into the form; the email address is checked for a valid shape and nothing more. It must never be treated as verification, and it grants no access on its own.
NoteContractors may skip the form. An empty list does not mean nobody has the plans — it means nobody chose to say so.
Project editor, Plan files, plan holders panelAmericon staff
Emails everyone holding the plans. Write only what changed — the current revisions, the bid date and a project link are added for you.
This is what the plan holder list exists for. Use it whenever a drawing is revised, an addendum is issued, or the bid date moves.
Open Notify these plan holders.
Check the subject, which is pre-filled with the project name.
Under What changed, write only the change itself: *"Addendum 2 has been issued. Sheets A-101 and A-102 are superseded."*
Press Send to myself first and read the result.
Then press Send to all N.
Added to every message automatically: the current plan revisions, the bid due date, a link to the project, and an unsubscribe link. You do not need to write any of it.
NoteSend to myself first is not a nicety. These recipients are outside contractors on a live bid; a typo reaches all of them at once and cannot be recalled. The rehearsal costs one click.
Sending happens in the background in batches, so a long list does not depend on you keeping the page open. A progress line reports how many have gone and how many remain; you can leave the page and come back to it. Contractors who have opted out are skipped automatically.
Sent automatically — no control to pressAmericon staff
Plan holders are warned before their bid closes. What is closing on your own jobs reaches you in the end-of-day summary.
A warning goes to plan holders 48 hours before their bid closes, without anyone pressing anything, because the failure mode is quietly missing it.
Staff are not sent a separate reminder. What closes within two days, and what closed without its bids being recorded, are two sections of the end-of-day summary — beside the questions waiting for a reply and the trades nobody is on — so it arrives as one email about your jobs rather than a second one about everybody's.
NoteTwo days, not three. A project is badged Closing soon from 72 hours out, which is a different threshold on purpose: the badge is there to be noticed by somebody already looking at the list, and the email is there for somebody who is not. Do not read the badge appearing as a sign the warning has gone out.
Every project records which reminders it has already sent, and that record is checked before each send — so a reminder cannot go out twice even if the site's scheduler runs a job more than once.
Reminders go through the same sending path as manual notifications, which means opt-outs are honoured in both.
One shared list of everyone Americon invites to bid, replacing the distribution lists that used to live in individual Outlook profiles.
What the directory is for
Contacts, from the main navigationAmericon staff
Everyone shares one list. A contact added or corrected here is corrected for every coordinator, on every job, from that moment.
Invitations used to go out from whichever distribution list the sending project manager kept in their own Outlook profile. That list was private to one person, left with them, and could not be reported on — so nobody could answer "who did we invite to this job?" a month later.
This is that list, held once and shared. Search by company, name or any part of an email address; narrow by trade, city or state; open a contact to correct it.
One row per person, not per company. Two estimators at the same firm are two contacts, invited independently.
Search is a substring — typing acm finds *Acme*, and typing the middle of an address finds it too.
The list follows the typing. It narrows a moment after you stop, over the whole directory rather than the page in front of you, and emptying the box puts everybody back. The *Filter* button still works and does the same thing.
Ticks travel with you. Contacts you have ticked stay ticked through a search, a sort, a page turn and opening a contact — and any the current filters no longer show are listed under *Also selected* at the foot of the table, where you can see them and untick them.
Inactive contacts are hidden by default. Switch Status to *Both* to see them.
Click a column heading to sort by it, and again to reverse it. The sort stays with you through the filters, the pages and opening a contact. On a phone the headings are not on screen, so the same columns appear as a row of *Sort by* buttons above the list.
The filters at the top of the directory. The trade grid carries a count against each trade, so you can see the size of a selection before making it.
Two of those columns are worth knowing about. Location sorts by the town, because that is what the column shows — to work by state, use the state filter, which is the tool for it. Reachable starts with the problems at the top, since finding the addresses that have stopped working is the only reason to sort by it.
NoteBlank cells sort to the bottom whichever way round the column is, in both directions. A contact with no trades on it is missing an answer rather than holding an early one, and reversing a column to see the end of the alphabet should not hand you a screen of dashes instead.
NoteThere is no "my contacts". Everything here belongs to Americon rather than to whoever added it, which is the whole point of moving it out of Outlook.
Contacts, on an open contact, under the formAmericon staff
Under the details somebody typed about a firm are the two things the firm did: their record across every job, and every message to and from them.
Everything in the form above a contact is what one of us wrote down about them. The two panels underneath are the parts they wrote themselves, and they are what the page is actually opened for between bids — deciding whether to ask this firm again, or working out what to say to one that has gone quiet.
Their record with us counts across every job: how many they were invited to, how many they opened, where they said they were bidding, where they passed, and where they never answered. Bids marked received are counted on a line of their own, and only once there is one — a permanent "0 bids received" beside a firm's name is an accusation made out of a column nobody was filling in a year ago. The same rule applies to Awarded 2 of those jobs, which appears once the firm has been given work through the portal and not before.
Under the counts, where it applies, is the sentence they add up to. Three firms can look identical in those numbers and be three different problems, so the panel says which:
Mail to this address is not arriving — their server has refused everything and accepted nothing. That is the address, not the firm: the wrong contact, somebody who has left, a mailbox that no longer exists. It has been counted as invited on every job in the meantime, so the coverage figures for that trade have been overstating themselves for as long as it has been wrong. Worth a phone call and a corrected address.
Nobody has ever opened an invitation from this address — and where the mail log shows their server accepted the mail, it says so. What happens after a server accepts a message is not something this portal can see, and the difference between saying that and not saying it is the difference between a prompt and an accusation.
Conversations is the other half: everything this firm has written to the bid address, and everything written back to them from a job, in one list in the order it happened. Each entry names the job, says whether it was marked a bid or a question, counts what was attached, and shows the opening of what was written. Older messages beyond the most recent are not listed here — they are still on the jobs they belong to.
NoteInvitations themselves are not in that list. The record above counts those, and a conversation with forty identical invitation rows in it would bury the two sentences worth reading.
NoteNeither panel is drawn when it has nothing to say — a firm invited once, or one that has never written and never been written to. That is most contacts, and a permanent empty box on four hundred screens teaches people to scroll past the place the answer appears.
The same Their record with us panel appears on the delivery screen inside the invitation console, drawn from one place so the two cannot word it differently.
One contact per address, and the address is what identifies them. Changing it does not update a person — it makes a different contact.
A contact is identified by their email address and nothing else. Two people cannot share one address in the directory, and one person with two addresses is two contacts.
That is deliberate. You can only send one message to estimating@acme.com however many people read it, so a second row would mean inviting that firm twice.
A shared estimating mailbox holds one name — whoever was entered most recently. That is normal and nothing needs doing about it.
Somebody who changes firms gets a new address, so they arrive as a new contact. Their old one keeps its history until it starts bouncing.
Names are not treated as important. People spell them differently and misspell them; as long as the address is right, the contact is right.
ImportantCorrecting a typo in an address is fine and is the right thing to do. But an address that belongs to somebody else entirely is a different contact — add them rather than editing over the person who was there.
The filter rail, and on each contactAmericon staff
Chosen from a fixed list rather than typed, so a filter finds everyone. Ticking several means ANY of them, not all.
Trades are picked from a list a manager maintains, not typed in. Free-form tags look easier and fail quietly:
Typed
Contacts
Electricians
31
Electrical
12
Electric
4
electrician
2
Filtering "Electricians" there returns 31 of the 49 people meant, and nothing anywhere says so. A filter that quietly returns two-thirds of the right answer is worse than one that returns none, because nobody double-checks a plausible result — and the cost lands as a subcontractor who stopped being invited without anyone deciding that.
The number beside each trade is how many active contacts carry it. Read it before filtering: it tells you whether an empty screen means the filter is wrong or the trade genuinely has nobody in it yet.
NoteTicking two trades means either of them, not both. "Show me the electricians and the concrete subs" is one selection for a job needing both. Asking for people who are simultaneously an electrician and a concrete sub would return almost nobody.
A trade accumulates on a contact over time as people learn what a firm actually does. Importing never removes one — that is done here, on the contact, where you can see what you are taking away.
On each contact, under Trades and GroupsAmericon staff
Four dates typed from the documents in your inbox. A lapsed one is said beside the firm when inviting, on the tabulation, and at award — and never blocks anything.
Every subcontract needs a current certificate of insurance, a current licence and a W-9 on file, and many owners cap the safety rating (EMR) at 1.00. The prequalification products the big platforms sell collect those documents from the contractor. This portal takes no uploads from contractors, by decision — so it keeps the part that actually prevents a bad award: when each one expires, typed by you from the document that arrived by email.
Field
What it drives
Insurance certificate expires
"Insurance certificate expired Mar 1" beside the firm on the invitation basket, the tabulation and the award panel once the date passes; "expires soon" in the thirty days before.
Licence expires
The same, for the licence.
W-9 received
Only ever mentioned at award, where "No W-9 on file" is a subcontract that cannot be paid.
Safety rating (EMR) and the year
Flagged when above 1.00. Shown, not judged — whether 1.05 matters is a question for the job.
NoteA blank is "nothing on file", which is different from "expired" and is only pointed out at award. A directory that has just started tracking this must not flag every firm on it, and it does not.
Dates can be typed as 2027-03-01 or 3/1/2027. Anything that is not a date is dropped rather than stored as a guess. The contact export carries all five columns and the import reads them back, so a spreadsheet of certificate dates can be loaded in one go.
ImportantIt never blocks. A coordinator may well invite a firm whose certificate lapsed last week and ask for the new one in the same breath, and a project manager may already have it in their inbox. The portal says what it knows; the decision stays with the person.
Export your contacts folder to CSV and upload it. Nothing is written until you have seen a preview of exactly what it would do.
Two ways in. Use the file unless you cannot.
Upload a CSV. The normal route, and the only one that carries phone numbers, companies and Outlook categories. In Outlook: File → Open & Export → Import/Export → Export to a file → Comma Separated Values, then pick the contacts folder. Google Contacts and any spreadsheet export the same shape.
Paste a list of addresses. For a distribution list, which is a single item stored *inside* a contacts folder rather than contacts in it — so the export either skips it or emits one row with everybody mashed into a field. Addresses that live only in the Global Address List are the same.
To get a distribution list out of Outlook: start a new message, drop the list into the To: field, press the + beside it to expand it into individual people, then select the whole field and copy. Paste that in.
NoteA pasted list is names and addresses only. Anything you paste can be filled out later from a file, or by hand on the contact.
The paste box understands what actually comes off the clipboard — Bob Smith <bob@acme.com>;, the bracketed form, bare addresses, one per line, or all on one line. A name in front of an address is kept as the contact name.
NoteRe-importing the same file is safe and is the normal way to pick up a few new names. Contacts already in the directory are matched on their email address and updated; they are not duplicated.
ImportantAn import never removes a trade and never clears a field the file does not have a column for. That is what stops a bare name-and-address export wiping the phone numbers and trades somebody entered by hand.
Taking contacts out, and moving them between sites
The toolbar above the contact listAmericon staff
The button says how many contacts it will write. That number is what your filters are showing — if it is lower than you expected, a filter is on.
Export all N writes every contact matching your current filters to a CSV — not just the page you are looking at. It opens in Excel or Google Sheets, and it is written in the shape this site's own importer reads, so it can be loaded straight into another copy of the portal.
Read the number on the button before pressing it. It is the same count as the line above the list, and it is there because the contact list opens filtered to Active. An export taken without noticing that is missing every inactive contact, and nothing in the file says so.
To move contacts from one site to the other: export here, then use Import contacts on the other site and upload the file. Contacts are matched on their email address, so re-importing is safe and updates rather than duplicates.
ImportantReconcile the trades first. A trade that does not exist on the receiving site is dropped at the door — the contacts arrive, their trades do not, and nothing reports it. Compare Contacts → Trades on both sites and add anything missing before you import, not after.
Three things deliberately do not travel with the file:
Status. It is in the file so you can read it, but the importer ignores it and every contact arrives Active. Deactivating a firm is a decision somebody makes on the contact, not something a spreadsheet column does silently.
Who has been sent what, and who opened it. That is a record of messages *this* site sent. Carrying it across would make the other site claim a history it does not have.
Anything you left out of the file. An import never clears a field the file has no column for, so a partial export cannot wipe phone numbers or trades already entered on the other side.
NoteThe file is named for the site it came from — americon-contacts-bidding-… or …-dev-…. Two exports in one downloads folder are otherwise indistinguishable, and importing the wrong one merges the wrong directory in.
ImportantThe file is every email address in the directory, in one document. Treat it the way you would treat the invitation links: it is fine on a company machine and it is not something to forward.
Contacts → Import contacts, after choosing a fileAmericon staff
Set which column means what, then read the sentence at the top: it says exactly how many rows would import and how many need you first. Nothing is written until you press the button.
An Outlook export has around ninety columns and you need six of them. The recognised ones are matched automatically; everything else stays on Do not import, which is the correct answer for it.
Change any dropdown and press Update the preview to see the effect. Nothing is written by that.
Read the sentence at the top of the summary first. It says what pressing the button would do — *"78 of 94 rows would be imported. 16 need a decision from you first."* It is coloured for the answer: green when the whole file imports cleanly, amber when something wants looking at, red when nothing would be imported at all. Everything below it is the evidence it was drawn from.
Then the counts, which always cover every row in the file:
Count
What it means
New contacts
Not in the directory. They will be added.
Already here, updated
Matched on their email address. Only fields that differ are changed.
Repeated in the file
The same address twice. The first one is used and the rest are skipped — worth fixing in the file rather than here.
No usable address
No email, or not a real one. A contact who cannot be emailed is not a contact this directory can use.
Cannot be mailed
Bounced or unsubscribed. Still imported, still flagged.
At our own domains
Colleagues and conference rooms. Left out unless you say otherwise.
Findings appear below the counts when they apply. None of them stops the import:
Addresses inside our own organisation. The one finding that changes what gets written — see [[contacts-import-internal]].
Contacts per email domain. Not a problem, just a census. A file that is mostly one or two domains is somebody's whole mailbox rather than a bidder list.
Categories that are not trades yet. Outlook categories that are not on the trade list, with how many contacts carry each. This is the useful half of the trade list being fixed: add the ones worth having and import again.
States that were not recognised. Full names like *Wisconsin* are converted for you. Anything left over is imported with no state, so those contacts will not appear in a region filter.
One firm, spelled more than one way. Contacts at the same email domain filed under different company names, which makes one firm look like two everywhere. Nothing is corrected automatically — which spelling is right is your call.
Finding the rows that need you. The table lists the file in its own order, which is how you find a row again in the spreadsheet — but twelve problems among four hundred rows are invisible that way, and the table stops at a hundred. Switch it to Needs a decision to list only those, however far down the file they are.
Under the table, Copy the flagged rows opens a plain-text block: every flagged row with its address and its reason, all of them, not just the first hundred. Paste it beside your spreadsheet and work down it. Fixing the source file means the next import is clean as well, which patching contacts afterwards does not.
NoteEither decision is fine. Import now and tidy up in the directory, or fix the file and start over — whichever is less work. Nothing is written until you press the button, and starting over costs only the upload.
Contacts → Import contacts, before committingAmericon staff
Colleagues and conference rooms are not bidders. They are skipped unless you untick the box.
An Outlook export is usually somebody's whole address book, so it arrives full of colleagues. The first real one tried here held 94 contacts and every single one was internal — staff at our own domains, plus three conference-room mailboxes. Not one subcontractor.
Nothing about that file is broken, which is the point. Every row reads correctly and the preview reports 94 healthy new contacts. Committing it would have put the whole company in the bidder directory, and the next project invitation would have gone to all of them.
So two kinds of address are recognised and left out by default:
Our own mail domains — the domain we send bid invitations from, and the domain this site runs on.
Microsoft 365 tenant addresses ending .onmicrosoft.com. Nobody puts one on a business card; they are room and resource mailboxes.
ImportantA room mailbox processes what it receives automatically, so replies come back from a conference room. And bulk mail from our own address to our own domain is what a spam filter is built to distrust — it damages the reputation every real invitation depends on.
Sibling companies are not detected, because nothing in the software can know which other firms are ours. Instead the preview shows a count of contacts per email domain. A file that is mostly one or two domains is somebody's mailbox rather than a bidder list, and that census is what makes it obvious at a glance.
NoteThe box can be unticked if you genuinely want a colleague in the directory — an estimator who should receive invitations, say. They are then treated exactly like any other contact.
A saved set of contacts, so the same twenty firms need not be rebuilt from filters every time.
A filter answers "who is a roofer in Monroe County". A group answers "who do we actually send this to" — which is a judgement, not a query, and it is worth keeping once somebody has made it.
Name it after the selection it saves: *Southern Wisconsin regulars*, *Concrete shortlist*, *Municipal work*. Groups are optional and earn their keep once the same firms go on invitation after invitation.
There are two ways to put contacts in a group, and for anything more than one firm the first is the one to use.
From the contact list, in bulk. Filter to what you want, tick the rows, and use Add to group on the bar that appears. Shift-click picks a range. If the filters match more contacts than one page shows, Select all N matching takes the whole set including the pages you have not looked at. You can type a new group name straight into the bar instead of picking one — the group is created and filled in the same press.
From a single contact. Open a firm and tick the groups it belongs to. This is the right direction when you are already looking at one contact and know which lists it belongs on.
The count on the bar is what will be changed, and it is worked out again at the moment you press the button — so it acts on the contacts the filters describe, not on a number that has gone stale.
Add to group skips anybody already in it, and tells you: "12 added, 40 chosen" means 28 were already there.
Remove from group takes the selection out of the group. It cannot delete a contact or a group — only the membership.
Renaming keeps every member. The name is a label on the group, not its identity.
Deleting forgets the grouping and nothing else — every contact stays in the directory. It asks you to type the name first, because a group is shared and the person deleting it may be the only one who thinks it is finished with.
Clicking a group name shows its contacts, filtered. Adding a contact from there pre-ticks that group.
NoteUnreachable contacts can still be grouped. Filing a bounced address under *Masonry* is a filing decision, not a decision to write to them — the invitation screen still refuses to send.
NoteAn import can also put everything it brings in straight into a group, new or existing.
ImportantEvery group is shared and unowned. Anyone on staff sees all of them and can rename or delete any of them, including one somebody else built. There is no private group.
The closed list every contact is filed under. Add the ones you actually filter by.
The trade list is closed on purpose. Free text gives you *Concrete*, *concrete* and *Concrete Work* as three separate filters, and a directory where the filter misses a third of the firms is worse than one with no filter at all.
So extending it is deliberate, and done here rather than beside the checkboxes on a contact — a trade added there would look like a property of that one firm, which is how a list ends up carrying *Concrete (Baraboo)*.
Action
What happens to contacts
Add
Nothing yet. The trade becomes tickable on every contact.
Rename
Nothing. Every contact classified under it keeps that classification — the label changes, the classification does not.
Remove
Nothing. Contacts keep the classification, so adding the trade back restores the filter exactly.
That last row is why removing a trade asks for no confirmation: it destroys nothing. Deleting a group does ask you to type the name, because that one cannot be undone.
NoteKeep the list short enough to scan. Ninety trades is as hard to use as none — and an import tells you which categories are actually worth adding, with a count of how many contacts carry each.
ImportantA contact classified under a removed trade still carries it and still shows it, so the classification is never silently lost. It simply cannot be ticked on anybody new until the trade is added back.
Inactive is almost always the right choice: it keeps the contact and its history and takes them out of every selection.
Inactive hides a contact from the default view and leaves them out of selections, while keeping the company, trades, phone number and the record of every job they were invited to. It is reversible.
Delete removes the contact outright. There is no undo, and everyone shares this list.
ImportantDeleting somebody to stop inviting them also erases the evidence that they were ever invited — which on public work is the record that matters most. Use Inactive unless the row is genuinely junk, like a typo address that was never real.
Deleting asks you to type the contact's email address. That is on purpose: a confirmation you can click through without reading is not a confirmation, and this one cannot be undone.
NoteEvery deletion is written to the audit trail with the company, name and address, so "where did Acme Concrete go?" has an answer even though the row is gone.
What happens after you press send: who the message appears to come from, where a reply lands, why a long send sometimes pauses, and what the portal does when an address stops working.
Who the message comes from, and where replies go
Applies to every message the portal sendsAmericon staff
Everything sends from one Americon address so it passes the receiving server's checks — but the reply goes to whoever is assigned to that project, not to the shared mailbox.
Every message leaves as Americon Construction, from a single company address. That is not a style choice: mail servers check that the sender matches the domain that authorised it, and a message claiming to be from a personal address while leaving through a different account is what lands in a spam folder.
Replies are handled separately, and where they go depends on whether the portal is reading the bid mailbox yet.
Once the bid mailbox is being read, every invitation carries its own reply address naming that job and that firm, so a reply files itself against the record and the people on the job are emailed that it arrived. This is the arrangement the portal is built around.
Before that, a Reply-To points at the project manager assigned to the project, or the coordinator if no manager is set. The contractor reaches a person; the portal has no record of it.
If neither is set and the bid mailbox is not being read, no Reply-To is added at all and replies go to the company address. Assigning somebody on the project is what fixes that.
NoteThat last case is not lost mail, but it is slower. Replies reaching the company address are picked up when the portal reads that mailbox and filed against the job if they can be matched to one — a detour of hours on a question that had an owner all along. See How a reply reaches the job.
NoteThe sending address itself is set in the site configuration rather than on a settings screen, so it cannot be changed by accident — and it has to match the mailbox the site actually authenticates as, or messages start failing the receiving server's checks.
ImportantA message you send from your own Outlook instead has none of this. It is invisible to the portal, no opt-out is honoured, and there is no record of it three weeks later when somebody asks whether a contractor was told.
The mail host allows a fixed number of messages an hour. The portal counts them and pauses before hitting the ceiling, rather than being cut off partway through a list.
The mail provider caps how many messages an account may send per hour. Going over it does not queue anything — the provider simply refuses, and the account cannot send at all until the hour has passed. That has happened here before, and it is the one email failure this portal has actually had.
So the portal keeps its own count and stops short of the ceiling on purpose. A notification to a long list is sent in batches, and if the remaining budget will not cover the next batch, the send pauses and resumes on its own once the hour has rolled forward.
Nothing is lost when a send pauses. It picks up where it stopped.
You do not need to keep the page open, or press anything again.
Some of the budget is held back for one-off messages — a password reset, a single invite — so a large mailing cannot lock out the person trying to get an account working.
NoteIf a send seems to have stalled, look at Tools → Americon Self Check. The hourly budget has a row there showing how much is left and when it next frees up.
ImportantDo not work around a pause by sending the rest from your own mail client. The portal has already recorded who it reached; a manual send on top of that produces duplicates for some contractors and no record for any of them.
Applied automatically to every recipientAmericon staff
An address the mail server rejects outright is set aside and not tried again. A temporary failure is only set aside after it repeats.
Contractors change jobs and companies fold, so addresses collected over a few years will contain some that no longer exist. Continuing to mail them is not merely useless — a sender who keeps mailing dead addresses is treated as less trustworthy by receiving servers, which starts to affect delivery to everybody else on the list.
The portal therefore watches what the receiving server says and reacts differently to the two kinds of failure:
What came back
What it means
What the portal does
Rejected outright
No such mailbox. It is not coming back.
Set aside immediately. Not tried again.
Temporary failure
Mailbox full, server busy, greylisting.
Counted. Set aside only after it happens three times.
Sending limit reached
Nothing is wrong with the address.
Nothing. The send pauses instead — see the hourly limit.
Unsubscribed
The contractor asked to stop.
Set aside permanently.
A single temporary failure clears itself the next time that address is reached successfully, so a contractor whose mailbox was full for a day does not slowly accumulate strikes across the year.
NoteTelling the difference matters more than it sounds. A run that hits the hourly limit gets a refusal for every remaining recipient at once — and treating those as bad addresses would set aside most of a mailing list in a single afternoon.
ImportantAn unsubscribe is never undone by anyone here. That is a decision the contractor made, and the verification step below deliberately refuses to reverse it.
NoteThe portal learns most of this by reading the mailbox invitations are sent from, an hour at a time. Some of what arrives there is not a failure at all but a contractor writing back, and that is raised for a person to answer — see The mailbox invitations come back to.
Beside any contact marked as bouncedAmericon staff
A bounced address cannot simply be re-ticked. Someone has to confirm the address is right — by phone, or from a reply — and that confirmation is recorded against their name.
An address the portal has set aside is shown as such and cannot be selected for a send. Clearing that is deliberately a step rather than a checkbox, because the reason it was set aside was a mail server stating the address does not exist — and disagreeing with that on a hunch just repeats the bounce.
Confirm the address independently: a phone call, a reply from the contractor, or a corrected address on a recent bid.
Open the contact. The panel headed This address bounced sits under the form.
Say briefly how it was confirmed, and press Clear and allow sending. That note is kept.
The address becomes selectable again, and the audit trail records who cleared it, when, and what they said. If it bounces again it is set aside again — the verification is a statement about one moment, not a permanent exemption.
The same clearance is offered in two other places, and all three do the same thing: Fix this on a greyed row of the invitation screen, and Clear beside the address on the Bounce log. Use whichever you are already looking at.
ImportantAn address that unsubscribed cannot be cleared this way. An unsubscribe is not a bounce and has its own separate step — see Putting an unsubscribed contact back on the list.
NoteIf the address was simply wrong — a typo, or an old one — correct the address itself rather than verifying the broken one. A corrected address is a different address, and starts clean.
Contact directory, and Tools → Americon Self CheckAmericon staff
Unsubscribing takes effect immediately and marks the contact inactive. Nothing is deleted, and only the contractor themselves can undo it.
Every message the portal sends carries an unsubscribe link, and it works the moment somebody uses it — no waiting, no queue, nobody to ask.
Three things happen at once:
The address stops being mailed, and stays stopped.
The contact is marked inactive in the directory. They drop out of the default view and out of every selection, so nobody has to remember.
The unsubscribe is recorded with its date, so the list can be read back later.
ImportantNothing is deleted. The contact keeps their company, trades, phone number and the record of every job they were invited to. Deleting somebody who asked to stop hearing from you would also erase the evidence that they were ever solicited — on public work, the record that matters most — and would let the next Outlook import quietly add them back with no memory of the opt-out.
The self-check page reports how many unsubscribed in the last thirty days. Read that number as a comment on what was sent rather than on the addresses: a run of them in one month usually means one mailing reached people who were not expecting it.
NoteUnsubscribing is not the same as declining one job. A contractor passing on a single bid should use *Not bidding this job* on the project — they will still hear about the next one. The unsubscribe page says so, because the commonest reason people press it is "not this one", and losing a subcontractor permanently over one job they were passing on is much the worse outcome.
Beside any contact marked unsubscribedAmericon staff
Only when the contractor has asked. You record how they asked, and that note is kept — it is the evidence the request came from them and not from us.
A contractor who unsubscribed and later rings up wanting invitations again can be put back on. This is the only thing that reverses an unsubscribe.
Open the contact.
Use Opt back in.
Write how they asked: *"Phoned 12 Aug, Bob asked to be re-added."* This is required.
The address becomes mailable again and the contact goes back to active in the directory.
ImportantThe note is required because it is the record of consent, not a formality. Mailing somebody after they opted out is permitted only when they subsequently asked for it — so the file has to show who asked, when, and how you know. "We wanted them to bid this job" is not that, and an empty box would leave nothing to tell the two apart eighteen months later.
NoteDeliberately separate from clearing a bounce. A bounce is an observation about an address and can be wrong. An unsubscribe is a decision a person made, and the only thing that changes it is that person changing their mind.
Recorded automatically for every messageAmericon staff
Every message the portal sends is recorded with its recipient, its project, and whether it was delivered, deferred or rejected.
Until now the portal could say a message had been handed to the mail server and nothing after that. The log records the outcome as well, per recipient, which is what makes "was this contractor actually told?" a question with an answer.
Accepted by their mail server — taken by the far end for delivery.
Their mail server delayed it — a temporary problem, or our hourly limit. It will be tried again.
Bounced back — refused. That address is set aside.
Sending failed — the message never left us.
Held back before sending — the recipient had unsubscribed or was already set aside.
Those are the same words the Delivery history screen uses for one firm, and the same words in the downloaded solicitation record, because they are the same outcomes — see Proving an invitation was sent.
The log is kept per project as well as overall, so the record of who was invited to price a job stays attached to the job. On a public bid that record is also the documentation of a good-faith effort to solicit widely — which is worth considerably more when it was collected automatically at the time than when it is reconstructed afterwards.
NoteA rate of failures across all sending shows up on Tools → Americon Self Check rather than needing to be watched. A healthy list produces very few; a sudden rise usually means a configuration change rather than a hundred contractors leaving at once.
NoteNothing here is deleted on a schedule. The sending record and the audit trail are both kept indefinitely, deliberately — a record that ages out is no use to the question it exists to answer, which is usually asked long after the job.
Dashboard, under the figures — **Bounce log**Americon staff
What came back undelivered, and every address the portal has stopped writing to. Stop mailing an address here, or put one back when you know it is good again.
Invitations are sent from a real mailbox and things come back to it — addresses that no longer exist, out-of-office replies, notices from mail hosts. The portal reads that mailbox hourly and deals with most of it on its own. This screen is the part that needs a person, and it is in two halves.
Needs a look is the queue. Each row is something the portal would not act on unaided: a delivery report whose code does not prove the address is dead, an automatic reply, a notice from a host. Two buttons clear a row — Suppress stops the portal writing to that address, Dismiss takes the row off the list and changes nothing else.
NoteSome rows carry no address at all — a report too large to be read is the usual one. Those offer Dismiss only, because there is nothing to suppress, and a button that appeared to work while doing nothing would be worse than its absence.
Not being mailed is the list itself: every address the portal is currently holding back from, why, since when, and any note. An address here is skipped on every send, on every job.
Everything on this screen is open to any coordinator or project manager. You are the one who rang the firm and was read a new address, so you are the one who can judge whether it is good again — an approval step in front of that would only be somebody else agreeing with you a day later.
There are two ways back onto the list, because there are two ways off it, and they are not the same act. The screen offers whichever one applies to that row and never both.
How it got on the list
How it comes off
What is asked of you
Bounced — a mail server refused it
Clear
A note if you have one. It is not required.
Unsubscribed — they asked to stop
Record consent & restore
A note saying how they asked. Required.
A bounce is an observation about an address. Observations can be wrong — a server can refuse a perfectly good mailbox for a week — so clearing one needs nothing but your knowing better. An unsubscribe is a person's decision, and the only thing that reverses it is that person asking. The note is required there because the note *is* the consent record: it is what answers "why is this firm being mailed again after opting out?" eighteen months later, when nobody remembers the phone call.
ImportantClear an address because you know it is good now, not to tidy the list. An address a server genuinely refused, put back and mailed again, teaches that server to distrust everything sent from the bid address — on every job, for months. That cost lands on invitations that have nothing to do with this firm.
NoteEvery clearing and every restore is written to the audit trail with your name, the address and the note, and the audit trail cannot be edited. That is deliberate: it is what makes it safe for this to be your decision rather than needing somebody's permission.
Refresh reads the mailbox immediately instead of waiting for the hour. It will not run twice within a minute, and if another read is already going it says so rather than appearing to do nothing. The line beside it always says how long ago the mailbox was last checked.
ImportantIf the screen says no mailbox password is configured, nothing is being collected at all. Bounces are still happening — they are simply not being recorded, so addresses that have stopped working go on being mailed. That needs an administrator.
A contractor replies to an invitation and it appears on the job — the question, the bid, and the drawings that came with it. This is where that lands, who can open it, and what to do when something does not arrive.
How a reply reaches the job
Happens automatically; nothing to pressAmericon staff
Every invitation carries a reply address unique to that job and that firm, so a contractor pressing Reply lands on the right record without anybody sorting mail.
Contractors never sign in and never upload anything. They reply to the invitation from their own email, the way they would to any other message, and the portal does the filing.
That works because each invitation is sent with its own reply address — something like bid-1487-a3f9c1d2e0@bidding.americonconstructionco.com. The part after bid- names the job, and the code after it is a signature tying the address to that one firm. When a reply arrives, the portal already knows which record it belongs to.
Each invitation also carries a second address, on the same job and the same firm, behind the Send your bid button: offer-1487-a3f9c1d2e0@. That is the only difference between the two, and it is what lets the portal tell a bid from a question before anybody here has read either.
What the contractor did
Where it lands
Pressed Reply, or wrote to us fresh
Waiting for somebody — the queue with the deadline on it.
Pressed Send your bid
Collecting with the other bids, sealed until the bid date.
NoteThe default is the safe one on purpose. A bid sent by pressing Reply lands in the queue somebody works every day and costs one click to put right; a question sent to the bid address would sit unopened until after the job closed. So silence about what a message is always means "somebody look at this".
The portal reads the bid mailbox every few minutes.
It works out which job the message is about — from the reply address, from the invitation it is answering, or from the sender being invited to exactly one open job.
The message appears under Correspondence on that job's invitation record.
The project manager and coordinator are emailed within minutes that something arrived, with a link that opens the reply to it — addressed to the firm and threaded under their message.
Straight after, a second pass goes back for anything attached and puts it under Offers received.
NoteThe attachments arrive a little after the message does — usually within a minute or two. That is deliberate: fetching a drawing set takes most of a minute, and doing it in the same pass would hold up every question waiting behind it.
ImportantNothing is ever deleted from the mailbox. If something goes wrong at any step above, the original message is still there to go and get.
The project editor's Mail section, and a project's invitation recordAmericon staff
Everything that arrived about this job, newest first, with a button to say what each message was.
The panel lists what came in: who from, when, the subject, and the opening lines. It is the body of the project editor's Mail section, and it appears again on the invitation record above the list of invited firms — one panel drawn in two places, so marking a message in one marks it in the other.
The sender's signature — their title, phone numbers and address — is kept with the message but shown apart from it, so the opening lines are what they wrote and a reply quotes only that. On the mailbox screen the signature is folded under the message, where their phone number is one click away.
On the invitation record it sits above the list of firms because it is the part with a deadline on it — an unanswered question stops being answerable when the job closes.
Click the subject to open the whole exchange with that firm about this job — their messages and everything typed back to them, in order, with what we wrote in full — and the rest of the correspondence with them on other jobs underneath it. A row here is one line of a conversation, and one line is how a question gets answered twice, or answered against something we never promised.
It is in two sections, and they have opposite handling rules. Waiting for somebody is everything nobody has replied to or acknowledged. Settled, and bids collecting is everything dealt with, plus the bids, which are meant to sit there sealed until the bid date.
A message marked Sent as a bid arrived at the address behind the Send your bid button in the invitation, so the contractor has said what it is. That sorts it into the collecting section — it does not mark a receipt, and the buttons are still there to be pressed.
Each message has two columns to fill in, and they are two different facts. What it is — Bid or Question — records what the message was. Dealt with records that somebody has answered it, and that is the column the waiting list runs on.
Bid also marks the bid receipt against that firm on the record below, so the two can never disagree. That press is the acknowledgement: a confirmed bid is settled and sits sealed with the others.
Question says what it is and nothing more. It stays listed as waiting until somebody deals with it.
Reply writes back from the portal and records the reply for you, with your name and the date on the message.
Acknowledge is for the times you rang them, answered from your own mail, or read it and found nothing to answer — an out-of-office, a change of address. It records who pressed it and when, and Reopen takes it back.
Undo, under a marked message, takes back what it was said to be. Undoing a Bid also takes back the receipt it recorded on the firm's row, and the message goes back to waiting.
ImportantNothing leaves Waiting for somebody until a reply has gone from here or somebody presses Acknowledge. Saying what a message is does not deal with it — a question marked as a question is still owed an answer.
NoteThe portal will not decide what a message is for you. Questions arrive with drawings attached and bids arrive as a number in the body with nothing attached at all, and a bid receipt marked wrongly looks exactly like one marked rightly on every screen, for ever. One press is cheaper than that.
The line under a message says how many attachments came with it. Until the second pass has been back for them it says not fetched yet, and while the count came from only the top of the message it says at least. Both stop hedging once the whole message has been read.
Under the table, mail that named no job is offered on every project's panel. This is about this job files it here; Not for us takes it off the queue for everybody, which is the answer for a hosting notice or a mailing list that would otherwise be read past on every job.
ImportantIf the panel says The bid mailbox is not being read, stop and get that fixed. Mail sent to the bid address is still being accepted, so nothing bounces and no contractor is told — the only symptom is that answers stop appearing.
Dashboard, the Waiting for an answer tile; and See every job on any Correspondence panelAmericon staff
Everything nobody has dealt with, across every open job, with the ones closing soonest at the top — and under it, every trade with nobody on it.
A job's own Correspondence panel tells you what is waiting on that job. It cannot tell you what is waiting on the job nobody opened today, and that is the one that costs a question. This screen is the same list run across every job that is open or closed within the last three weeks.
It is sorted by how much time is left, not by when anything arrived. A question that came in this morning on a job closing tomorrow sits above one from last week on a job closing in May.
Three kinds of row appear, and nothing else:
Not replied to or acknowledged — mail that arrived without saying it was a bid, and nobody has dealt with it. Anything might be in it, including a bid somebody sent by pressing Reply, so it waits here rather than in the pile that is left sealed.
A question, not answered — somebody has read it and said what it is, and nobody has replied to it or acknowledged it yet.
Sent as a bid, nobody has checked it — it came in through the Send your bid button, so it is collecting as a bid, and no person has confirmed that. It appears here a day after it arrived, or straight away if the job is about to close.
A row leaves this list in exactly three ways: a reply goes to the firm from the portal, somebody presses Acknowledge on the message, or the message is confirmed as a bid. Nothing else clears it, so an empty list means every message has been dealt with by a named person.
NoteThat second row is the safety net for the opposite mistake. A contractor who uses the bid button to ask a question would otherwise have that question sitting in a pile nobody opens until the bid date. This is what puts it in front of somebody without anybody having had to suspect it.
Bids that arrived normally and that somebody has confirmed are not here. This is a list of what is owed; a screen that also listed every bid would be a screen with nothing to clear, and the four rows that mattered would go down with it.
The document count is shown on each row. A message nobody has read, carrying four documents, on a job closing this afternoon is what a bid sent by pressing Reply looks like from the outside — open that one first.
Click anywhere on a row to open that message on its job’s Who has been invited record, with the row you clicked marked. The job name and Open the job go to the same place, so ctrl-click or the middle button opens it in a new tab and you keep the list. Reply is the one link that goes somewhere else — straight to writing back to that firm.
Under the messages is a second table: trades with nobody on them, across the same jobs. A trade nobody was invited for is a task with a deadline just as a question is, and until now it showed only as a banner on that job's own invitation screen — the job nobody opened this week is exactly where it hid. Each row says which of the three states it is in and lands where the fix is: Choose firms opens the invitation picker already filtered to that trade; See who went quiet opens the record where the silent firms are listed. The invited-but-quiet state joins the table only inside the last three days before the bid date.
ImportantMail that named no job at all is counted at the bottom of this screen but listed on its own. That is a third place a question can hide, and it has its own list because it is a different job: deciding which project a stranger's email is about.
NoteThis screen and the end-of-day summary are drawn from the same lists, in the same order, with the same words. Anything on one is on the other.
Your inbox — within minutes when a contractor writes, and at five every dayAmericon staff
A contractor writing to a job emails you at once. Everything else still open on your jobs comes in one summary at the end of the day, and stays in it until dealt with.
Two kinds of email, and the difference between them is one question: does somebody owe a reply before the bid closes?
What happened
When you hear
Who hears
A contractor wrote to a job
Within five minutes
The project manager and coordinator on that job
Everything else — a firm said they are bidding or passing, took the drawings, a trade has nobody on it, a bid is closing, a closed bid has nothing recorded
Once, at five o'clock
The people on each job, about their own jobs
The five o'clock email is headed Still open on your jobs, and that is exactly what it is. It is not a list of what happened today; it is a list of what is still not dealt with, recomputed from the portal at the moment it is sent. A question nobody answered is in tomorrow's email too, and the day after, until it is answered. That repetition is the point — it is what makes it impossible for something to slip through unnoticed.
It comes in sections, most urgent first:
Waiting for your reply — questions on your jobs nobody has replied to or acknowledged.
Mail that named no job — messages the portal could not place on any job. This section goes to everyone, because there is no job to route it by, and a question on nobody's record is the one most likely to be answered too late.
Bids to confirm — mail that arrived as a bid and no person has confirmed is one.
Trades with nobody on them — the coverage check, across your jobs.
Closing within two days and Closed — bids not recorded.
Since yesterday — who said they are bidding, who passed and why, who took the drawings. This is the one section that is news rather than a task, and it is told once.
Every line is a link to the thing itself. A question opens the reply box, already addressed to the firm and threaded under what they wrote. A trade nobody was invited for opens the invitation picker filtered to that trade. A bid to confirm opens the record scrolled to that bid. Nothing lands you on a job's front page and leaves you to find the item again.
NoteIf your sign-in expired overnight, the link takes you through the sign-in page and then to the screen you clicked, not to the front page. Press it and carry on.
A day with nothing open on your jobs sends nothing. The subject line carries the counts — *3 to answer, 1 trade uncovered* — so you can tell from the inbox whether tonight's needs opening.
ImportantThe summary is a reminder, not the record. The same list is on the Waiting for an answer screen, live, and it is the same list in the same order with the same words. Working from either is fine; the email exists for the day you did not open the portal.
The "Mail that named no job" screen — from Sort all unplaced mail on any Correspondence panel, the foot of Waiting for an answer, the Bid mailbox screen, or the end-of-day summaryAmericon staff
A contractor writing fresh rather than replying gives the portal nothing to file on, so it waits on a screen for somebody to say which job it is about.
Most mail names its own job. Some does not: a firm writing from scratch, an estimator forwarding from an address nobody invited, somebody asking to be added to a bid list. The portal declines to guess, which is the right answer and a useless one on its own — so it goes on a screen instead.
The screen has no tile of its own. It is reached from wherever the count is shown: Sort all unplaced mail on any project's Correspondence panel, the warning at the foot of Waiting for an answer, the Waiting to be placed row on the Bid mailbox screen, and the Mail that named no job section of the end-of-day summary, which goes to everybody for exactly this reason.
Each waiting message shows a longer excerpt than the invitation record does, because the job here is to work out which project it is about, and that is often settled by a sentence in the third paragraph. The sender's signature is folded under it, labelled with what it holds — usually the phone number to ring them on.
Attach to a job files it on that job's Correspondence panel, and goes back for its attachments.
Not for us removes it from this list only.
Never queue refuses that sender from now on, so their next message never reaches the list at all.
Most of what piles up here needs the same one-word answer — a hosting notice, a mailing list, a night's worth of spam. Tick the boxes down the left and one Not for us clears the lot; shift-click ticks a whole run at once, and the bar at the bottom says how many are chosen before you press anything.
Use Never queue for the mail that keeps coming back — a hosting notice, a mailing list, a newsletter every Tuesday. Each of those arrives as a brand new message, so taking them off the list one at a time never catches the next one. The picker beside the button offers the sender's address or everyone at their domain; pick the domain for a list that writes from no-reply@ one week and news@ the next. Anything of theirs already waiting is cleared in the same press.
NoteYou cannot refuse a firm that is in the bidder directory, and the portal will say so rather than let you. Refusing a firm it knows would lose their next fresh email, and that looks exactly like a firm who never wrote.
What is being refused is listed at the foot of the screen, with how many messages each rule has turned away and when it last did. Queue it again ends a rule — though mail that arrived while it was in force does not come back, because the portal has already read past it.
ImportantA rule only ever affects mail that named no job. A bid that identifies itself is filed against that job whoever it came from, rule or no rule.
A message you have refused stays refused. The portal never deletes mail, so it goes on reading past that message in the mailbox for ever — it just stops offering it to you again.
The same waiting mail is offered on every job's Correspondence panel, with Sort all unplaced mail leading to the full list. That is deliberate: somebody reading one job's post is the person most likely to recognise a message about it, and a queue reachable from one screen only is a queue that gets emptied once. Both buttons are there too — This is about this job, and Not for us for the ones that are about no job at all.
NoteNot for us pressed on a project's Correspondence panel clears the message for everybody, not just for that job. There is no per-job version of it, because the queue it comes off is not per-job.
ImportantDiscarding deletes nothing. The message stays in the mailbox untouched — which matters, because the one somebody misclicks is by definition the one that turns out to have mattered.
On a project's invitation record, under CorrespondenceAmericon staff
One row per firm that has bid, with a document count. Click the firm to read their whole offer.
The panel answers one question at a glance: who has bid, and how much came with them. The filenames are not here on purpose — forty firms with three documents each would make every row three lines tall and push the worklist off the bottom of the page. Click a firm to see them.
A firm appears here for one of two reasons: somebody pressed Bid on their message under Correspondence, or the contractor sent it through the Send your bid button in their invitation. The second kind is marked not checked yet, and counted separately above the table, because nobody here has looked at it and no receipt is recorded against the firm.
NoteA question is not an offer, and does not appear here. This panel used to count everything a firm had ever sent, which meant one question read as one bid received — while the invitation row below it still correctly said No answer. Two screens, one record, opposite answers.
What you see
What it means
A number beside a file icon
That many documents are stored and can be opened.
None
The whole message was read and nothing was attached.
still arriving
The portal knows there are attachments and has not been back for them yet. It goes straight after the message is read, so this usually clears within a minute or two.
too large to store
The message is bigger than the portal downloads in one go. It is still in the mailbox — open it there.
could not be read
Something went wrong taking the message apart. Still in the mailbox.
no longer in the mailbox
The message was deleted from the mailbox before the attachments were fetched. Nothing this portal does deletes mail, so somebody did it by hand.
Rows needing attention are marked down the left edge, and a summary above the table counts them, so a job with one firm in trouble does not need reading cell by cell to find it.
NoteA firm that was invited and has not written does not appear here at all. This panel is what came back, not who was asked — the record below is the roll call.
From the Offers panel — "Compare these bids side by side"Americon staff
Every bid on the job in one table, with what disagrees marked beside each number. It does not rank them or recommend one.
One row per firm, lowest first, with the firms nobody has priced yet at the bottom. Type each bid amount in once and it stays on the job — which is the spreadsheet that currently gets rebuilt by hand for every job and then lives in somebody's Downloads folder.
Amounts can be typed however the PDF wrote them. $487,300, 487300.00 and 487,300 are the same bid. Anything the portal cannot read as an amount is refused and said so, with what you typed still in front of you — it will never quietly store a guess at what "call for pricing" meant.
NoteIt will not tell you which bid is best, and it is not going to. Deciding that means knowing what the drawings say, what the sub is like to work with, and what the schedule will not survive — none of which is on this screen. The transcription is automated; the judgement is yours.
Bids are grouped by trade. A job here carries one invitation list across every trade it needs, so the electricians, the painters and the concrete subs are each their own table with their own low-to-high range — an electrician at $480,000 and a painter at $22,000 are never in one column, and the outlier check only ever compares a firm with the others in its trade. Which trade a firm is under comes from the contact directory; a firm invited by hand that was never a contact appears under Not classified under a trade rather than vanishing. A firm the directory files under two of the job’s trades appears under both, because the portal records what a firm does, not which package they bid.
The right-hand column names what does not add up on each row, in a few words so a row stays one line tall — hover any of them for the full sentence. They are words rather than scores, because a percentage is not something anybody can act on:
What it says
What it means, and what to do
Said bidding, nothing arrived
The one flag here worth acting on before the deadline — everything else reports on a bid day that has already happened. Ring them.
Late
Arrived after the deadline. Exact, from the mail server's own timestamp rather than anybody's recollection. Whether a late bid counts is your call.
Not invited
A bid from a firm not on the invitation record. Usually a forwarded invitation, which is normal — but every count on the invitation record excludes them, so the row is measured against a list it is not on.
No amount recorded
A bid arrived and nobody has typed what it says. Open the documents and type the number in.
Far from the middle
A long way from the middle of the other bids in this trade. Only appears once three bids are priced, because two bids have no middle to be far from. Worth a second look at the scope they priced.
Unconfirmed
The firm told us this figure themselves and nobody here has confirmed it. Check it against their proposal and press Confirm — it stays out of the low/high spread until you do.
Figures disagree
The number you typed and the number the firm typed differ — the firm's is shown beside the field. Either a transcription slip on our side or a revised price on theirs, and both are worth an email before an award rather than after.
Excluded work unpriced
They excluded a scope line that has no estimate against it, so their adjusted total is short. Put the estimate on the line, once, on the levelling sheet.
3 lines undecided
Scope lines nobody has decided for this firm. Not adjusted for — see *Levelling* — but the size of what the adjusted total does not yet know.
2 lines disputed
On those lines what was recorded here is the opposite of what the firm ticked on their form. Settle it by email before award; it is the disagreement that becomes a dispute after.
From the contact record. A subcontract cannot be written on a lapsed certificate — ask for the new one now, while there is time.
Rows carrying a flag are marked down the left edge and counted above the table, so a job with two rows in trouble is found by scanning an edge rather than reading every cell.
Download as a spreadsheet takes every figure on the job — including the unconfirmed ones, with a Confirmed column saying which is which — as a CSV. Amounts are written as plain numbers so the column adds up in Excel rather than landing as text.
ImportantThat file is every price on the job in one attachment, and it can be forwarded. Your download is written to the audit log with your name on it, the same as opening a sealed bid before the bid date.
The invitation record carries the counts beside the link — how many are priced, how many are waiting to be confirmed, how many need a look — so you can see a figure has come in without opening this screen. Nothing emails you about a stated figure. On a job with forty bidders that would be forty messages about something needing no action, and a prompt nobody can act on is one people learn to scroll past.
NoteA number can be changed or cleared at any time, and both are written to the audit log with a name on them. Pressing Save on an unchanged number writes nothing — otherwise a job priced in one sitting would fill the log with rows recording that nothing happened, and the corrections would be buried among them.
A number nobody here has stood behind is drawn dashed, with a Confirm button instead of Save and *firm’s figure* beside it, and is kept out of the low/high spread until somebody presses it. Today those come from the firms themselves — see below. A future version will also read amounts out of the documents, and they will arrive on this same footing.
Contractors can state their own figure. At the foot of the project page, below the plan files, an invited firm can type their base bid, tick the addenda they priced, answer In / Not included against the scope lines for their trade, and name anything major they excluded. The figure arrives here pre-filled and unconfirmed, so the work becomes reading and agreeing rather than reading and retyping. It is never adopted on its own — a screen an award comes off must not be writable by a party to the award.
Once bidding is over, the job is awarded from here. Press Award on the winning row of each trade; the panel above the tables records it and offers the notices — see *Awarding the job*.
Levelling: comparing bids that priced different things
From the tabulation — "Level these bids against a scope baseline"Americon staff
The lowest bid is often the firm that left something out. Levelling prices the gaps back in so the totals can honestly be compared.
Two subs quote the same package. One is $100,000 and excludes the fire alarm; the other is $110,000 and includes it. The tabulation puts the first one at the top, and it is the more expensive bid. Levelling is what fixes that — it is the standard practice, and every bid-comparison product in the industry is built around it.
There is one sheet per trade, chosen from the row of links at the top. The electrical baseline is a different list from the painting baseline, and a firm only ever appears on the sheet for a trade the directory says they do — so the painter is never marked ? on Fire alarm, and never carries a plug for work that was not their package.
The sheet has what the contract documents require down the side, and the firms across the top. For each line you say what that firm did about it: In, Out, or ? if their proposal does not say and nobody has decided yet.
Cell
What it does to their total
In
Nothing. They priced it.
Out
Adds that line’s estimate to their total. That is the levelling.
?
Nothing at all, deliberately — see below.
The usual lines for a trade are kept between jobs. Under the add form, "Add the 6 usual lines for Electricians" puts the trade’s saved lines on this baseline in one press, and "Keep these lines as the usual ones" saves this baseline as that trade’s template for the next job. Labels only — an estimate is this job’s, and a template that carried last job’s $18,000 would put last job’s number into this job’s adjusted column before anybody had thought about it.
Firms answer these lines themselves. Once a baseline exists, an invited firm’s own bid form on the project page lists the lines for their trade with In / Not included beside each. What they tick is what their cell here starts as, marked their answer — the way a Procore or BuildingConnected sheet fills from the sub’s bid form. Change a cell and yours wins; the cell then says they said Out (or In) under it, and the tabulation flags the row so the disagreement is settled by an email before award rather than a dispute after it. Pressing Save on a column changes nothing about cells you did not move — their ticks are never silently turned into your checks.
The estimate for a line is typed once, on the line itself — "Fire alarm, $18,000" — not once per firm. Every firm that excluded it is adjusted by that same figure, and correcting it corrects every column at once. Typing it per firm would be eight chances to write a different number for the same work, and a sheet where two firms’ fire alarm allowances differ for no reason is one you cannot defend in a review.
Note? adds nothing on purpose. If an undecided cell guessed, then the moment you typed a scope list every bid on the board would jump, before you had read a single proposal — and the adjusted column would be nonsense on the day you first looked at it. So the adjusted total means "this is what we know", and the number of undecided lines is shown beside it as a flag on the tabulation.
ImportantA line marked Out with no estimate against it adds nothing and says so — the row is flagged they excluded work that has no estimate against it. The adjusted total beside it is genuinely short until you price that line. It will not quietly treat missing work as free.
Once anything on a job has been levelled, the tabulation gains an Adjusted column, sorts by it instead of by the submitted total, and shows both ranges in the summary. Until then nothing changes — a job with no scope baseline levels to exactly what was submitted, which is the right answer for a job nobody has levelled.
A job carries at most 40 scope lines. That is a limit on what anybody will realistically fill in, not on how detailed a package can be — a half-finished sheet reads as authoritative and is built on blanks.
Removing a line removes every firm’s answer to it, because those answers are to a question that no longer exists.
The free-text "anything major you have excluded" from a contractor’s form is still shown under their column as a prompt and is never matched onto lines: "No FA" and "Fire alarm by others" are the same exclusion written two ways, and a computer matching those would move money on a guess. The tick boxes on their form exist so nothing has to be matched.
NoteContractors never see this sheet, and there is no route by which they could. The baseline is Americon’s reading of its own contract documents — a bidder who could see it would be reading the estimator’s mind.
On the tabulation, once bidding is overAmericon staff
Press Award on the winning firm’s row. Then, when you are ready, one press sends the winner their notice and thanks every other firm that priced.
Once the bid date has passed — or the bid was closed by hand — every row on the tabulation gains an Award button, and an Award panel appears above the tables. One winner per trade: the electrical goes to one firm and the painting to another, each pressed on its own table. A job with no trades has one.
Recording the award is one press and sends nothing. It is a fact about the job — the panel shows who, when and by whom, and a firm’s record in the directory gains "Awarded 2 of those jobs". Withdraw on the panel takes it back; nothing here is a one-way door except the notices.
The notices are the second press, and they are offered rather than sent automatically, because you may have reasons to hold them: a subcontract not yet signed, a second trade still undecided, a winner who should hear it by phone first. Open Tell the bidders and both messages are already written:
Who
What they get
The winning firm(s)
"Your bid for … has been selected", naming the project manager as the contact for the subcontract. The trade is named when there is exactly one.
Every other firm that priced
"Thank you for your bid … the work has been awarded to another firm." It never names the winner and never states an amount — losing bidders are told the result, not the competitor.
"Priced" means a recorded amount or documents that arrived. A firm that said it was bidding and sent nothing, or that declined, is not thanked for a bid it did not make. Firms that unsubscribed from portal mail are named on the panel so somebody rings them — they are not quietly dropped from a count.
NoteBoth messages can be edited before sending. They go through the same queue as every other bulk send here — the hourly mail limit, the suppression list, the mail log and one audit row with the totals.
Why the regret at all? A subcontractor who prices three jobs and never hears back stops pricing the fourth. It is the cheapest goodwill in the industry, every bid platform sends it, and this is what keeps the directory full of firms that answer.
ImportantIf the award changes after the notices went out, the panel says so in words and offers the notices again. It does not pretend the first message was never sent.
Anything the directory holds against the winner that has lapsed — an expired certificate, no W-9 on file — is printed under their name on the panel at the moment the subcontract is about to be written. It never blocks the award.
ImportantOne thing does block it. On a job that issued addenda, a bid that does not acknowledge one of them cannot be awarded until you have decided whether that matters — see *Addenda on the tabulation*. Award is refused with the question, not granted on the assumption it was fine.
The Addenda column of the tabulation, on a job that has issued oneAmericon staff
Record which addenda each firm’s bid form acknowledges, by number. A bid that is short of one is flagged, and you decide on the row — waive it or set the bid aside — with a reason that goes on the record.
The column appears only on a job that has issued at least one addendum. On every other job there is nothing to acknowledge and no column.
Each row says what that bid acknowledges and on whose word:
What it says
What it means
Bid form: 1, 2
Somebody here read the firm’s signed bid form and recorded what it acknowledges. This is the record that governs, and the name beside it is whose.
Firm ticked 1, 2
Only the firm’s own tick, from *Tell us your number*. Nobody here has recorded the bid form yet. Useful, but it is a stated figure, not their signed bid.
Not recorded
Neither. The firm sent no figure and nobody has read the bid form.
Record what the bid form says with the tick boxes on the row and press Record, with the proposal open. The press is the assertion: pressing Record with nothing ticked records that the form acknowledges none, which is a real answer and a different one from never having looked. Pressing Record on an unchanged set writes nothing.
A bid short of an issued addendum is flagged — Addendum 3 not acknowledged — in the same column as every other thing that does not add up. It is not a rejection. It is the question, and the row offers the two answers, each of which needs a sentence of reason:
Waive — immaterial to this bid. The addendum did not touch what this firm priced: it revised the electrical sheets and this is the painting package. The bid stands, the flag clears, and the reason is on the record with your name.
Set aside — non-responsive. The addendum changed what this firm priced, and their number does not reflect it. The bid is marked and cannot be awarded; the reason is on the record with your name, and it is what the firm is told and what a protest reads.
NoteThe reason is required, and it is the whole of the safety. No role decides this, because no role knows whether Addendum 3 touched the painting package — the project manager reading the two documents does. What the portal insists on is that the sentence is written at the time, by name, where anybody will later look for it.
A firm set aside is told, from the row. Once a bid is set aside, Tell the firm opens a notice already written: which addenda the bid does not acknowledge and what each changed, the reason you recorded, the project manager by name and "reply to this message" — never a staff address, because replies route to the bid address and land on the record — and a thank-you. It never states an amount. Edit it if you like and press Send — it goes through the same per-firm route as any message from the invitation record, so it lands on the mail log with its delivery outcome and the words are kept on the project. The row then reads *Firm told Sep 17* with your name, and the spreadsheet says so too.
It is offered, not automatic. You may want to telephone first. But the notice is the record, and a firm that is never told cannot raise a question inside the protest window — which is worse for everybody.
One notice per decision. Reopen the decision and set the bid aside again, and the notice is offered again.
A firm that was never invited, or whose address unsubscribed or bounced, cannot be written to from here; the row says so instead of offering a form that would refuse. Telephone them.
The reason you type into a set-aside is what the firm reads. Write it as a sentence to them.
Both decisions can be reopened from the row. A waiver covers only the addenda that were missing when it was made: issue Addendum 4 afterwards and the question is asked again, because it is a different question. Reopening a set-aside the firm has already been told about says so on screen — nothing here can unsend the letter, so tell them it is under review again.
A firm’s flag is only raised where there is a bid to be short — a recorded amount, or documents that arrived. A firm that said it was bidding and sent nothing has no bid form to be missing anything from.
The spreadsheet download carries two columns for this — Addenda acknowledged, with whose word it is on, and Responsiveness, with the decision and its reason — so the file stands on its own in a bid protest without the screen.
ImportantThe Confirm you received this addendum link in the notice, and the count of firms that pressed it, are not acknowledgment. They tell you whom to phone before bid day. Only the bid form counts, and only what somebody here recorded from it.
Beside a document on the offer screen, when it appliesAmericon staff
A bid that was scanned rather than printed to PDF is a picture. Its numbers cannot be pulled out of it without somebody reading them.
A proposal printed to PDF out of Accubid, ConEst, Bluebeam, Excel or Word carries its text inside it, and a computer can read that text exactly. A proposal somebody signed and ran through the copier is a photograph of a page — the numbers are there for a human eye and nothing else.
The portal checks which kind each PDF is as it arrives, and says so beside the ones it could not read. It says nothing beside the ones it could, because every ordinary PDF wearing a "this one is fine" label would be a line of text per row carrying no information.
NoteThis changes nothing about the document. It is stored, downloadable and kept exactly like any other — the note is about what a future automatic reader could do with it, not about whether it is a proper bid.
It matters because it is being counted. Whether it is worth building an automatic reader at all depends on how many of the bids Americon actually receives are scans, and nobody has ever measured that. Every document that arrives adds to the tally, and the answer decides whether that work happens.
ImportantSome files can be neither confirmed nor ruled out — a bid locked against editing, or one built in a way the check cannot see through. Those are counted separately rather than guessed at in either direction, because the whole point of the count is to decide something with it.
Before the bid date, only the project manager and coordinator assigned to the job can open a bid, and every open is logged.
A sealed price from a subcontractor is not something the rest of the office is entitled to read while the job is still bidding. The portal enforces that rather than trusting to habit.
When
Who can open a bid document
Before the bid date
The assigned project manager and the assigned coordinator. Nobody else, however much else they can do on the job. Every open is written to the audit log with a name on it.
After the bid date
Anybody who can edit the job — the same people who see the tabulation. Not logged individually.
Colleagues who are sealed out still see that a firm answered and how many documents arrived. They cannot open them, and the offer screen shows them nothing at all rather than a refusal — a refusal would confirm which firm bid which job, which is the fact being withheld.
ImportantA job with nobody assigned cannot have this rule applied to it, so it falls back to anyone who can edit the job and says so on screen. Setting a manager and coordinator on the project is what turns the restriction on. Opens are logged either way.
NoteA job with no bid date set is treated as still sealed. That is the cautious direction — the alternative treats a half-finished project as though its deadline had passed.
On the offer screen, under each messageAmericon staff
Drawings, schedules and anything else attached to a bid, stored against the job and downloadable from the message they came with.
Documents are listed under the message they arrived with, so a covering note and the drawings it refers to stay together. Each shows its type, its name as the contractor saved it, and its size.
They are stored outside the public part of the site and served only through a link that checks who is asking. A link copied out of the address bar and sent to somebody else does not work for them.
PDFs and images open in the browser. Everything else downloads.
Signature logos and other images that are part of how a message looks are not stored as documents — otherwise a plan set of four drawings would show as seven files.
If a message carried more than the portal stored, it says so, and the whole message is still in the mailbox.
ImportantA document marked its contents do not match its name is worth a second look before opening. It is usually a file saved wrongly — but the portal will not guess, so it tells you instead.
Nothing a contractor sends is scanned for malware. It is contained so this site cannot run it — which is not the same as safe.
There is no virus scanner here, and there is not going to be one. The free scanning services keep and share what is submitted to them, and a competitor's sealed bid is not ours to hand over.
So the portal makes a smaller claim, and it is one it can keep. Contained means:
The directory the files live in refuses direct web requests, three different ways over.
Nothing is ever written to disk under a name a web server would execute, whatever the contractor called the file.
Everything is handed to you as a download, except PDFs and images whose contents agree with their name.
The contents are inspected, and anything that disagrees with the filename is flagged next to the download rather than in a footnote.
ImportantNone of that says a file is safe, and no screen on this site will. It says nothing here will run it. Open a contractor's attachment the way you would open anything a stranger emailed you.
NoteNothing is ever refused, either. A bid silently not arriving on the one day of the year it matters, because an estimating package wrote an unusual file header, is a worse outcome than a file you were warned about.
Bid documents are deleted from this server three years after the bid date. The record, the tabulation figures, and the original emails in the mailbox are all kept.
Three years after a job's bid date, the documents sent for it are deleted from the server. The counted-off date is the bid date, not when the file arrived, so a late question answered a fortnight afterwards belongs to the same bid as the pricing.
What survives is the record: that Dutchman Mechanical sent four documents on 14 August 2026, and what they were called. That is worth keeping for as long as the job is. The files themselves are not.
The figures on the bid tabulation are kept, and are not swept. A tabulation is a business record — what each firm bid on a job Americon ran — and it is a handful of numbers rather than a plan set. It is the thing somebody comes back to years later when a job is disputed or a trade is being priced again, and it would be the wrong half to throw away.
ImportantDeleted here means off this server, not gone. The bid mailbox is never emptied by this portal — DELE is never sent, so it is the disaster recovery for everything the poller ever read — which means the original email and its attachments are still sitting in it after the copy here has been swept. Say that plainly if a contractor asks, rather than telling them their pricing was destroyed.
A job with no bid date is never swept — there is nothing to count three years from, and deleting on a guess cannot be undone.
Deleting a project deletes its bidders' documents with it, immediately.
NoteA document that has been deleted this way still appears on the offer screen with its name, marked as deleted. It is a fact about the bid, not a broken link.
Dashboard, under the figures — **Bid mailbox**Americon staff
Answers one question: whether the mailbox contractors reply into is being read at all. Not for reading your mail — that is on the job record and the worklist.
Your correspondence is on the job's Correspondence panel and on Waiting for an answer, and the schedule keeps both current. There is nothing to press to see it, and you should never have to.
This screen is for the different question, the one those screens cannot answer: *is mail arriving at all, or has the mailbox been silent since eleven?* On a bid afternoon that is worth being able to check without asking anybody.
Row
What to read it for
Last checked
Minutes is normal. Hours means either nobody has touched the site or the schedule has stopped.
Next scheduled
Is due now is not a fault — the page load printing it is about to run it.
Read last run
Nought here plus a recent Last checked is a quiet mailbox, not a broken one.
Filed against a job
How many of those the portal could place on a record by itself.
Waiting to be placed
Mail that named no job. It is not lost — the link goes to it.
Last error
Only appears when there was one, and prints the mail server's own words.
Check now reads the mailbox immediately. It will not run twice within a minute, and if a read is already going it says so instead of appearing to do nothing.
NoteReading never deletes anything, and a message read before is not filed twice, so the button is safe to press as often as you like.
ImportantIf it says no mailbox password is configured, contractor replies are still arriving in the mailbox and are simply not reaching the portal. Nothing bounces and no contractor is told, so there is no other symptom. That needs an administrator, and it needs one that day.
The stage-by-stage buttons for taking the pipeline apart are not here. They are a diagnosis rather than a piece of work, and they stay on the administrator's page — see Americon Bid Mailbox.
You do not need an account, a password, or anything installed. Everything below works from the link in your invitation email.
Opening your invitation
The button in your invitation emailBidding contractors
The link in your invitation is the only address that opens a private project. If you lose it, you can have it sent again from the portal.
Use the View project and plan documents button in the invitation email. It opens the project page directly; there is nothing to sign into.
ImportantFor an invite-only project, that link carries an access code and is the only address that works. Do not bookmark the address from your browser bar and do not retype it — use the button in the email, or forward the email to a colleague who needs the same access.
Deleted the email, or the link no longer opens? The page you land on offers Send my invitation again. Enter the address the invitation was sent to and it goes back to that address within a few minutes. Check the spam folder before asking a second time.
NoteIt can only be sent to the address it was addressed to. If the invitation went to a colleague, ask them to forward it — entering your own address will not find it, and the page will say the same thing either way.
Invite links stop working 30 days after the bid deadline. Past that, nothing can be resent — contact the coordinator named in your invitation.
The “Will you be bidding?” panel in your invitationBidding contractors
Passing on one job is not the same as unsubscribing. Use “Not this one” and you stay on the list for future work.
Every invitation carries a Will you be bidding? panel, just under the button that opens the plan documents. It holds two answers: Yes, we are bidding and Not this one. Either takes one tap, there is nothing to fill in and nothing to sign into, and either can be changed later by tapping again.
Saying you are not bidding tells the project manager to stop chasing you on this job. It does nothing else:
You stay on the invitation list and will hear about the next job.
You are not unsubscribed from anything.
You can change your mind — open the invitation again and tap the other answer.
Saying you are bidding means the project manager knows to expect a number from you, and that you are told first if the drawings or the deadline move.
ImportantIf what you actually want is to stop hearing from us altogether, use the unsubscribe link in the email footer instead. That one is permanent and we cannot reverse it from our side — you would have to ask us to put you back on.
NoteBoth answers are yours: they are signed for your address on this one job, so nobody else can answer for you and neither will work on a different project.
Where the invitation link takes youBidding contractors
Everything about the bid on one page: deadline with its time zone, location, schedule, who to contact, and the plan documents.
The page carries, in order:
Bid due — the deadline, with its time zone spelled out. Read that abbreviation: a 2:00 PM Chicago deadline is 1:00 PM in Denver.
Location — city and state.
Estimated start and completion — when shown, the expected construction window.
Scope of work — when shown, what is actually being bid, in Americon's own words. Not every project carries one; where it does, it is the fastest way to tell whether the job is yours before opening a set of drawings.
Contacts — the Americon project manager and coordinator by name, and one Email the project team button. Their own addresses are not printed: the button is the route that reaches both of them and lands on the job.
Plan files — the drawings and bid documents, with revision labels where they carry them.
Tell us your number — at the very end, and only when you opened the page from your own invitation link: an optional form for your base bid and what it includes. See Telling us your number.
NoteThe Add to my calendar button sits beside the bid deadline at the top.
Project page, above the plan files, on your first visitBidding contractors
Name, company and email, asked once. It is how we reach you if the drawings are revised or the bid date moves. You can skip it.
Before the plan files, you are asked for your name, your company and an email address. It is asked once per project and takes a few seconds.
It exists for one reason: if the drawings are revised or the bid date moves, this is how we reach you. Without it there is no way to tell you, and the ordinary result is a bid priced off a superseded sheet.
The address is used for notifications about this project and nothing else. Every message carries an unsubscribe link.
NoteSkip, just show me the files is a real button and it really works. The plans are the product; asking is reasonable, withholding them is not. But a bid priced off an old drawing costs a great deal more than thirty seconds of typing.
Press Open on any file to view or download it, or use Download all for the whole set as one ZIP.
Each file shows its name, type and size. Press Open on a row to view it in a new tab or download it.
Download all packages the entire set into a single ZIP. A large drawing set takes a minute to compress — leave the tab open while it works.
Where a file carries a revision label — "Rev B", "Addendum 2" — check it against what you already have. That label is the only thing that distinguishes a reissued sheet from the one you downloaded last week.
ImportantPlan files on an invite-only project are access-checked on every download. Sharing a file link with someone outside your team will not work for them; forward the invitation email instead.
Project page, beside the bid deadlineBidding contractors
Puts this one bid deadline into Outlook, Apple Calendar or Google Calendar. No account needed.
Downloads a standard calendar entry for this bid's deadline, which your calendar application will offer to add.
The entry is stored as a fixed point in time, so it shows correctly in your own time zone rather than in ours.
NoteTo hear about future Americon bids rather than just this one, subscribe to the calendar feed from the bid calendar page. That is one click and it keeps working.
Reply to your invitation, or the project page under ContactsBidding contractors
Reply to your invitation email, or use Email the project team on the project page. Either reaches the people running the job and is recorded against it.
Reply to the invitation email you were sent. There is no address to copy down, no form and no login, and attachments come through as normal.
NoteA reply is treated as something that needs an answer, so it goes in front of the coordinator straight away. Your bid itself has its own button — see Sending your bid below. Sending a bid by reply is not a problem and nothing is lost; it just means somebody here opens it before the bid date to see what it was.
If you no longer have the invitation, the project page carries Email the project team under the two names. It opens your own email with the address already filled in and goes to the same place.
Either way the message is filed against that project and the firm it came from, so it reaches the project manager and the coordinator without depending on one person being at their desk. That is why neither of their own addresses is printed anywhere: a message sent to one of them directly is one nobody else on the job can see.
There is no message form on the site and no account to sign into — everything goes through ordinary email.
The “Send your bid” button in your invitation emailBidding contractors
Press it, attach your proposal, send. It opens your own email — there is nothing to log into and nothing to upload.
Send your bid in the invitation opens a new message in your own email program, addressed for you. Attach your proposal and anything that goes with it, and send it the way you would send anything else.
It arrives against the right job and the right firm on its own, and stays sealed until the bid date — only the project manager and coordinator running that job can open it before then.
That address belongs to this job and your firm, and it does not expire. Keep it, write it down, or forward the invitation to whoever is pricing the work — it still files correctly weeks later, from any of your addresses.
NoteUse a plain reply for questions and anything else. Replies are treated as needing an answer and go in front of the coordinator straight away, which is what you want when you are asking something.
Sent your bid by replying instead? Nothing is lost and nothing needs re-sending. It reaches the same job; somebody here just opens it to see what it was.
ImportantThere is no upload form on the site, and there never will be. Your bid goes by email, and nobody at Americon will ever ask you to sign in to send one.
At the foot of the project page, below the plan files — "Tell us your number"Bidding contractors
Optional. Type your base bid so the estimator can start comparing as soon as your email lands — it does not replace sending the bid.
At the foot of the project page, after the plan files, there is a short form headed Tell us your number: your base bid, which addenda you priced, whether each of the listed scope items is in your price, and anything major you have excluded. Filling it in is optional and takes about a minute. It is at the end of the page rather than the top because the first visit, weeks out, is for the drawings; on bid day you come back on the same link, and the number goes where you have just finished pricing from.
The scope items are the lines the estimator will compare every bid against. Answering In or Not included for each is how your number gets compared fairly with everybody else’s — a bid that leaves out the fire alarm is not the lowest bid, and saying so here means nobody has to guess from your exclusions page. Leave a line blank if you are not sure; a blank is recorded as nothing, not as either answer.
It does not replace sending your bid, and it is not a bid on its own. Your proposal is still the document, sent by email, exactly as before. This just means the estimator can begin comparing the moment your email arrives instead of waiting until somebody has opened every attachment on the job.
Write the amount however you like — 487300, $487,300 and 487,300.00 are all read the same way.
You can send it again at any time before the deadline; the newer figure replaces the older one.
The addenda are ticked from the list this job actually issued, so there is no question of which numbering anybody means.
NoteThe form only appears if you opened the project from your own invitation link, because that is what tells us which firm is typing. Anybody who found the job on the public calendar will not see it — there is nothing to fix, and nothing is missing from your bid.
ImportantIt closes when the bid does. After the deadline the form is gone and the figure you send is the one in your email.
Nobody else bidding this job ever sees it. Before the bid date only the project manager and coordinator on the job can, which is the same rule that keeps your proposal sealed.
NoteStill no account, no password and no upload. It is three fields on a page you already had a link to.
In the invitation and every update about the job — "Addenda issued"Bidding contractors
List every addendum by number on your bid form. A bid that leaves one out can be set aside — that is standard bidding practice, and the number is what makes it checkable.
An addendum is a numbered change to the bid documents — revised sheets, a clarification, a moved bid date. Every message about the job lists the ones issued so far: Addendum 1, Addendum 2, and so on, each with a line saying what changed and the files it carried. The numbering is the portal’s, so there is never a question of which "Rev B" anybody means.
Acknowledge every addendum by number on your bid form. That is the acknowledgment that counts, exactly as it is on any bid you have ever submitted. A bid that omits one may be set aside as non-responsive, and the project manager is asked to decide about it before the award — so a missed number costs you the job, not a phone call.
Each addendum in the message has a Confirm you received this addendum link. One press, no login. It tells the project manager it reached you, which is what keeps them from ringing round on bid day. It does not replace listing it on your bid form.
The *Tell us your number* form on the project page asks which addenda you priced, ticked from the same numbered list. That is a help to the estimator — and still not a substitute for your bid form.
If an addendum moves the bid date, the message says so and the project page shows the new deadline.
NoteNothing in an email is treated as your acknowledgment — not opening it, not following a link. Some company mail systems open every link before you see the message, and a portal that counted that would be wrong about every firm behind one.
The only route to portal accounts. This site blocks the WordPress Users screen, so everything to do with accounts happens here.
The account list
User ManagementAmericon staff
Every portal account with its role, last sign-in and status. Search by name or email, or filter by role or status.
Shows name, email, role, last sign-in and whether the account is active or suspended, with a Manage link on each row. Your own account is marked *you*.
Search matches names, usernames and email addresses. The role and status dropdowns narrow further, and Show all accounts resets everything.
NoteAdministrators only. The header shows User Management to nobody else, and a manager or coordinator who follows a link to it is told so and sent back to the calendar.
User Management, when creating or editing an accountAmericon staff
Project Manager and Project Coordinator currently hold identical permissions. Pick the one that describes the job, not the access.
Both staff roles can create, edit and delete projects, see private projects, manage plan files, send invites and export lists. The role records what someone is responsible for; it does not currently restrict what the software allows.
Administrator adds account management and access to the WordPress admin. Keep the number of administrators small — and never let it reach zero, since only an administrator can create another one.
Name, email, username and role. Leave "Email a set-password link" ticked so the person chooses their own password.
All five fields are required. Two are worth care:
Email — used for sign-in, password resets and every message the portal sends them. It has to be one they actually read.
Username — first initial plus last name, e.g. jsmith. It cannot be changed afterwards.
Leave Email a set-password link ticked. The account is created with no password and cannot be signed into until somebody sets one, so the email is the way in. Untick it only when creating an account ahead of time — and remember that somebody then has to trigger that email later.
That later trigger is Send a set-password email on the account's own page, under Access. It is also the answer when the first email was lost, or when somebody has forgotten a password and cannot get the reset link to arrive: each one sent replaces any sent before it. A suspended account refuses it until the account is restored.
Suspend when somebody leaves — sign-in stops, everything they did stays on the record. Delete only removes an account created by mistake.
Almost always suspend.
Suspend
Delete
Can they sign in?
No — refused with a clear message
No, the account is gone
Their audit history
Kept, still attributed to them
Rows become an anonymous user number
Projects they created
Untouched
Re-authored to the account you pick — the form asks who inherits them
Reversible?
Yes — Restore access
No
Use it when
Someone leaves, or access must stop now
The account was created in error
Suspending signs the person out everywhere at once, and takes an optional reason — *"Left the company, 8 Aug"* — that is shown on the account afterwards. A suspended account shows a Suspended badge in the list and on its own page, along with who suspended it and when. Restore access puts it back with its original role, and their old password still works.
Deleting asks two things before it will act: which account inherits every project the person created, and a tick against Yes, permanently delete. There is no trash for accounts, so the tick is the confirmation.
NoteYou cannot suspend or delete your own account, you cannot change your own role, and you cannot remove or demote the last administrator. Those controls are disabled rather than allowed to lock everyone out. Another administrator's account is read-only to anybody but an administrator.
Under Tools in the WordPress admin, for administrators only. You should not need these in normal use — they are for setting the site up and for answering questions after the fact.
Americon Site Setup
WordPress admin, Tools → Americon Site SetupAmericon staff
Checks that every page the portal needs exists at the right address, and creates any that are missing.
The plugins provide the features; they do not provide the pages. This tool lists every page the portal needs, what each one holds, and whether it is correct — then creates or repairs the missing ones in a single press.
Run it on a fresh install, after moving hosts, or whenever a header button leads to a "not found" page.
Afterwards: open Settings → Permalinks and press Save once, then run the self-check.
Fifty-odd checks of the things that fail silently — file protection, mail, both mailboxes, the schedules, roles — each saying plainly what is wrong rather than that something is.
Confirms the things that fail without a symptom. Every row names one check, says whether it passed, and when it did not, says what to do about it — several link straight into the matching entry in this manual.
Area
What is checked
The deploy itself
Every shared module the plugins depend on is present — a half-finished upload is named here rather than diagnosed from a white screen — and the project type, its capabilities and the staff landing page resolve.
Plan files and bid documents
The protected directories exist, the web server genuinely refuses direct requests to them, every plan file has been moved into them and flagged, and there is room left to store the documents contractors send.
Outbound mail
The From address matches the account the site actually sends as, nothing is overriding it, the logo and postal address are in the template, the hourly budget and what is left of it, the suppression list, and that the mail log is recording outcomes and Message-IDs.
The two mailboxes
That the sending mailbox and the bid mailbox are configured, when each was last read, that their reads are scheduled, what is waiting for a person in each, and — for the bid mailbox — that documents are being fetched and no notices are owed.
Schedules
Cron is running, the deadline reminders, the end-of-day summary and the upload clean-up are scheduled, no notification queue has stalled, and the external heartbeat has been seen.
Accounts and dates
Manager and Coordinator hold the same capabilities, legacy roles are gone, suspension is enforced, more than one administrator exists, staff addresses can receive notifications, and stored due dates agree with their timestamps and the site time zone.
Run it after any deployment or plugin change. A section at the foot, What this cannot check, lists what it cannot see from inside the site — the list is honest about its own limits so that a green page is not read as more than it is.
NoteYou no longer have to remember to open this page — it also runs every night on its own and mails administrators when something is wrong. See Being told when the site breaks.
The self-check runs nightly and mails administrators when it stops passing, plus a weekly all-clear. Silence on a Monday means something is wrong with the mail, not that everything is fine.
The checks described above were, for a long time, run only when somebody happened to open the page. So the portal could detect a dead schedule, a broken mail login, or plan files that had stopped being protected — and would sit on that discovery until an administrator went looking. The way anyone found out was a contractor ringing up.
Two things close that gap, and they are deliberately independent of each other.
The nightly digest. The self-check runs on a schedule. Administrators are mailed when it starts failing, when what is failing changes, and once a week regardless — so a working alarm proves itself weekly rather than only at the moment you need it.
The heartbeat. A scheduled task outside the site calls a URL on it. This exists because the digest runs on the site's own scheduler, and a scheduler that has died cannot report its own death — every scheduled job stops, no invitation leaves the queue, no reminder goes out, and the only symptom is silence.
ImportantA monitor cannot be the thing it monitors. That is the whole reason the heartbeat is driven from outside, and it is why the weekly all-clear matters: an alarm that only ever speaks up when there is bad news is indistinguishable from an alarm that is broken.
NoteThis is administrator-only and needs nothing from managers or coordinators. It is written down here so that if a coordinator asks "would we know if invitations had quietly stopped sending?", the answer is yes, and this is how.
Where an administrator proves the bid mailbox can be read, and watches a message land rather than waiting on a tick. Reading it once is also what releases held invitations.
The mailbox contractors reply into reads itself every few minutes, and a message that arrives with drawings on it has them fetched and the job team told within seconds of being read. None of that needs anybody on this page. It is here for two moments: proving the mailbox can be read at all, and standing over it when something has not turned up.
The table is one question in seven parts, read top to bottom — is it configured, when did it last run, when does each stage run next, what did that run do, how were the messages matched to jobs, what is still waiting, and how much room the stored documents have left.
Row
What to read it for
Last read
How far behind the mailbox is. Minutes is the normal state; hours means either nobody has touched the site or the schedule has stopped.
Next, on its own
When each of the three stages runs unaided. Is due now is not a fault — the page load printing it is about to run it.
That run
What the last read did, counting separately what was filed, what could not be placed, and what had been read before. A run that saw nothing new and a run that could not see the mailbox therefore do not look alike.
How they were matched
By the reply thread, by the project address, or by the sender alone. The last is the weakest of the three, and is only used when the sender is invited to exactly one open job.
Waiting, in total
Messages that named no job. They are not lost — see Mail that did not name a job.
Notices owed
Jobs holding correspondence nobody has been emailed about yet. Normally nought.
Documents stored
What the stored bid documents use, against what this portal allows itself and what is left on the server.
Three buttons run the stages by hand: Read the mailbox now, Fetch waiting documents now, and Send any notices owed. The first is the one to reach for — a read that files anything asks the other two to run immediately after, so one press usually does all three.
A read that fails prints the mail server's own words rather than a summary of them. "Could not read the mailbox" is equally true of a wrong password, a wrong host, a firewall and an expired certificate, and only the server can say which of those it was.
NoteReading never deletes anything, so the button can be pressed as often as you like. A message that has been read before is recognised as such and is not filed twice.
ImportantIf the page says the mailbox is not configured, mail sent to the bid address is still being accepted and is accumulating unread. Nothing bounces and no contractor is told, so there is no symptom to notice. The credentials belong in wp-config.php on the server — not in the copy in the repository, which is never deployed.
WordPress admin, Tools → Americon Mailbox — the queue itself is on the dashboardAmericon staff
Invitations are sent from a real mailbox, and things come back to it. The portal reads it hourly, sets aside the addresses proven dead, and raises anything a person wrote for somebody to answer.
Four kinds of thing arrive at the address invitations are sent from: reports that a message could not be delivered, out-of-office replies, notices from the mail host, and replies from contractors who pressed Reply instead of using the links in the email. The last of those is a person asking a question about a live bid.
The portal opens that mailbox every hour and reads fifty messages at a time, so a mailbox that has been filling for a year is worked through steadily instead of in one run.
What arrived
What the portal does with it
A delivery report naming a mailbox that does not exist
Sets the address aside on its own, and removes the message.
A delivery report meaning anything else
Counts it as a temporary failure or raises it for a look. Never sets an address aside on a guess.
An out-of-office reply, or a notice from the host
Raises it for a look, and removes the message.
Anything written by a person
Raises it for a look and leaves it in the mailbox, so the whole message can still be read and answered.
Nothing is deleted that was not understood. A message the portal cannot identify is assumed to be somebody writing to us, and tidying those away as it passed would mean pointing an automated process at a mailbox holding months of correspondence and destroying it on the first run.
The queue itself -- what is waiting, and the buttons to clear it -- is on the dashboard under Bounce log, where coordinators can reach it. This page is the mailbox behind it: whether it can be signed into, when it was last read, and what that read did.
It lists the same rows, each saying which of these it is — Somebody wrote to us, Automatic reply, Failed, but not proof the address is dead, and so on. Read the mailbox now checks immediately rather than waiting for the hour. Dismiss clears a row once it has been dealt with, and Stop mailing it sets the address aside where a reply makes clear it should be.
ImportantThis is a queue somebody has to open. A contractor who replied to an invitation is sitting in it, and the portal shows only the first few lines of what they wrote — the row says Still in the mailbox — read it there because that is where the actual message is. The queue keeps the most recent 300 and drops the oldest beyond that.
NoteThe mailbox password is set in wp-config.php. Without it the feature is inert — it does nothing at all, and the self-check page reports that rather than leaving it looking healthy.
Applies to every plan file on the siteAmericon staff
Plan files are stored outside the public folder and served only after the project's visibility and access code have been checked.
Plan files are not ordinary media. They are stored outside the publicly readable uploads folder, and every request for one is checked against the project's visibility and access code before a single byte is sent.
That matters because gating the *page* is not enough on its own — a file at a public address can be fetched directly by anyone who has, or guesses, its URL, and no amount of page-level permission checking ever runs.
ImportantProject photos are the deliberate exception: they are public so they can appear in listings. Never upload a drawing as the project photo.
WordPress admin, under Tools — the pages not listed aboveAmericon staff
Each repairs records written before a fix, shows what it would change before changing anything, and reports nothing left to do once it has run. None of them is part of normal use.
Besides the pages above, Tools carries a handful of pages that exist to repair data written before a particular defect was fixed. They share three rules: each reports before it writes, each refuses to guess where the evidence is missing, and each is safe to run again — a second run finds nothing left to do and says so.
Page
What it repairs
Americon Audit Log
Not a repair: the administrator's view of the same audit trail the dashboard shows, including account changes and sign-ins, which the staff screen leaves out.
Americon Invitation Repair
Invitation records from before the portal kept a change trail, whose stored bid deadline was lost. It rebuilds the deadline each firm was shown from the audit trail where the trail reaches, and marks the rest unverified rather than inventing one — which is what "the deadline they were shown cannot be confirmed" on a project means.
Americon bid_due_ts Backfill
The numeric timestamp the lists sort by and the hourly auto-close runs on, for projects saved before an edit kept it in step with the bid date. Projects with no bid date are reported and left alone.
Americon Plan File Protection
Moves plan files uploaded before protection existed out of the public folder and into the protected one. Old direct links to those files stop working, which is the point; invitation emails link to the project page, so they are unaffected.
Americon Visibility Backfill
Writes an explicit public onto projects created before visibility was a field, which the site already treats as public. It changes no visibility decision anywhere.
Americon Meta Migration
Copies legacy field names onto the current ones for projects created by the earliest version of the site.
NoteRun each once on a fresh copy of the site, read what it reports, and then leave it. The self-check says when one of them still has work to do — a due date whose timestamp disagrees, a plan file still at a public address — so nobody has to remember which have been run.
ImportantAdministrators only, like everything under Tools. A manager or coordinator never needs any of these: the record they repair is read on the front end, where the repaired version simply appears.
Shortcuts, the exact meaning of the words the site uses about deadlines and visibility, and a glossary.
Keyboard shortcuts
Anywhere on the site — press ? for the list
Press ? to see the shortcuts available on the page you are on. "g" then a letter goes somewhere; "/" jumps to the search box.
Deliberately few, and following the conventions already used by Gmail, GitHub and Linear.
gd
Go to the calendar dashboard
gp
Go to public projects
gv
Go to private projects (staff)
c
Create a project (staff)
/
Jump to the search box
?
Show the shortcut list
For a chord, press g, release it, then press the second letter within about a second.
NoteThe list shown by ? only offers what actually works on the page you are on — the calendar view has no search box, so / is not listed there. Shortcuts never fire while you are typing in a field.
Public projects are on the calendar, in the public list and in the subscribable feed. Private projects are on none of them and need the access code.
Surface
Public project
Private project
Bid calendar
Visible to everyone
Visible to staff only
Public Projects list
Listed
Never listed
Private Projects list
Not listed
Staff only
Subscribable calendar feed
Included
Never included
Details page
Open to anyone
Access code required
Plan file downloads
Open to anyone
Access code required
CSV export
Staff only
Staff only
A project created before visibility existed and never edited counts as public. A project whose status is anything other than Open is kept off the public feed until somebody decides it belongs there.
NotePrivate access codes expire 30 days after the bid deadline.
The words this site uses for things, and what each one means here specifically.
Term
Means
Access code
The long code carried in a private project's invite link. Anyone holding it can open the project and download its plans.
Acknowledge
The press that takes a contractor's message off the waiting list without a reply from the portal — because you rang them, answered from your own mail, or found nothing owed. Recorded with your name.
Award
Recording which firm a trade's work went to, pressed on the tabulation once bidding is over. Telling the bidders is a separate press.
Bid due
The deadline for submitting a bid. Drives the calendar, the sort order, the reminders and link expiry.
Bid mailbox
The mailbox contractors' replies and bids arrive in. The portal reads it every few minutes and files each message on its job; nothing is ever deleted from it.
Closing soon
Within 72 hours of the bid deadline.
Correspondence
Everything a contractor has sent about a job, on the job — questions, bids and the replies to them. The editor's Mail section and the panel on the invitation record.
Delivery history
One firm's record on one job: every message sent to them, what their mail server said about each, and the whole conversation in order.
Draft
A project that exists only to Americon staff. Off the calendar, sends nothing, and its plan files will not download until it is published.
Invite link
The address to send contractors. For a private project it carries the access code.
Levelling
Pricing back in what a bid left out, against a scope baseline, so bids that priced different things can be compared honestly.
Offer
A bid as it arrived: the contractor's message and the documents that came with it, listed under Offers received.
Plan files
Drawings and bid documents attached to a project. Access-checked, unlike the project photo.
Plan holder
A contractor who identified themselves before downloading the plans, and who can therefore be told when something changes.
Private
Off every public surface. Reachable only through the invite link.
Public
On the bid calendar, in the public list and in the subscribable feed.
Revision label
Free text on a plan file matching the drawing's own title block — "Rev B", "Addendum 2".
Sealed
A bid before the bid date. Only the manager and coordinator assigned to the job can open it, and every opening is logged.
Solicitation record
Who was asked to bid a job, when, and what became of each message — the record downloaded for an owner or an auditor.
Staff
Administrator, Project Manager or Project Coordinator.
Suppressed
An address the portal has stopped writing to — because it bounced, or because the contractor unsubscribed. Listed on the Bounce log.
Suspended
An account that cannot sign in, but whose history and projects are intact.
Tabulation
Every bid on a job in one table, grouped by trade, lowest first, with what does not add up marked beside each number.
Trade
A work package wanted on a project — electrical, mechanical, sitework. Contractors filter by these.
Unplaced mail
A message that named no job. It waits on its own screen for a person to say which project it is about.