Skip to main content

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 available bill_def_options codes with effective-dated typed values (CODE/CHAR/DATE/NUMBER), descriptions from code key BILLDEFOPT.
    • 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_hierarchy shows the CONNECT BY group hierarchy under a selected group).
    • Rules tab (billing/d_bill_bill_def_rule_maint + rule pick list billing/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 opens w_bill_bill_rule_maint.
  • 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; inventory billing/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 key BLNGLEVEL), Rate Type (billing/dddw_bill_bill_rate_types), default category (code key BILLCAT via billing/dddw_bill_billcat_codes) and default frequency (code key BLNGFREQ via billing/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 from billing/dddw_bill_vendors).
    • Rule usage display (billing/d_bill_bill_rule_usage) shows which definitions use the rule; parameters persist to bill_rule_parms / bill_rule_parm_details (billing/d_bill_bill_rule_parm_maint, billing/d_bill_bill_rule_parm_detail_maint).
  • 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 (inventory billing/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 on billing/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_runs row (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).
  • 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_maint offering "Re-submit the run" vs "remove the run completely (deletes related charges and voids reports)" (window comment and the calling message text in billing/w_bill_run_def_maint pfc_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-DROP rows 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 from BILL_CHARGE_SEQ at save (pfc_preupdate).
    • Delete is allowed only for manual charges still unassigned (manual_adj_run_sys_key = −100) (dw_rule_charges pfc_deleterow).
  • 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_EACH is 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 popup w_bill_receipt_response over billing/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 from BILL_RECEIPT_SEQ (billing/w_bill_receipt_maint ue_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); menu m_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) or bill_rate (Billing Definition Report menu item) (homersys/m_sys_frame).
  • Inputs: as-of date and billing definition (billing/dddw_bill_def_list).
  • Behavior: bill_errs runs billing/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_rate prints 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/Medreim elections 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_billing uses d_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-xxx groups with distinct rules, one is 505-560, and the remaining 50 rows are 506-xxx groups 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 are 501-088 and 501-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.