Billing — Screen Catalog
All windows are in library billing; menu entry points are on the frame menu's
"&Billing" submenu (homersys/m_sys_frame). Selection windows inherit a shared
selection ancestor (w_maint_selection) and open their maintenance counterpart.
w_bill_bill_def_selection — Billing Definition Selection
- Purpose: pick or create a billing definition; opens
w_bill_bill_def_maint(window comment: "Billing Definition Selection."). - List columns: definition code, description, frequency, begin month, adjustment
periods, audit user/date columns (
billing/d_bill_bill_def_selection).
w_bill_bill_def_maint — Billing Definition Maintenance
- Purpose: maintain a billing definition — its header, groups, rules and options
(window comment;
billing/w_bill_bill_def_maint). - Field groups:
- General tab (
billing/d_bill_bill_def_maint): definition code, description, Billing Frequency, Billing Year Beginning Month, Number of Adjustment Periods, No Adjustments Prior To Date / Month, Adjustment Logic, Billing Begins Date, Inactive Date, report format keys. - Definition options (
billing/d_bill_bill_def_option_vals): all availablebill_def_optionscodes with effective-dated typed values (CODE/CHAR/DATE/NUMBER), descriptions from code keyBILLDEFOPT. - Groups tab: pick list of groups (search by group id with wildcard) copied into
bill_def_groups(billing/d_bill_bill_def_groups,billing/d_bill_group_hierarchyshows the CONNECT BY group hierarchy under a selected group). - Rules tab (
billing/d_bill_bill_def_rule_maint+ rule pick listbilling/d_bill_bill_rule_list): per-definition rule rows with billing category, frequency, begin month, rate period, from/thru dates; double-click edits the rule via an edit service that opensw_bill_bill_rule_maint.
- General tab (
- Validations: every attached rule needs a billing category and a from date; the
definition needs a code (pfc_preupdate). New definitions get their key from a
sequence via
n_bill_functions.of_getbillsequence. - Side effects: on save, ensures the definition's permanent "unassigned" run
(−100 / status FAKE) exists in
bill_run_defs(pfc_preupdate). - Opens:
w_group_response_selection(group picker; inventorybilling/w_bill_bill_def_maint).
w_bill_bill_rule_selection — Billing Rule Selection
- Purpose: pick or create a billing rule; opens
w_bill_bill_rule_maint. - List columns: rule code, description, bill level, rate type, audit columns
(
billing/d_bill_bill_rule_selection).
w_bill_bill_rule_maint — Billing Rule Maintenance
- Purpose: maintain one billing rule: identity, applicability parameters and rates
(window comment;
billing/w_bill_bill_rule_maint). - Field groups:
- Header (
billing/d_bill_bill_rule_maint): Rule Code, Description, Bill Level (code keyBLNGLEVEL), Rate Type (billing/dddw_bill_bill_rate_types), default category (code keyBILLCATviabilling/dddw_bill_billcat_codes) and default frequency (code keyBLNGFREQviabilling/dddw_billing_frequency). - Group Parameters tab: group category/option criteria
(
billing/d_bill_rule_group_options) and selected groups picker (billing/d_bill_group_select). - Coverage Parameters tab: coverage criteria, selected benefit plans
(
billing/d_bill_benefit_plans), coverage checkboxes (billing/d_coverages_checkbox) and Healthcare Networks (billing/d_bill_hcn_selection). - Member Parameters tab: member categories/options
(
billing/d_bill_member_cat_options), explicit member selection with search by group / member id / SSN / name (billing/d_bill_member_select), COBRA flag criteria (billing/d_bill_election_cobra_flg). - Rates tab: effective-dated rate tables (
billing/d_bill_bill_rate_table_maint— From/Thru Date, Units Per, Rate Rounding, Unit Rounding, Allocate By), a rate grid per rate item (billing/d_bill_var_rate_table,billing/d_bill_bill_rate_amt_maint), and per-rate vendor allocations (billing/d_bill_rate_alloc_n_up,billing/d_bill_bill_rate_alloc_maint, vendors frombilling/dddw_bill_vendors). - Rule usage display (
billing/d_bill_bill_rule_usage) shows which definitions use the rule; parameters persist tobill_rule_parms/bill_rule_parm_details(billing/d_bill_bill_rule_parm_maint,billing/d_bill_bill_rule_parm_detail_maint).
- Header (
- Validations: on load/save the window validates that every stored parameter is one
it knows how to edit, per level — e.g. member-level rules accept
MEMBERS.MEMBER_SYS_KEY, MEMBER_ELIGIBILITIES.GROUP_ID,
ELECTIONS.BENEFIT_COVERAGE_TYPE_CD / BENEFIT_COVERAGE_CD / COBRA_FLG,
PLAN_PKGS.HCN_SYS_KEY, plus member-category and group-option codes; anything else
raises "unexpected billing parameter" (
billing/w_bill_bill_rule_maint). New rate table and rate amount keys are drawn from sequences at save time. - Opens:
w_fund_vendor_quick_add(create a vendor on the fly),w_group_response_selection,w_response_save_as_string(inventorybilling/w_bill_bill_rule_maint).
w_bill_bill_range_selection / w_bill_bill_range_maint — Bill Ranges
- Purpose: maintain banded lookup ranges used by rate variables (window comments: "Bill Ranges Selection" / "Bill Ranges Maintenance").
- Fields: range code, description, value type
(
billing/d_bill_bill_range_maint); range items with heading and numeric or character from/thru bounds (billing/d_bill_bill_range_item_maint).
w_bill_run_def_maint — Billing Runs
- Purpose: submit, re-submit, delay or delete billing runs (window comment: "Billing Run Maintenance. Submit/Maintain billing runs and definitions."; title "Billing Runs").
- Layout: Bill Date entry, "Delay Processing" checkbox, an Available list of
billable definitions and a Processing/Processed list, with
>/<buttons to move selections (both lists onbilling/d_bill_run_def_maint). - Behavior:
- Retrieve shows, per definition, only its latest run; inactive definitions are
excluded as of the bill date (
billing/d_bill_run_def_maint). - A definition can't be added when its latest bill date exceeds the entered bill date (clicked/doubleclicked on the available list).
- Adding stamps status SUBMITTED (or DELAYED when checked); saving creates one
bill_runsrow (BILL_RUN_SEQ) with bill date = due date and assigns it to all new selections (pfc_preupdate). - Removing an already-processed run asks Re-submit vs Remove via
w_bill_rule_def_delete_response; Remove warns when receipts exist, then deletes charges/recalc (pkg_bills), reports and receipts and detaches appearance/manual-adjustment references to −100; Re-submit deletes charges and voids reports (pfc_save, pfc_deleterow). - On-screen legend: only bills "in green" can be submitted; red = last bill errored, black = past bill still in process, gray = a future bill already in process (static text st_4).
- Retrieve shows, per definition, only its latest run; inactive definitions are
excluded as of the bill date (
- User guide context: bills are produced only on accounting's request — "No bills will be produced automatically by the system"; the operator selects which definitions/divisions to run each cycle, and a bill may be rerun ("Re-submit") until a payment is applied to it or a later period is billed (User Guide ch. 4).
w_bill_rule_def_delete_response — Re-submit/Remove prompt
- Purpose: response popup used by
w_bill_run_def_maintoffering "Re-submit the run" vs "remove the run completely (deletes related charges and voids reports)" (window comment and the calling message text inbilling/w_bill_run_def_maintpfc_deleterow).
w_bill_adj_selection / w_bill_adj_maint — Manual Charge Adjustments
- Purpose: select a billing definition (only ones with a COMPLETE run —
billing/d_bill_adj_select) and maintain manual charge adjustments (window comment: "Billing Definition Charge and Manual Adjustment Maintenance."). - Layout: member list for the definition, including synthetic
<Group Charges>and<Other Charges>rows for group- and bill-level charges (billing/d_bill_adj_def_charge_members); charge summary per selected member/level with rule, category, bill period, type, election data, total and "Adj Appear" (run date or "Unassigned") (billing/d_bill_adj_rule_charges); Add and Drop buttons and a selected-total display. - Actions/validations:
- Drop reverses selected NEW charges into
ADJ-DROProws with negated charge and election benefit amounts, attached to run −100; adjustment charges cannot be dropped; re-dropping asks for confirmation (wf_dropcharges). - Add inserts manual charge rows (
billing/d_bill_adj_bill_charges); new keys come fromBILL_CHARGE_SEQat save (pfc_preupdate). - Delete is allowed only for manual charges still unassigned
(
manual_adj_run_sys_key = −100) (dw_rule_charges pfc_deleterow).
- Drop reverses selected NEW charges into
- User guide context: manual adjustments implement the guide's reconciliation ("recalc") needs — posting client-taken self adjustments manually so mispayments are not silently absorbed, with the intended member-level adjustment limited to terminated employees and variances routed to an over/short account (User Guide ch. 4).
w_bill_receipt_selection / w_bill_receipt_maint / w_bill_receipt_response — Billing Receipts
- Purpose: select a definition with completed bills
(
billing/d_bill_receipt_select) and maintain payments received against its bills (window comments on all three windows). - Layout: a combined view of billed amounts and receipts per run — and per group or
member when option
BILL_EACHis GROUP/MEMBER — with balance rows (billing/d_bill_receipt_view); pressing Enter on a bill row creates a receipt, on a receipt row edits it, both via popupw_bill_receipt_responseoverbilling/d_bill_receipt_maint(Amount, Date, Check#, Description, Bill Date, Group ID, Member ID). - Validations: receipts only for bills dated on/after the definition's billing
begin date; edit/delete only while the receipt is unassigned
(
appearance_run_sys_key = −100); new keys fromBILL_RECEIPT_SEQ(billing/w_bill_receipt_maintue_enter).
w_bill_queue — Bill Report Queue
- Purpose: view and print stored billing reports (window comment: "Billing Reports View and Print"; title "Bill Report Queue").
- Layout: report list with bill definition, description, report date, bill date,
report category and status (
billing/d_bill_bill_reports_list); a viewer for the loaded report; filter panel with "Unprinted Only" checkbox (excludes VOID and filters to null status) (ue_filter). - Actions: load and print current or selected reports; printing a VOID report
requires confirmation; successful prints set
bill_reports.status_cd = 'PRINT'(pfc_print); menum_bill_print_queue.
w_bill_reports — Billing Exception / Definition Rate Report
- Purpose: dual-mode report window (title "Possible Bill Error Report") opened with
parameter
bill_errs(Billing Exception Report menu item) orbill_rate(Billing Definition Report menu item) (homersys/m_sys_frame). - Inputs: as-of date and billing definition (
billing/dddw_bill_def_list). - Behavior:
bill_errsrunsbilling/n_verify_bill.of_check_bill, listing members whose active elections have no matching rule/rate ("No valid rule for coverage") and volume-rated coverages with missing/zero benefit amounts; it also reports rules missing from the definition or without a covering rate table versus the previous completed run (billing/d_bill_rules_prev_month_missing,billing/d_bill_run_defs_to_check).bill_rateprints the definition's rules and rates (billing/d_bill_rpt_bill_def_rates).
w_billprt_disbursement_division_summary — Billing Disbursement Summary By Group
- Purpose: report of charges by master group, vendor and billing category for a
selected run/definition, split into NEW vs adjustment amounts
(
billing/d_billprt_disbursement_division_summary; menu item "Billing Disbursement Summary By Group").
w_billrpt_flex_charges — Flex Charge Billing Report
- Purpose: "does the Flex Charge Billing report" (window comment) — a billing list for flex elections.
- Inputs: group (hierarchy expanded), Due Date, Rate (manually entered), "Show Grand Total" option.
- Data: members with active
Depcare/Medreimelections and eligibility as of the due date, with the entered rate applied and the group's billing address (billing/d_billrpt_flex_charges).
w_billing — Group Billing Data (read-only)
- Purpose: view a group's billing-related setup with General / Coverage / COBRA /
Medicare / Fees tabs; only the General tab and group periods are wired to data
(
billing/w_billingusesd_group_general,d_group_select,d_group_periods). Appears under the "&Bill Data" menu area (homersys/m_sys_frame). Marked as an open question — the non-General tabs contain no DataWindows in the extracted source.
Per-group billing workarounds in the user guide — pointer only, not requirements
Needs SME triage before conversion
The rows summarised below are deliberately not transcribed as requirements. They record client-specific manual practices of unknown currency; nothing here has been confirmed against the code catalogued above.
Chapter 4 ends its billing-setup material with a table headed "Billing quirks found in enrollment" — 63 rows, each keyed by client group id, giving the manual practice staff follow to make that group bill correctly (User Guide ch. 4).
- What kind of workaround these are. Almost every row is the same manoeuvre: repurposing an unrelated coverage line as a billing flag. Staff enter a dummy enrollment count (literally "a 1") under a coverage the member does not have, so the bill calculation picks up a charge the rate structure cannot express directly — typically a COBRA fee, a claim/administration fee, or a stoploss premium. They are not rate overrides or off-cycle billing; they are data-entry conventions that encode a missing rate dimension.
- Representative rows (User Guide ch. 4):
501-143— "Use 1 under WDI to bill for the claim fee"501-227— "Use 1 under LTD to bill COBRA for people in HMO"501-500— "Use 1 under dependent life to charge for claim fee for division H"505-560— "Use 1 under WDI to charge for claims fees for hourly employees"501-086— the one row of a different kind: the bill "gets printed with number of employees per department code", achieved by coding under dependent life plus an ID code "in order to get employee in correct department or bill" — a bill layout/grouping workaround rather than a charge trigger.
- Shape of the list. Twelve rows are individual
501-xxxgroups with distinct rules, one is505-560, and the remaining 50 rows are506-xxxgroups all carrying an identical rule ("Use 1 under ASL if other than Medical is elected to bill for aggregate stoploss") — one policy applied across a block of groups, not 50 distinct workarounds. The most complex entries are501-088and501-418, which stack several coverage-line flags across divisions for different PPO/HMO combinations. - Where to find it.
_re/userguide/chapter4.txt, the block headed "Billing quirks found in enrollment", immediately after the billing-frequency field list. - Migration implication. Each surviving entry resolves to one of two outcomes: it is a real billing requirement the replacement must support natively (a fee or premium that today has no rate of its own and is therefore smuggled in under another coverage), or it is a practice to retire because a rate structure that can express the charge directly makes the dummy-count hack unnecessary. The guide cannot decide which — the list is undated, describes Wang-era enrollment fields, and the group ids may no longer be active. Whether any of these conventions still operate in HOMER is unverified. They need Accounting/Enrollment SME triage, group by group, before conversion, and any surviving requirement should be raised as a new numbered requirement at that point.